Rsync Ssh usando un puerto no estándar en Linux
Rsync es una herramienta para copiar archivos localmente, hacia / desde otro host sobre cualquier shell remoto, o hacia / desde un demonio rsync remoto. Rsync se utiliza ampliamente para realizar copias de seguridad de los datos.
Este tutorial describe cómo podemos conectarnos a ssh para copiar datos usando rsync, si ssh se está ejecutando en un puerto diferente.
Sintaxis de Rsync
El uso básico del comando rsync es:
rsync [options] src [dest]
De forma predeterminada, el comando rsync solo enumerará los archivos en origen si no se proporciona un destino. Por ejemplo,
$ rsync /usr/ drwxr-xr-x 4096 2011/04/26 04:26:48 . drwxr-xr-x 53248 2012/09/26 23:05:59 bin drwxr-xr-x 4096 2011/04/26 04:27:37 games drwxr-xr-x 20480 2012/09/08 19:17:32 include drwxr-xr-x 69632 2012/09/26 23:05:50 lib drwxr-xr-x 4096 2011/04/26 04:26:48 lib64 drwxr-xr-x 4096 2011/11/16 13:02:25 local drwxr-xr-x 12288 2012/09/26 23:05:51 sbin drwxr-xr-x 12288 2012/09/22 14:25:28 share drwxrwsr-x 4096 2012/09/08 19:46:27 src
Ahora, para copiar localmente, podemos emitir el siguiente comando
$ rsync -av file1 dir1/ sending incremental file list sent 45 bytes received 12 bytes 114.00 bytes/sec total size is 0 speedup is 0.00
Esto copiará el archivo llamado ‘archivo1’ al directorio ‘dir1’. La opción -v aquí es solo para una salida detallada.
Rsync Ssh a un puerto específico
Si queremos conectarnos a una máquina que ejecuta ssh en algún puerto específico usando rsync, entonces podemos ejecutar la siguiente sintaxis
$ rsync --rsh="ssh -p1234" <sourcefile> user@host:/path/to/destination/directory
El puerto en el que se ejecuta ssh se especifica mediante la opción -p como se especificó anteriormente. Aquí, el puerto 1234 debe cambiarse por el puerto en el que se ejecuta el servidor ssh. Un ejemplo de funcionamiento de la sintaxis anterior es
$ rsync -av --rsh="ssh -p22" file1 root@192.168.1.8:/mnt The authenticity of host '192.168.1.8 (192.168.1.8)' can't be established. ECDSA key fingerprint is fe:44:85:8c:2c:63:fb:d7:df:dd:27:17:45:04:28:9b. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.8' (ECDSA) to the list of known hosts. root@192.168.1.8's password: sending incremental file list file1 sent 84 bytes received 31 bytes 10.95 bytes/sec total size is 0 speedup is 0.00
Esto copiará el archivo usando rsync + ssh, y ssh no se está ejecutando en su puerto predeterminado (aunque en el ejemplo anterior, el puerto es predeterminado, es decir, 22).
Leer también: