La intención es respaldar una serie de carpetas en un equipo cliente a otro servidor. Realmente manteniendo una copia (mirror) de la original sin compresión, ni backups incrementales o diferenciales.
Las características de los sistemas hacen que usemos:
1. rsync en el cliente-origen de la información
2. la transferencia sea a través de ssh
3. el servidor-receptor de la información carece de demonio rsync
4. el sistema de archivos en el que se almacena la información es FAT
Realmente el cliente es el taperserver del que ya hemos hablado anteriormente y el servidor en el que se almacena la información es un NSLU2 de Linksys al que se le ha modificado el firmware hasta un Unslung V2.3R63-uNSLUng-6.8 (ver nslu2-linux para mas detalle). Ambos están conectados a internet con conexiones de banda ancha (o más bien estrecha) de diferentes proveedores y en lugares separados.
1
|
|
Dado que tratamos de almacenar en un sistema FAT tendremos problemas con los nombres, con los permisos, con las fechas,… vamos que no nos sirve el -a. Se podría forzar el montaje del sistema de archivos con opciones de “lower” o “mixed” dependiendo de lo que nos convenga pero en el nslu2 con ese firmware me ha parecido que no permite seleccionarlo.
Las opciones típicas para rsync sobre FAT son “rsync -rvt –modify-window=1 –delete origen/ destino/” sin embargo también se deben considerar –size-only y –checksum (=-c). Esta última es más lenta pero es la que a mi me ha funcionado.
Una vez verificado el funcionamiento de rsync prepararemos las claves para que se pueda conectar sin pedirnos contraseña. Generamos en el equipo cliente el par de claves pública y privada:
1
|
|
Copiamos el archivo con la extensión .pub al servidor y lo añadimos en el archivo known_hosts de la carpeta .ssh del usuario que vamos a utilizar. En el cliente tenemos dos opciones, usar la opción -i cuando llamemos a ssh seguido del archivo de la clave privada o bien renombrarla como id_rsa y id_rsa.pub y moverlas a la carpeta .ssh del usuario que ejecutará la copia para que se tomen como las claves por defecto. Finalmente solo nos queda añadir la linea adecuada al cron del usuario:
1 2 |
|
donde la opción -c blowfixh-cbc tiene que ver con acelerar la transmisión con una encriptación menor. Dependiendo de que se vaya a transferir también se puede comprimir la transferencia con la opción adecuada en el ssh. Sin embargo la idea es que el nslu2 tenga la menor carga posible y además muchos de los archivos a transferir serán pdf, jpg o archivos ya comprimidos con lo que tampoco ganamos nada volviendo a comprimir.