Cómo dominar los comandos rsync en Linux

Como su nombre indica, rsync es la herramienta de sincronización. La primera vez que lo usa, simplemente Copiar archivos y directorios de un sitio a otro. Sin embargo, los usos posteriores solo sincronizan las diferencias entre estas ubicaciones. Por lo tanto, si agrega un archivo al directorio de origen, rsync solo copiará el nuevo archivo en el destino. Esto ahorra mucho tiempo y ancho de banda, especialmente cuando se copia a un sitio remoto.

Cómo dominar los comandos rsync en Linux - Linux

Imagina que tienes 50 GB de datos que tienes que sincronizar con un servidor remoto. Puede programar rsync para que se ejecute diariamente. En lugar de tener que copiar los 50 GB completos una y otra vez, la herramienta solo enviará las diferencias. Esto podría significar que debe cargar algunos megabytes de datos cada día, en lugar de gigabytes.

En la imagen de arriba, puede ver cómo la primera vez se transfirieron 104 MB, mientras que durante el segundo uso, los datos que se necesitaron son solo 31 KB.

Cómo instalar rsync en diferentes distribuciones de Linux

En Debian y distribuciones basadas en Debian, como Ubuntu, puede instalar rsync con:

sudo apt install rsync
Cómo dominar los comandos rsync en Linux - Linux

على FedoraInstalarlo con:

dnf install rsync

y sobre las distribuciones derivadas de RedHat (por ejemplo , CentOS):

yum install rsync

Para instalar rsync en Arch Linux , usa el comando:

pacman -S rsync

على openSUSE , usar:

zypper install rsync

Si la herramienta no aparece en sus repositorios predeterminados, consulte página de instalación de openSUSE rsync.

Cómo usar rsync para sincronizar archivos o directorios locales

La sintaxis general de rsync es: rsync [opciones] /ruta/al/origen /ruta/al/destino.

[opciones] significa opciones de línea de comandos que puede encontrar en el manual:

man rsync
Cómo dominar los comandos rsync en Linux - Linux

Prensa q para terminar la guía.

Para copiar un archivo:

rsync /bin/ls .

El comando anterior es equivalente a rsync /bin/ls /home/su_nombre de usuario. Esto copia el comando "ls" al directorio en el que se encuentra actualmente. Por defecto, que debería ser este /home/tu_usuario. el punto Para estar en el directorio actual. Los nombres de ruta pueden ser absolutos (/home/tu_usuario/Descargas/chrome.zip) o relacionado con su directorio actual (Descargas/chrome.zip).

Cuando se trata de archivos muy grandes, puede utilizar este comando:

rsync -P /path/to/file /path/to/destination

Esto mostrará el progreso y le permitirá reanudar la transferencia interrumpida. En caso de que necesite una apelación, utilice:

rsync -P --append path/to/file /path/to/destination

sin --adjuntar El proceso de transferencia se realiza desde el principio.

Para sincronizar directorios:

rsync -av /path/to/source /path/to/destination

Comando de ejemplo:

rsync -av /bin .

Efecto de barra diagonal final en rsync (Importante)

En la nota del comando anterior, la ruta al directorio de origen no contiene barra inclinada / (/bin vs /bin/). Sin barra, rsync copia el directorio en sí. Asi que rsync-av/bin. Conduce a lo que se muestra en la siguiente imagen.

Cómo dominar los comandos rsync en Linux - Linux

Al usar la barra inclinada, rsync copia el contenido de ese directorio. En este caso, cada archivo se dispersará en / papelera en el directorio de destino. Asi que rsync -av /bin/. Dará como resultado lo que se muestra en la siguiente imagen.

Cómo dominar los comandos rsync en Linux - Linux

Es muy importante recordar esta diferencia, ya que usar TAB para autocompletar nombres de directorio agrega una barra al final. Así que tenga eso en cuenta para evitar saturar el directorio de destino.

Cómo usar rsync para sincronizar con sitios remotos (por ejemplo, servidores)

Lo que se describió en la sección anterior es cierto cuando se trata de sitios remotos. La única diferencia es que debe ingresar el nombre de usuario de inicio de sesión y la dirección del sitio remoto por adelantado. Para enviar el directorio /bin a una computadora remota, use:

rsync -av /bin your_username@203.0.113.10:/home/your_username

rsync se conecta a través OpenSSH. Esto significa que tienes que configurar un servidor OpenSSH y credenciales de inicio de sesión en el destino remoto ya. Tenga en cuenta que su nombre de usuario Indica el nombre de usuario que se creó en el servidor. Esto puede ser diferente del nombre de usuario en su máquina local.

Si posee un nombre de dominio y lo apunta a la dirección IP del servidor, puede usar el dominio en el comando:

rsync -av /bin your_username@example.com:/home/your_username

En transferencias grandes, también es útil comprimir los datos antes de enviarlos por cable agregando el parámetro -z:

rsync -avz /bin your_username@example.com:/home/your_username

Puede omitir el parámetro de compresión cuando envíe archivos ya comprimidos (archivos de audio como MP3, videos y JPEG). Ya no se puede comprimir, por lo que perderá tiempo usando -z en estos.

Para copiar archivos desde el destino remoto a la computadora local, simplemente invierta las ubicaciones:

rsync -avz your_username@example.com:/bin /home/your_username

Conclusión

Esto cubre los comandos rsync más importantes que necesita saber. Si alguna vez necesita más control sobre cómo Sincronización de directorios Consulte el manual de rsync en línea y desplácese hacia abajo en algunas páginas hasta que encuentre el Resumen de opciones.

Ir al botón superior