Rsync

( sistemas / linux )

Rsync es una herramienta fabulosa para hacer sincronizaciones sin importa que tipo de sistema es el origen o el destino con infinidad de opciones, aunque le faltaría un entorno gráfico aunque hay algunos hechos por terceros.

Sincronizar un directorio localmente

Si queremos tener una copia de nuesta home (por ejemplo) podemos ejecutar:
# rsync -avzh /home/imd/ /backups/imd/

Sincronizar un directorio localmente con uno remoto

Si queremos tener una copia de nuesta home (por ejemplo) en un servidor remoto podemos ejecutar:
# rsync -avzh /home/imd/ usuario@IP:/backups/imd/
Si queremos hacerlo vía SSH mucho más seguro:
# rsync -avzh -e 'ssh -p port' /home/imd/ usuario@IP:/backups/imd/

Sincronizar un directorio remoto con uno local

Si queremos recuperar una copia de nuesta home (por ejemplo) realizada en un servidor remoto a nuestea home local podemos ejecutar:
# rsync -avzh usuario@IP:/backups/imd/ /home/imd/
Si queremos hacerlo vía SSH mucho más seguro:
# rsync -avzh -e 'ssh -p port' usuario@IP:/backups/imd/ /home/imd/

Opciones interesante

--progress va indicando el progreso según va copiando ficheros, aunque es interesante la información que da sobre todo en ficheros grandes puedes ser abrumadira la cantidad de lines si se transfieren muchos ficheros.

--include 'regex' solo transfiere los ficheros que coincidan lo la expresión regular (regex). Se pueden poner varias veces para incluir diferentes expresiones.

--exclude 'regex' No transfiere los ficheros que coincidan lo la expresión regular (regex). Se pueden poner varias veces para excluir diferentes expresiones.

--delete, --delete-before, borra los ficheros en destino que NO están en origen, para que queden igual origen y destino. El primero borra según va sincronizando y el segundo lo hace antes de empezar a transferir, util para saber que va a borrar antes de hacer nada.

--dry-run, simula lo que se haría sin hacer nada, es una buena opción para ver que pasará antes de proceder por si borramos o copiamos algo que NO queremos.

--iconv=charset, indica que charset usar para copiar, en OSX para copiar en linux una buena opción es: --iconv=utf-8-mac,utf-8

Modificado el 5 Septiembre, 2015
Creado el 5 septiembre, 2015
   

Compartiendo conocimiento desde 1995 - I.M.D. I.M.D.