GNU/Linux >> Tutoriales Linux >  >> Linux

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

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 la transferencia de archivos a través de SSH como scp y sftp pero ninguno de ellos tiene todas las funciones que rsync proporciona. rsync se puede usar para duplicar datos, copias de seguridad incrementales, copiar archivos entre sistemas, etc.

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

Requisitos #

  • El rsync La utilidad debe instalarse tanto en el destino como en el sistema de origen. 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 debe tener los permisos adecuados para leer y escribir archivos.

Usando rsync para transferir archivos a través de SSH #

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

La sintaxis general para transferir archivos con rsync es el siguiente:

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

Donde SRC es el directorio de origen, DEST es 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 nuevas de rsync están configuradas para usar SSH como shell remoto predeterminado, por lo que puede omitir -e ssh opción.

Por ejemplo, para transferir un solo archivo /opt/file.zip del sistema local al /var/www/ directorio en el sistema remoto con IP 12.12.12.12 ejecutarías:

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

El -a opción significa modo de archivo que sincronizará directorios recursivamente, transferirá dispositivos especiales y bloqueará, preservará enlaces simbólicos, tiempos de modificación, grupo, propiedad y permisos.

Si no ha configurado un inicio de sesión SSH sin contraseña en la máquina remota, se le pedirá que ingrese la contraseña de 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 de una máquina remota a una local, utilice la ubicación remota como fuente y la ubicación local como destino:

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

Transferir directorios con rsync a través de SSH es lo mismo que transferir archivos.

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

Por ejemplo, para transferir el /opt/website/images/ local directorio al /var/www/images/ directorio en una máquina remota, escribiría:

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

Usa el --delete opción 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/linuxize/images/ [email protected]:/var/www/images/

Si SSH en el host remoto está escuchando en un puerto que no sea el predeterminado 22 , especifica el puerto usando -e opción. Por ejemplo, si SSH está escuchando en el puerto 3322 usarías:

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

Al transferir grandes cantidades de datos, se recomienda ejecutar rsync comando dentro de una sesión de pantalla o use el -P opción que le dice a rsync para mostrar una barra de progreso durante la transferencia y mantener los archivos transferidos parcialmente:

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

Conclusión #

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

También puede querer leer cómo excluir archivos o directorios con rsync .

Siéntase libre de dejar un comentario si tiene alguna pregunta.


Linux
  1. Cómo descargar y cargar archivos a través de SSH

  2. ¿Cómo silenciar selectivamente Rsync?

  3. Cómo transferir archivos en Linux con SCP y Rsync

  4. Cómo configurar Rsync con SSH en UNIX/Linux (rsync sin contraseña)

  5. ¿Usar un dispositivo a través de SSH?

Cómo usar el comando rsync para copiar datos localmente y a través de SSH

Cómo transferir archivos fácilmente entre escritorios Linux con Warp

Cómo transferir archivos con Commander One

Cómo configurar una copia de seguridad con rsync en Ubuntu 18.04

Cómo usar el montaje SSHFS con directorios remotos a través de SSH

Cómo copiar archivos de forma remota a través de SSH sin ingresar una contraseña