Rsync y SSH: backups más seguros que nunca

Una vez que hayamos copiado nuestra clave pública a un servidor para conectarnos sin contraseña, podemos aprovechar para hacer backups más seguros utilizando rsync y SSH. De esta manera podemos aprovechar la seguridad que nos brinda el cifrado y la posibilidad de sincronizar archivos entre un cliente y un servidor remoto. De esta forma no corremos el riesgo de perder datos si nuestros dispositivos de almacenamiento locales se dañan.

Combinando rsync y SSH

Como veremos a continuación, para realizar backups y sincronización de datos entre nuestro equipo y un sistema remoto no es necesario que modifiquemos significativamente la sintaxis básica de rsync tal como lo aprendimos en un post anterior. Recordando:

rsync [opciones] [fuente] [destino]

El único cambio que haremos es en [destino], indicando la dirección IP o nombre del equipo remoto (en este ejemplo es AAA.BBB.CCC.DDD) y el directorio en donde queremos guardar las copias de respaldo:

rsync [opciones] [fuente] usuario_remoto@AAA.BBB.CCC.DDD:/[destino]

Para que la transferencia a través de SSH funcione, es necesario que el usuario remoto tenga derechos de escritura sobre el directorio remoto. Recordemos que si no especificamos un usuario, el usuario remoto por defecto será igual a la cuenta local.

En nuestro caso particular, debido a que el servidor está escuchando en un puerto diferente a 22 (recordemos que en el post anterior elegimos el puerto 2990), tendremos que introducir una pequeña modificación a fin de que rsync realice la conexión a través del mismo. En el siguiente ejemplo respaldaremos la información contenida en el directorio website dentro de nuestro home (simbolizado por ~/website) en el directorio remoto ~/backups (/home/gacanepa/backups).

rsync -avz ~/website -e "ssh -p 2990" gacanepa@192.168.0.29:~/backups

Si SSH estuviera utilizando el puerto 22 por defecto, el comando anterior se reduciría a

rsync -avz ~/website gacanepa@192.168.0.29:~/backups

Aunque si el usuario local es igual al remoto, podemos obviar en ambos casos dicha información, por lo que los comandos anteriores tomarían la siguiente forma:

rsync -avz ~/website -e "ssh -p 2990" 192.168.0.29:~/backups

y

rsync -avz ~/website 192.168.0.29:~/backups

En la Fig. 1 mostramos el contenido de los directorios local y remoto luego de finalizada la misma:

Backups con rsync y ssh
Figura 1 – Backups con rsync y ssh

Ahora que hemos repasado la importancia de disponer de backups y mostrado la manera de realizarlos en varios escenarios no tenemos excusa para perder datos. ¡Nos leemos en el próximo post!