Rsync, abreviatura de sincronización remota , es un comando de Linux utilizado para copiar y sincronizar archivos, entre 2 sistemas Linux. Funciona de tal manera que cualquier cambio adicional realizado en un archivo o directorio se replica en otro sistema Linux.
Con el comando rsync de Linux, puede copiar y sincronizar sin problemas las copias de seguridad de forma local y remota entre sistemas y servidores Linux. En este artículo, examinaremos varias opciones de comando que puede usar junto con el comando rsync.
Sintaxis básica para el comando rsync de Linux
La sintaxis de rsync se resume brevemente a continuación.
$ rsync options source destination Opciones utilizadas con el comando rsync
- -z :Esto comprime los datos.
- -v :Esto muestra el proceso en modo detallado.
- -r :la opción copia los datos de forma recursiva (sin embargo, la opción no conserva las marcas de tiempo ni el permiso del archivo durante la transferencia de datos).
- -h :Esto genera información en un formato legible por humanos.
- -a :Esto no solo permite copiar archivos de forma recursiva, sino que también conserva los enlaces simbólicos, las marcas de tiempo, los permisos de archivo y las propiedades de usuarios y grupos.
Copiar archivos y directorios localmente
Puede sincronizar el archivo localmente de una ubicación a otra en una máquina Linux utilizando el ejemplo que se proporciona a continuación.
$ rsync -zvh backup.tar /opt/backup_dir
En el ejemplo anterior, el tarball backup.tar se copia y sincroniza con /opt/backup_dir directorio.
Salida de muestra

Para copiar un directorio localmente de una ubicación a otra :
La sintaxis será similar a copiar archivos, solo que en este caso usamos -a bandera para copia recursiva.
En el siguiente ejemplo, estamos copiando y sincronizando los deb_packages directorio al /opt/backup_dir directorio.
$ rsync -azvh deb_packages /opt/backup_dir Salida de muestra

Copiar/sincronizar archivos o directorios hacia y desde un servidor remoto
Para copiar un directorio a un servidor remoto, el nombre de usuario y la dirección IP del servidor deben especificarse junto con la carpeta de destino.
En el siguiente ejemplo, los deb_packages el directorio se copia a un servidor remoto con una IP 66.152.163.19 usando credenciales de usuario raíz y guardadas en el directorio de inicio raíz.
$ rsync -avz deb_packages root@66.152.163.19: Salida de muestra

Para copiar y sincronizar un directorio desde un servidor remoto a una PC local :
Para copiar y sincronizar archivos desde un sistema remoto a un sistema Linux local, utilice el siguiente ejemplo
$ rsync -avzh root@66.152.163.19:documents /opt/backup_dir
En el ejemplo anterior, el directorio documents se copia recursivamente desde el sistema remoto con IP 66.152.163.19 al sistema local en /opt/backup_dir directorio.
Comando Rsync sobre SSH
Rsync se puede usar junto con el protocolo SSH para proteger o cifrar los archivos que se envían hacia y desde un sistema Linux. esto asegura que nadie pueda espiar los datos que está transfiriendo a través de la red.
Para copiar un archivo desde un servidor local a un servidor remoto usando rsync sobre SSH:
En este ejemplo, usaremos -e opción con rsync para especificar un protocolo, en este caso, SSH.
$ rsync -avhze ssh backup.tar root@66.152.163.19:/backup_dir Salida de muestra

Para copiar un archivo desde un servidor remoto a un sistema local usando rsync sobre SSH:
Al igual que en el ejemplo anterior, el comando rsync se usa junto con -e opción.
$ rsync -avzhe ssh root@66.152.163.19:/backup_dir /tmp/ Salida de muestra

Mostrar el progreso durante la transferencia de datos con el comando rsync
Si desea ver el progreso durante la transferencia de datos, use el --progress opción. Esto muestra el archivo y el tiempo estimado para completar la transferencia de datos.
Salida de muestra

Comando Linux rsync con opciones de inclusión y exclusión
Estas opciones anteriores ayudan a los usuarios a include y exclude archivos que pueden querer incluir o excluir en el proceso de sincronización.
En el siguiente ejemplo, el comando rsync incluirá esos archivos en /var/lib directorio que comienza con 'p' y excluye todos los demás archivos y directorios.
$ rsync -avz --include 'p*' --exclude '*' /var/lib root@66.152.163.19:/opt/backup_dir Salida de muestra

Establecer el tamaño máximo de los archivos a transferir
Puede definir el tamaño máximo de archivo que se transferirá y sincronizará mediante la opción "–max-size".
$ rsync -avzh --max-size='50M' deb_packages root@66.152.163.19:/opt/backup-dir
El comando anterior limita la transferencia de archivos en deb_packages directorio a 50 Megas. Esto implica que solo se transferirán y sincronizarán archivos iguales o inferiores a 50 MB.
Salida de muestra

Eliminar archivos de origen después de una transferencia exitosa
Si está realizando una copia de seguridad de sus archivos en un destino remoto pero no desea conservar una copia local, utilice –remove-source-files opción como se muestra.
$ rsync --remove-source-files -zvh backup.tar /tmp/mybackups/
Salida de muestra

Esperamos que este artículo haya sido de beneficio para usted. Si tiene alguna consulta, comuníquese con nosotros con sus comentarios.