Cómo usar Rsync para sincronizar archivos nuevos o cambiados/modificados en Linux


Como administrador del sistema o usuario avanzado de Linux, es posible que se haya encontrado o incluso en varias ocasiones haya utilizado la versátil herramienta Linux Rsync, que permite a los usuarios copiar o sincronizar archivos de forma rápida de forma local y remota. También es una gran herramienta utilizada popularmente para operaciones de copia de seguridad y duplicación.

Algunas de sus características y ventajas eminentes incluyen; es excepcionalmente versátil en el sentido de que puede copiar localmente, hacia/desde un shell remoto o rsync remoto, también es notablemente flexible, lo que permite a los usuarios especificar cualquier número de archivos para copiar.

Además, permite copiar enlaces, dispositivos, propietario de archivos o directorios, grupos y permisos. También admite el uso sin privilegios de root junto con muchos más.

Un diferencial imperativo de rsync en comparación con otros comandos de copia de archivos en Linux es su uso del protocolo de actualización remota, para transferir solo la diferencia entre los archivos o el contenido del directorio.

Por lo tanto, en este artículo, examinaremos cómo rsync puede ayudarnos a sincronizar solo archivos nuevos o modificados o contenido de directorio mientras hacemos copias de seguridad y más en Linux.

Para empezar, debe recordar que la forma convencional y más simple de usar rsync es la siguiente:

# rsync options source destination 

Dicho esto, profundicemos en algunos ejemplos para descubrir cómo funciona realmente el concepto anterior.

Sincronizar archivos localmente con Rsync

Usando el comando a continuación, puedo copiar archivos de mi directorio Documentos al directorio/tmp/documentos localmente:

$ rsync -av Documents/* /tmp/documents

En el comando anterior, la opción:

  1. -a : significa modo de archivo
  2. -v : significa detallado, que muestra detalles de las operaciones en curso

De forma predeterminada, rsync solo copia archivos nuevos o modificados de una fuente a un destino, cuando agrego un nuevo archivo a mi directorio de Documentos, esto es lo que sucede después de ejecutar el mismo comando por segunda vez:

$ rsync -av Documents/* /tmp/documents

Como puede observar y notar en la salida del comando, solo el nuevo archivo se copia en el directorio de destino.

La opción --update o -u permite a rsync omitir archivos que aún son nuevos en el directorio de destino, y una opción importante, --dry-run o -n nos permite ejecutar una operación de prueba sin realizar ningún cambio. Nos muestra qué archivos se van a copiar.

$ rsync -aunv Documents/* /tmp/documents

Después de ejecutar una prueba, podemos eliminar el -n y realizar una operación real:

$ rsync -auv Documents/* /tmp/documents

Sincronizar archivos de Linux local a remoto

En el siguiente ejemplo, estoy copiando archivos de mi máquina local a un servidor remoto con la dirección IP: 10.42.1.5. Para sincronizar solo archivos nuevos en la máquina local, que no existen en la máquina remota, podemos incluir la opción --ignore-existing :

$ rsync -av --ignore-existing Documents/* [email protected]:~/all/

Posteriormente, para sincronizar solo los archivos actualizados o modificados en la máquina remota que han cambiado en la máquina local, podemos realizar un ensayo antes de copiar los archivos como se muestra a continuación:

$ rsync -av --dry-run --update Documents/* [email protected]:~/all/
$ rsync -av --update Documents/* [email protected]:~/all/

Para actualizar archivos existentes y evitar la creación de nuevos archivos en el destino, utilizamos la opción --existing .

Puede ejecutar la página rsync man para descubrir opciones adicionales útiles para el uso avanzado, como mencioné anteriormente, rsync es una herramienta de Linux muy poderosa y versátil y muchos administradores de sistemas y usuarios avanzados de Linux saben simplemente lo ventajoso que es.

Lo más importante es que también puede compartir su opinión sobre los ejemplos que hemos cubierto aquí o, mejor aún, ofrecernos valiosos consejos sobre el uso de esta vital herramienta de línea de comandos a través de la sección de comentarios a continuación.