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 [email protected]:
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 [email protected]: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 [email protected]:/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 [email protected]:/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 [email protected]:/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 [email protected]:/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.