Cómo usar Rsync para transferir archivos locales y remotos en linux

27 feb 2021 4 min di lettura
Cómo usar Rsync para transferir archivos locales y remotos en linux
Indice dei contenuti

Introducción

Rsync es una utilidad de línea de comandos rápida y versátil que sincroniza archivos y carpetas entre dos ubicaciones en un shell remoto o desde /hacia un demonio Rsync remoto. Proporciona una rápida transferencia de archivos incremental al transferir solo las diferencias entre el origen y el destino.

Rsync se puede utilizar para duplicación de datos, copias de seguridad incrementales, copia de archivos entre sistemas y como reemplazo de los scp, sftp y cp para el uso diario.

En este tutorial, le mostraremos cómo usar rsync través de ejemplos prácticos y explicaciones detalladas de las rsync

Instalar Rsync

La rsync está preinstalada en la mayoría de las distribuciones de Linux y macOS. Puede comprobar si está instalado en su sistema escribiendo:

rsync --version
rsync version 3.1.2 protocol version 31

Si no tiene rsync instalado en su sistema, puede instalarlo fácilmente usando el administrador de paquetes de su distribución.

Instale Rsync en Ubuntu y Debian

sudo apt install rsync

Instale Rsync en CentOS y Fedora

sudo yum install rsync

Sintaxis del comando Rsync

Antes de entrar en cómo usar el rsync, comencemos mirando la sintaxis básica.

rsync tienen la siguiente forma:

Local to Local: rsync [OPTION]... [SRC]... DEST
 Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
 Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]

OPTION: las opciones de rsync.

  • SRC: directorio de origen.
  • DEST: directorio de destino.
  • USER: nombre de usuario remoto.
  • HOST: nombre de host remoto o dirección IP.

rsync proporciona una serie de opciones que controlan todos los aspectos de su comportamiento. Las opciones más utilizadas son:

  • -a, --archive, modo de archivo, equivalente a -rlptgoD. Esta opción le dice al rsync que sincronice directorios de forma recursiva, transfiera dispositivos especiales y bloquee, conserve enlaces simbólicos, tiempos de modificación, grupo, propiedad y permisos.
  • -z, - --compress. Esta opción obligará a rsync a comprimir los datos cuando se envíen a la computadora de destino.
  • -P, equivalente a --partial --progress. Cuando se usa esta opción, rsync mostrará una barra de progreso durante la transferencia y para mantener los archivos parcialmente transferidos. Es útil cuando se transfieren archivos grandes a través de conexiones de red lentas o inestables.
  • --delete. Al usar esta opción, rsync eliminará los archivos extraños de la ubicación de destino. Es útil para duplicar.
  • -q, - --quiet. Utilice esta opción si desea suprimir los mensajes que no sean de error.
  • -e. Esta opción le permite elegir un shell remoto diferente. De forma predeterminada, rsync está configurado para usar ssh.

Uso básico de Rsync

Para copiar un solo archivo de una ruta local a otra, debe ejecutar el siguiente comando:

rsync -a /opt/filename.zip /tmp/

El usuario que ejecuta el comando debe tener permisos de lectura en la ubicación de destino y permisos de escritura en el destino.

Si omite el nombre del archivo de la ubicación de destino, el archivo se copia con el nombre actual. Si desea guardar el archivo con un nombre diferente, especifique el nuevo nombre en la parte de destino:

rsync -a /opt/filename.zip /tmp/newfilename.zip

En el siguiente ejemplo, estamos creando una copia de seguridad local de los archivos de nuestro sitio web:

rsync -a /var/www/domain.com/public_html//var/www/domain.com/public_html_backup/

Si el directorio de destino no existe, se creará.

Vale la pena mencionar que rsync ofrece un tratamiento diferente a los directorios de origen con una barra inclinada /. Si agrega una barra al final en el directorio de origen, solo copiará el contenido del directorio en el directorio de destino. Cuando omite la rsync final, el directorio de origen se copiará en el directorio de destino.

Utilice Rsync para sincronizar datos desde y hacia una máquina remota

Cuando utilice rsync para transferencia remota, debe estar instalado tanto en la computadora de origen como en la de destino. Las nuevas versiones de rsync están configuradas para usar SSH como shell remoto predeterminado.

En el siguiente ejemplo, estamos transfiriendo un directorio de una computadora local a una computadora remota:

rsync -a /opt/media/remote_user@remote_host_or_ip:/opt/media/

Si no ha configurado el acceso SSH sin contraseña a la computadora remota, se le pedirá la contraseña del usuario.

Si desea transferir datos desde un servidor remoto a una computadora local, debe usar la ubicación remota como fuente:

rsync -a remote_user@remote_host_or_ip:/opt/media//opt/media/

Si SSH en el host remoto está escuchando en un puerto que no sea el 22 predeterminado, puede especificar el puerto usando la opción -e

rsync -a -e "ssh -p 2322" /opt/media/remote_user@remote_host_or_ip:/opt/media/

Al transferir grandes cantidades de datos, se recomienda que ejecute el rsync dentro de una pantalla o use la opción -P

rsync -a -P remote_user@remote_host_or_ip:/opt/media//opt/media/

Excluir archivos y directorios

Al excluir archivos o directorios, se deben utilizar las rutas relativas a la ubicación de origen.

Hay dos opciones para excluir archivos y directorios. La primera opción es usar el --exclude y especificar los archivos y directorios que desea excluir de la línea de comando.

En el siguiente ejemplo, excluimos los node_modules y tmp ubicados dentro de src_directory:

rsync -a --exclude=node_modules --exclude=tmp /src_directory//dst_directory/

La segunda opción es usar el --exclude-from y especificar los archivos y directorios que desea excluir en un archivo.

nano exclude-file.txt
node_modules
 tmp

Entonces:

rsync -a --exclude-from='/exclude-file.txt' /src_directory//dst_directory/

Conclusión

En este tutorial, aprendió a usar Rsync para copiar y sincronizar archivos y directorios. Hay mucho más que saber sobre Rsync en la página del Manual del usuario de Rsync.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.