GNU/Linux >> Tutoriales Linux >  >> Linux

Todo está en el archivo de puntos - YADM y Homeshick

Las copias de seguridad son importantes. Las copias de seguridad son cruciales. Las copias de seguridad son amor, las copias de seguridad son vida. A lo largo de los años, he hablado sobre el valor cardinal de mantener sus datos seguros, y eso significa múltiples copias, múltiples ubicaciones. También hablamos sobre cómo inventar su propia configuración rápida y sucia con tar y gpg recientemente. Ese cubre tanto los datos como la configuración de la aplicación. Hablando de esto último...

Ampliemos esto un poco más. Si tiene varias computadoras, reinstala los sistemas con frecuencia o simplemente desea tener una configuración uniforme en varios hosts, es posible que le interese una forma de administrar la configuración de la aplicación. En Linux, la mayoría del software mantiene sus configuraciones en archivos ocultos dentro del directorio de inicio, ya sea en el nivel superior (/home/nombre de usuario) o dentro del subdirectorio .config. De cualquier manera, podría haber muchos de ellos, quiere asegurarse de tener siempre una copia, y si algo sale mal, puede volver fácilmente a un buen punto de control. Presentamos YADM y Homeshick.

Otro administrador de archivos de puntos (YADM)

El nombre no es inspirador, pero el programa viene con una noble misión. Está diseñado para ayudarlo a mantener copias versionadas de sus archivos de configuración, para que tenga una configuración robusta y flexible. Este concepto es diferente del software que trata de adivinar automáticamente su configuración:es más como mi manual de una línea anterior, en el que debe cuidar cada archivo de configuración por separado. Sin embargo, una configuración de bricolaje requiere que guarde constantemente copias de los datos, y esto puede ser engorroso, además de que no necesariamente sabrá qué copia de seguridad en particular contiene los cambios correctos.

YADM tiene como objetivo introducir un elemento de profundidad temporal mediante el uso de git en segundo plano. Básicamente, usted envía sus propias configuraciones a su propio repositorio, y esto le brinda todas las partes necesarias, como el historial de versiones, diferencias y similares. Muy bien, veamos cómo funciona.

El comienzo fue prometedor. Tenía YADM ejecutándose y pude agregar archivos:

roger@matrix:~$ yadm agregar .ssh
roger@matrix:~$ yadm agregar .gnupg

Sin embargo, cuando traté de enviar los archivos, YADM se quejó de que no sabía quién era yo:

roger@matrix:~$ yadm commit

*** Por favor, dime quién eres.

Ejecutar

git config --global user.email "[email protected]"
git config --global user.name "Su nombre"

para establecer la identidad predeterminada de su cuenta.
Omita --global para establecer la identidad solo en este repositorio.

fatal:no se pudo detectar automáticamente la dirección de correo electrónico (se obtuvo 'roger@matrix.(ninguno)')

Este error es algo innecesario. El programa podría comprobar si te has identificado antes de añadir ningún archivo. Además, no estoy seguro de qué sucedería si te identificas con un correo electrónico o un nombre incorrecto. ¿Cómo afectaría esto a la autenticación más adelante? Decidí no arriesgarme, así que usé localhost para pasar esta etapa y luego pude comprometerme.

roger@matrix:~$ git config --usuario global.email "[email protected]"
roger@matrix:~$ git config --global usuario.nombre "Roger Bodger"

yadm commit -m "La prueba confirma el primer lote"
[master (root-commit) fe99215] La prueba confirma el primer lote
2 archivos cambiados, 0 inserciones (+), 0 eliminaciones (-)
modo de creación 100644 .gnupg/pubring.kbx
modo de creación 100644 .gnupg/trustdb.gpg

Pero luego, el último paso me desconcertó:el impulso real. Sí, sé cómo funciona git y todo eso, lo que significa que realmente necesita tener un servidor, ejecutando git, disponible en su red (LAN o Internet o lo que sea). Si es así, esto complica la configuración y también la hace menos flexible, porque realmente no se pueden mantener archivos fuera de línea independientes y modulares.

Pasé un poco de tiempo leyendo la documentación y encontré el flujo de trabajo bastante engorroso. Tal vez me estoy perdiendo algo realmente obvio, pero también creo en la simplicidad que se explica por sí misma de un gran software. El hecho de que no estaba teniendo una experiencia estelar de inmediato, sin hacer preguntas, significa que esta es una solución con un patrón cerebral diferente, y por lo tanto necesario, al mío.

Noche de hogar

Puede pensar que este es el software de copia de seguridad basado en git favorito de Sean Connery, pero la broma es suya, ¡ja, ja! Es una versión de script de shell del ahora obsoleto software sincronizador de archivos de puntos Homesick basado en Ruby. La naturaleza BASH-ful de esta herramienta debería hacer que sea fácil de configurar y usar.

Seguí las instrucciones y, de hecho, la configuración es trivial. Pero también debe agregar el origen del script al final de su archivo .bashrc en su directorio de inicio; de lo contrario, deberá usar la ruta completa adecuada para ejecutar la herramienta.

