Como administrador del sistema o usuario avanzado de Linux, es posible que haya encontrado o incluso utilizado en varias ocasiones la versátil herramienta Rsync de Linux, que permite a los usuarios copiar o sincronizar archivos de manera rápida de forma local y remota. También es una gran herramienta popularmente utilizada para operaciones de copia de seguridad y duplicación.
Algunas de sus características y ventajas eminentes incluyen; es excepcionalmente versátil ya que puede copiar localmente, hacia/desde un shell remoto o un rsync remoto, también es notablemente flexible, lo que permite a los usuarios especificar cualquier cantidad de archivos para copiar.
Lectura sugerida: 10 ejemplos prácticos del comando Rsync en Linux
Además, permite copiar enlaces, dispositivos, propietarios 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.
Sincronización de archivos localmente mediante Rsync
Usando el siguiente comando, poder copiar archivos de mis Documentos directorio a /tmp/documents directorio localmente:
$ rsync -av Documents/* /tmp/documents
En el comando anterior, la opción:
-a
– significa modo de archivo-v
– significa detallado, que muestra detalles de las operaciones en curso
De forma predeterminada, rsync solo copia archivos nuevos o modificados de un origen a un destino, cuando agrego un nuevo archivo a mis Documentos directorio, 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.
Lectura sugerida: Cómo sincronizar dos servidores web/sitios web Apache usando Rsync
El --update
o -u
opción permite rsync para 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 hacer ningún cambio. Nos muestra qué archivos se van a 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
Sincronización de archivos de Linux local a remoto
En el siguiente ejemplo, estoy copiando archivos desde 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 el --ignore-existing
opción:
$ 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 como se muestra a continuación:
$ 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 el --existing
opción.
Puede ejecutar a través de man rsync
página para descubrir opciones adicionales útiles para el uso avanzado, como mencioné anteriormente, rsync es una herramienta de Linux muy potente y versátil, y muchos administradores de sistemas y usuarios avanzados de Linux saben lo ventajosa que es.
Lo que es más importante, 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.