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:
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!