Una alternativa para Backup Remoto.

Está claro que rsync es el rey del software dedicado a realizar backups remotos de archivos en servidores. Pero por desgracia en algunos casos eso no es posible usarlo. Por ejemplo cuando los archivos originales se encuentra en un hosting compartido al que sólo podemos acceder mediante FTP…

Entonces, ¿qué podemos hacer si queremos hacer backups en remoto de un hosting compartido al que sólo podemos acceder por FTP?.

BackupPor suerte podemos usar una alternativa llamada LFTP, que instalaremos en la máquina donde vamos a almacenar las copias de seguridad de los archivos. Que podría ser, por ejemplo, nuestro propio equipo de trabajo (siempre que usemos linux, porque LFTP no está disponible para Windows).

El siguiente comando conecta al servidor remoto (donde están los archivos originales de los que queremos hacer copia), y copia los archivos y directorios que se encuentren bajo la ruta especificada en el servidor remoto a la ruta indicada para el servidor local (donde queremos tener la copia de los archivos originales).

Sólo copiará los archivos que no hayan sido copiados previamente (parámetro -n del comando mirror) y borrará los archivos de la copia local que no se encuentren ya en el servidor remoto (parámetro -e del comando mirror).

Una vez terminada la tarea desconectará del servidor remoto y terminará LFTP.

lftp -c "open -u usuario,contraseña ftp://dominio.com; mirror -ne /ruta/remota /ruta/local/backup"

Y el siguiente comando hace lo mismo pero invirtiendo los servidores. En este caso se copian los archivos originales del servidor local (el servidor donde se ejecuta LFTP) a la ruta especificada del servidor remoto (al que nos estamos conectando).

lftp -c "open -u usuario,contraseña ftp://dominio.com; mirror -neR /ruta/local /ruta/remota/backup"

Y por último, si queremos hacer copias de varios directorios en distintas rutas en una misma conexión realizada por LFTP, podemos usar un script de LFTP para ejecutar varios comandos de manera más cómoda. Para lo cual crearemos un archivo conteniendo los comandos a ejecutar:

open -u usuario,contraseña ftp://dominio.com
mirror -ne /ruta1/servidor/remoto /ruta1/local
mirror -ne /ruta2/servidor/remoto /ruta2/local
exit

En este ejemplo he llamado al archivo script de LFTPmirror.lftp“, pero podéis darle el nombre que más os guste… Y después ejecutaremos LFTP así:

lftp -f mirror.lftp

De esta manera sólo conectaremos al servidor remoto una única vez para hacer nuestra copia de seguridad de dos directorios (y su contenido) en rutas totalmente distintas del mismo servidor. Ya sólo nos quedaría incorporar la ejecución del comando al crontab y tendríamos un sistema de backup remoto bastante decente y sencillo 😉

Deja un comentario