Cómo dominar el comando rsync en Linux

Como sugiere su nombre, rsync es una herramienta de sincronización. La primera vez que lo usa, simplemente copia archivos y directorios de una ubicación a otra. Sin embargo, los usos posteriores sincronizan solo las diferencias entre estas ubicaciones. Por lo tanto, si agrega un archivo al directorio de origen, rsync copiará solo el nuevo archivo al destino. Esto ahorra mucho tiempo y ancho de banda, especialmente al realizar copias en una ubicación remota.

Imagine que tiene 50 GB de datos que debe sincronizar con un servidor remoto. Puede programar rsync para que se ejecute a diario. En lugar de tener que copiar los 50 GB completos una y otra vez, la utilidad solo enviará las diferencias. Esto podría significar que solo tiene que cargar unos pocos megabytes de datos todos los días, en lugar de gigabytes.

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

Cómo instalar rsync en varias distribuciones de Linux

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

rsync-install

En Fedora, instale con:

Y en distribuciones derivadas de RedHat (por ejemplo, CentOS):

Para instalar rsync en Arch Linux, use el comando:

En openSUSE, use:

Si no está incluido en sus repositorios predeterminados, consulte el página de instalación de openSUSE rsync.

Cómo utilizar rsync para sincronizar archivos o directorios locales

La sintaxis general de rsync es: rsync [options] /path/to/source /path/to/destination.

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

rsync-command-line-options

prensa q para salir del manual.

Para copiar un archivo:

El comando anterior es equivalente a rsync /bin/ls /home/your_username. Esto copia el comando “ls” en el directorio en el que se encuentra actualmente. Por defecto, debe ser /home/your_username. El punto . significa directorio actual. Los nombres de ruta pueden ser absolutos (/home/your_username/Downloads/chrome.zip) o relativo a su directorio actual (Downloads/chrome.zip).

Cuando maneja archivos muy grandes, puede usar este comando:

Esto mostrará el progreso y le permitirá reanudar una transferencia interrumpida. En caso de que necesite reanudar, use:

Sin --append, la transferencia comenzaría desde cero.

Para sincronizar directorios:

Comando de ejemplo:

Efecto de la barra inclinada final en rsync (importante)

En el comando anterior, tenga en cuenta que la ruta al directorio de origen no contiene una barra diagonal / (/bin vs /bin/). Sin una barra al final, rsync copia el directorio en sí. Entonces rsync -av /bin . da como resultado lo que se muestra en la siguiente imagen.

rsync-sin-barra-diagonal

Cuando se usa una barra al final, rsync copia el contenido en ese directorio. En este caso, cada archivo en /bin estaría disperso en el directorio de destino. Entonces rsync -av /bin/ . daría como resultado lo que se muestra en la siguiente imagen.

rsync-con-barra-diagonal

Es muy importante recordar esta diferencia, ya que el uso de TAB para completar automáticamente los nombres de los directorios agrega automáticamente una barra al final. Así que tenga esto en cuenta para evitar crear un desorden en el directorio de destino.

Cómo utilizar rsync para sincronizar con ubicaciones remotas (por ejemplo, servidores)

Lo que se describió en la sección anterior es válido cuando se trabaja con ubicaciones remotas. La única diferencia es que debe anteponer el nombre de usuario de inicio de sesión y la dirección de la ubicación remota. Para enviar tu /bin directorio a una computadora remota, use:

rsync se conecta a través de OpenSSH. Esto significa que debe configurar el servidor OpenSSH y las credenciales de inicio de sesión en el destino remoto de antemano. Tenga en cuenta que your_username se refiere al nombre de usuario creado en el servidor. Este puede ser diferente del nombre de usuario que tiene en su máquina local.

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

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

Puede omitir el parámetro de compresión cuando envía archivos que ya están comprimidos (archivos de audio como MP3, videos, imágenes JPEG). No se pueden comprimir más, por lo que en realidad perdería tiempo al usar -z en estos.

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

Conclusión

Esto cubre los comandos rsync más importantes que necesita conocer. Si alguna vez necesita más control sobre cómo sincronizar directorios, consulte el manual de rsync en línea y desplácese algunas páginas hacia abajo hasta encontrar “Resumen de opciones”.

¿Es útil este artículo?

¡Compártelo en redes!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *