Cómo transferir archivos con Rsync a través de SSH en Linux

27 feb 2021 3 min di lettura
Cómo transferir archivos con Rsync a través de SSH en Linux
Indice dei contenuti

Introducción

Cuando se trata de transferir archivos entre sistemas en la red, los usuarios de Linux y Unix tienen muchas herramientas a su disposición.

Los protocolos más populares para la transferencia de datos son SSH y FTP. Si bien FTP es muy popular, siempre prefiera usar SSH, ya que es la forma más segura de transferir sus archivos.

Existen herramientas especializadas para transferir archivos a través de SSH como scp y sftp pero ninguna de ellas tiene todas las características que ofrece rsync rsync se puede utilizar para duplicación de datos, copias de seguridad incrementales, copia de archivos entre sistemas, etc.

En este tutorial, explicaremos cómo copiar archivos con rsync sobre SSH.

Prerrequisitos

La rsync debe instalarse tanto en el sistema de origen como en el de destino. Si no está instalado, puede instalarlo usando el administrador de paquetes de su distribución:

Ubuntu y Debian:

sudo apt install rsync

CentOS y Fedora:

sudo yum install rsync
  • Acceso SSH a la computadora remota.
  • El usuario que ejecuta el rsync y el usuario SSH remoto deben tener los permisos adecuados para leer y escribir archivos.

Utilice rsync para transferir archivos a través de SSH

Con rsync, puede transferir archivos y directorios a través de SSH hacia y desde servidores remotos.

La sintaxis general para la transferencia de archivos con rsync es la siguiente:

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

SRC es el directorio de origen, DEST el directorio de destino USER es el nombre de usuario SSH remoto y HOST es el host SSH remoto o la dirección IP.

Las versiones más recientes de rsync están configuradas para usar SSH como shell remoto predeterminado, por lo que puede omitir la opción -e ssh

Por ejemplo, para transferir un solo /opt/file.zip desde el sistema local al /var/www/ en el sistema remoto con IP 12.12.12.12, debe ejecutar:

rsync -a /opt/file.zip [email protected]:/var/www/

La -a indica el modo de almacenamiento que sincroniza directorios de forma recursiva, transfiere dispositivos especiales y bloqueos, conserva enlaces simbólicos, tiempos de modificación, grupo, propiedad y permisos.

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

Si el archivo existe en el servidor remoto, se sobrescribirá. Si desea guardar el archivo con un nombre diferente, especifique el nuevo nombre:

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

Para transferir datos desde un servidor remoto a una computadora local, use la ubicación remota como origen y la ubicación local como destino:

rsync -a [email protected]:/var/www/file.zip /opt/

La transferencia de directorio con rsync través de SSH es equivalente a la transferencia de archivos.

Es importante saber que rsync ofrece un tratamiento diferente a los directorios de origen con una barra inclinada /. Cuando el directorio de origen tiene una barra inclinada al final, rsync copiará solo el contenido del directorio de origen en el directorio de destino. Cuando se omite la barra al final, el directorio de origen se copiará en el directorio de destino.

Por ejemplo, para transferir el directorio /opt/website/images/ /var/www/images/ en una computadora remota, escriba:

rsync -a /home/noviello/images/[email protected]:/var/www/images/

Utilice la --delete si desea sincronizar el directorio local y remoto. Tenga cuidado al usar esta opción, ya que eliminará archivos en el directorio de destino si no existen en el directorio de origen.

rsync -a --delete /home/noviello/images/[email protected]:/var/www/images/

Si el SSH en el host remoto está escuchando en un puerto que no sea el 22 predeterminado, especifique el puerto usando la opción -e Por ejemplo, si SSH está escuchando en el puerto 3322, use:

rsync -a -e "ssh -p 3322" /home/noviello/images/[email protected]:/var/www/images/

Al transferir grandes cantidades de datos, se recomienda que ejecute el rsync dentro de una sesión de pantalla o use la -P que indica al rsync que muestre una barra de progreso durante la transferencia y mantenga los archivos parcialmente transferidos:

rsync -a -P /home/noviello/images/[email protected]:/var/www/images/

Conclusión

Le mostramos cómo usar rsync sobre SSH para copiar y sincronizar archivos y directorios.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

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.