viernes, 1 de junio de 2018

Copias de seguridad con GrSync (y II)

Hablaba el otro día de las copias de seguridad a través de GrSync (básicamente de mi /home, aunque podrían hacerse de otras cosas, y hasta, incluso, de la partición root (/), en sustitución de Clonezilla) y explicaba un poco cómo era este frontend gráfico del potentísimo (y presumiblemente complejo, Rsync). Y de las ventajas de la ‘copia incremental’

Ahora, como prometí, me toca acabar el tema, detallando cómo hacer las funciones básicas, que ya dije que si no se explica, te puedes armar un pequeño lío.
Así que ésta es mi pequeña ‘Guía de GrSync’

a) Hacer una copia sincronizada de mi /home
Ya expliqué en la anterior entrada lo que era una copia sincronizada. Así que lo primero es 'crear nueva sesión', que llamaremos, por ejemplo, ‘Backup_HOME’. Y, para su uso habitual (tener una copia de todos los archivos y carpetas de la /home de un usuario), en otro sitio (por ejemplo, un disco duro externo), lo único que hay que hacer es crear en ese disco duro externo una carpeta (por ejemplo ‘0-Backup home PC principal’, montar ese disco externo (por ejemplo en /media y poner estas rutas de origen/destino (en este caso el usuario es ‘doc’ y el disco externo es ‘Elements’).
Es importante el tener marcado lo de ‘Eliminar en destino’ que ordena borrar en las carpetas de destino los archivos que no aparezcan en esas mismas carpetas, en origen. Es decir, ‘sincronizando’ las copias. Las otras opciones marcadas, parecen claras.
Y aún más importante: la sintaxis de las rutas es como se ve, sin barra inclinada final para indicar el directorio. Esta es la forma de que se copie la carpeta /home/doc, y su contenido, que la primera vez será un proceso largo porque hay que copiar todo) pero las futuras copias actuarían ‘incrementalmente’, de forma mucho más rápida, cambiando solo lo que se haya cambiado. Repito aquí una imagen que ya había incluido en la entrada anterior, para recordar lo que tiene que estar (normalmente) marcado.

b) Hacer una copia pero excluyendo determinadas carpetas (o archivos)
Puede ser particularmente interesante la opción de crear una copia, fijando un origen pero excluyendo del mismo algunas carpetas, o archivos.
Para eso hay que crear una sesión y, en Opciones avanzadas, usar la parte inferior (‘opciones adicionales’) para introducir el comando --exclude=PATRON (de exclusión), 
o bien en comando --exclude-from=archivo, porque se puede hacer de estas dos formas.
Voy a explicarlo con un ejemplo.
Sea este caso: quiero copiar la carpeta Documentos, pero excluyendo la carpeta ‘VARIOS’, la carpeta ‘PDFs especiales’ y la subcarpeta ‘documentos especiales/xls’
La primera forma es escribir, en ‘Opciones adicionales de Opciones avanzadas’, el comando 
--exclude=carpeta 
tantas veces como casos tenga que excluirlo necesite. Así:
NOTA: obsérvese que he necesitado poner comillas (simples) en los nombres que contenían palabras separadas
Y la segunda forma es crearse un archivo de texto, conteniendo, una por línea, las carpetas (o archivos) a excluir, ponerle un nombre (en el ejemplo, ‘excluidos_prueba.txt’) y guardarlo donde se abre, por defecto, la terminal de usuario (en mi caso, en la raiz de mi /home de usuario).
Pero OJO, esto de la sintaxis ya dije que era un poco ‘puñetera’, aquí no hace falta poner entre comillas los nombres de más de una palabra. O sea que el contenido de mi archivo sería este…
VARIOS
documentos especiales/xls
PDFs especiales
y ahora escribir en la ventana de Opciones avanzadas (‘de Opciones adicionales’, qué lío…) el comando
--exclude-from=nombre_archivo
O sea, en el ejemplo, esto
Pero, para mi sorpresa, este segundo método me falló, así que me quedo con el primero.
Por cierto, si quisiese excluir archivos, también se pueden añadir a la lista, cada uno, igualmente, en una línea, bien por su nombre específico (y, si acaso, su ruta) o bien, de forma genérica, con comodines tipo *.pdf, etc. Hay muchos manuales de Rsync, por Google, por si se quiere profundizar en este tema.
El caso es que el excluir algunas carpetas (o archivos) particularmente grandes (como puede ser el caso de las máquinas virtuales, o la carpeta de caché, o de Temporales…) puede tener su interés. No obstante, conviene verificar el procedimiento, hacer pruebas, o hacer la simulación… porque yo me volví medio loco hasta dar con la tecla.
Lo que, en particular, me parece interesante,
es, en los backups de toda la Home, excluir los archivos de la caché, y de la papelera, que son inútiles, y muy incómodos (porque se actualizan) en las copias incrementales. Se pondría así...
--exclude=.cache/ --exclude=Trash/

c) Hacer copias de carpetas determinadas
También se puede hacer una copia de seguridad, con GrSync, de alguna carpeta determinada, bastaría crear una nueva sesión e indicar tanto un nuevo origen (no se: la carpeta Musica, o Imágenes (Fotos), etc), o Documentos…) y un nuevo destino. Y si quieres de varias, pienso yo que se podría usar el comando ‘--include=...’ de forma similar al ‘--exclude=...’ que acabo de ver. 
(Nota: esto no lo he probado, pero todo hace indicar que será así)
En resumen, GrSync da algunas posibilidades para tener un respaldo muy actualizado de nuestros archivos personales… Pero, lo repito otra vez, para hacerlo bien hay que tener un especial cuidado con la sintaxis de las órdenes y comandos.
(Claro que, una vez comprobado que el programa hace lo que queríamos que hiciese, con no tocar nada de esa sesión (que incluso podemos exportar, para respaldarla, e importarla si la borramos, o cambiamos de PC)… no debería de preocuparnos mas el tema, lo haría siempre bien).
Y, para terminar, ya dije el otro día que con GrSync NO es posible crear una automatización periódica del backup, así que para actualizar el respaldo hay que abrir la aplicación e invocar y ejecutar de nuevo la sesión.
Así, por ejemplo, podemos hacer un backup todas las semanas… pero habría que hacerlo ‘manualmente’. Bueno, tampoco es tanto problema, si nos acostumbramos, o creamos un recordatorio.
Aunque se me ocurre la siguiente ‘maldad’: Ya que, con Archivo-Linea de comando de rsync (o, sencillamente, Alt+ R) se nos presenta la orden, por consola, a dar a Rsync para que haga las operaciones (y opciones) que se indica en la sesión de GrSync… bastaría copiarlas en un script y programar su ejecución, por consola, en las fechas y horas que determinemos, mediante CRON… y ya lo tendríamos automatizado ¿no?
Lo dejo aquí, tendré que estudiarlo… empezando por el tema de CRON y CRONTAB… que nunca he usado.
Bueno... esta es la idea...

No hay comentarios:

Publicar un comentario