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


Como administrador del sistema o usuario avanzado de Linux, es probable que se haya presentado o, en varias ocasiones, haya utilizado la versátil herramienta Linux Rsync, que permite a los usuarios copiar o sincronizar archivos de manera local y remota. También es una gran herramienta popularmente utilizada para operaciones de copia de seguridad y creación de reflejo.

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

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

Un diferencial imperativo de rsync en comparación con otros comandos de recuperación 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 los archivos nuevos o modificados o el contenido del directorio al realizar copias de seguridad y más allá en Linux.

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

# rsync options source destination 

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

Sincronizando archivos localmente usando Rsync

Al usar el comando a continuación, puedo copiar archivos de mi directorio Documentos a /tmp/documents localmente:

$ rsync -av Documents/* /tmp/documents

En el comando anterior, la opción:

  1. -a – means archive mode
  2. -v – means verbose, showing details of ongoing operations

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

$ rsync -av Documents/* /tmp/documents

Como puede observar y observar en la salida del comando, solo el nuevo archivo se copia al 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 hay que copiar.

$ rsync -aunv Documents/* /tmp/documents

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

$ rsync -auv Documents/* /tmp/documents

Sincronizando 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 los 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 una ejecución en seco antes de copiar los archivos de la siguiente manera:

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

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

Puede correr a través de la página rsync man para descubrir opciones adicionales útiles para el uso avanzado, como mencioné anteriormente, rsync es una herramienta Linux muy potente y versátil y muchos sistemas. El administrador y los usuarios avanzados de Linux saben 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 herramienta de línea de comando vital a través de la sección de comentarios a continuación.