Ahora, Homeshick funciona combinando git con enlaces simbólicos. Básicamente, cualquier archivo que agregue se vinculará a su repositorio. Lo que trae la pregunta, ¿qué sucede si desea "eliminar" un archivo? De todos modos, los repositorios en realidad se llaman castillos (el predeterminado es CASTILLO).

homeshick
homeshick utiliza git junto con enlaces simbólicos para rastrear sus preciados archivos de puntos.

Uso:homeshick [opciones] TAREA

Tareas:
homeshick cd CASTLE # Entrar en un castillo
homeshick clone URI.. # Clonar URI como un castillo para homeshick
homeshick generar CASTILLO.. # Generar un repositorio de castillo

Sin embargo, las instrucciones no son lo suficientemente claras:si ejecuta el primer comando de inmediato, obtendrá un error:

homeshick cd CASTLE
bash:cd:/home/roger/.homesick/repos/CASTLE:No existe tal archivo o directorio

El script no verifica si hay un repositorio, por lo que no le avisará que necesita generar uno. Esto no es un gran problema, pero realmente no hay ninguna razón por la que no pueda haber una configuración predeterminada amigable, o al menos una advertencia para que los usuarios puedan solucionarlo.

homeshick generar CASTILLO
generar CASTILLO


Cómo empezar, etc.

lista de homeshick
CASTO
homeshick https://github. com/andsens/homeshick.git

Mirando la lista existente de repositorios, la del autor también está allí. De todos modos, continué usando el script. Básicamente, es un trabajo manual. Usted especifica el repositorio y el archivo que desea mover dentro, que luego se enlazará en el lugar correcto, por ejemplo:

homeshick pista CASTLE ~/.profile ~/.gnupg
pista .profile
pista .gnupg/trustdb.gpg
pista .gnupg/pubring.kbx

El siguiente paso es confirmar el cambio y luego pasar a un repositorio, lo que genera la naturaleza en línea de este script, muy similar a YADM. A menos, por supuesto, que desee utilizar su propia configuración de servidor. No es trivial, y tuve que consultar la documentación. Terminas haciendo cd CASTLE, git commit, git push, todo el asunto. Entonces, en cierto modo, homeshick abstrae un montón de comandos de git (como ramas y demás). Encontré esto tan desconcertante como mi intento anterior, así que supongo que el software está diseñado principalmente para desarrolladores.

También hubo algunos errores extraños. Como la actualización del repositorio. ¿Qué hace eso realmente? ¿Cómo determina que un repositorio local está desactualizado si de hecho no tiene upstream? También tenía miedo de que mis archivos se sobrescribieran de alguna manera, y ¿qué sucede entonces?

homeshick actualizar
anticuado CASTLE
anticuado homeshick
actualizar Los castillos CASTLE,homeshick están desactualizados.
tirar? [yN]

no upstream No se pudo tirar de CASTLE, no tiene upstream
tirar homeshick

Conclusión

Mi cerebro definitivamente no es el de un desarrollador de software, razón por la cual encuentro que una herramienta como git no es nada amigable. Se siente como una pieza de software orientada a la máquina en lugar de orientada al ser humano, y se siente más complicado de lo que debería ser. Del mismo modo, YADM y Homeshick no me parecen soluciones ideales para la pregunta de configuración del directorio de inicio. Si necesito hacer cosas manualmente y luego enviarlas a una copia de seguridad (archivo), también podría hacerlo manualmente, con más flexibilidad y control.

Entiendo lo que estas dos herramientas intentan resolver, y tener una configuración completamente sincronizada y versionada en múltiples sistemas es una buena idea (puede escribir los procedimientos de extracción y inserción, hacer que todo funcione sin problemas en segundo plano), pero ambos programas también lo son. nerd, y deberían tener una configuración inicial más elegante y una mejor comprobación de errores. Por último, está la cuestión de la privacidad. ¿Realmente desea enviar archivos importantes a un repositorio en línea así como así? ¿Se siente cómodo con los niveles de seguridad, los niveles de cifrado y su capacidad para hacer que la configuración sea precisa e inteligente sin agujeros tontos? Entonces, para mi búsqueda original, creo que la simplicidad de rsync, tar y gpg siguen siendo mis soluciones preferidas para la copia de seguridad del directorio de inicio. Pero si eres un idiota joven, y no un idiota viejo como yo, entonces te puede gustar esto. Allá vamos.


Linux
  1. ¿Usar Setxkbmap para intercambiar el desplazamiento izquierdo y el control izquierdo?

  2. ¿La diferencia entre "du -sh *" y "du -sh ./*"?

  3. Salida a Stdout y al mismo tiempo Grep en un archivo?

  4. ¿La diferencia entre enlaces simbólicos y duros?

  5. ¿Cómo encontrar el tipo de archivo Img y montarlo?

Cómo obtener la fecha y hora actuales en Python

Cómo usar Sudo y el archivo Sudoers

Cómo guardar un archivo en Vim/Vi y salir del editor

Y la mejor distro de 2019 es...

Revisión de Plasma 5.17:el espectáculo debe continuar (y ser bueno)

Comando para listar todos los archivos excepto . (punto) y .. (punto punto)