Guía de supervivencia de RSYNC


Aprovecho para dejar testimonio, ahora que estoy migrando información de un servidor a otro, de cómo con el comando RSYNC podemos hacer copias de seguridad en nuestros equipos Linux:

  • Mantener sincronizados dos directorios de un mismo servidor ejecutando:
    rsync -v -rlt -a /mi_directorio_origen  /mi_directorio_destino
    Es importante que las rutas terminen o no '/', cuidado con dejarlas porque el efecto puede que no sea el deseado. Los argumentos que le hemos pasado al comando, aparte de los directorios que sincronizar son: -v (muestre lo que está haciendo y lo que sincroniza), -r (que sea recursivo y navegue por subdirectorios), -l (copie los enlaces simbólicos como enlaces simbólicos), -t (respete los tiempos de modificación de los archivos, ideal para backups), -a (use el modo archivo).
  • Mantener sincronizados dos directorios de distintos servidores ejecutando:
    rsync -v -rlt -az \
    --delete \
    --timeout=300 \
    -e "ssh -c blowfish -ax -o ClearAllForwardings=yes -l USUARIO" \
    USUARIO@servidor_origen:/directorio_origen /directorio_destino/
    Ahora lo que hacemos es conectarnos por SSH a servidor_origen siendo el usuario del sistema USUARIO (convendría tener una confianza SSH) y traernos el contenido de todo /directorio_origen a nuestro /directorio_destino local. Hemos introducido nuevos argumentos: -z (comprima los archivos para la transferencia por red), --delete (borre en /directorio_destino los ficheros que ya no estén en /directorio_origen), --timeout=300 (si en 5 minutos no evoluciona la transferenicia, la cancelamos) y -e "etc" (parámetros para SSH, siempre los uso así).
  • Sincronizar todo excepto unos cuantos directorios , para ello nos interesa crear un fichero donde escribiremos una ruta por línea (omitiendo la / del principio, la que indica el directorio raíz) y añadiremos la opción a rsync:
    --exclude-from=FICHERO_CON_LAS_EXCLUSIONES_UNO_POR_LINEA
  • Sincronizar con respecto a una copia completa con la intención de hacer una copia incremental. Para esto necesitamos tener un directorio con la copia previa, y lanzar rsync añadiendo la siguiente opción:
    --compare-dest=DIRECTORIO_CON_COPIA_PREVIA

La imagen la he sacado de www.thelinuxblog.com vía google images.

No hay comentarios: