Utilizar un servidor FTP remoto como backup

seguridadshell

Si tenemos un servicio de hosting remoto con FTP, es probable que nos interese subir archivos de bakcup. Esta receta explica como hacerlo con un breve script de BASH.

El script

El ejemplo propuesto es una tarea demasiado sencilla (copia de un fichero de texto al ftp remoto). Sin embargo, puede servite como base para realizar tareas más complejas.

Como vamos a hacer labores administrativas es recomendable usar root para crear el script. Además, el fichero contiene información privada (como el usuario y la contraseña del FTP), por lo que es necesario que tenga los permisos adecuados y que otros usuarios no autorizados NO puedan ver tal información.

#!/bin/bash
HOST="ftp.ejemplo.com"
USER="ejemplo"
PASSWD="ejemplo"
SRC="/home/user"
#Directorio local de las copias de seguridad
BACKUP="/home/user/backup"
#Directorio remoto donde irán las copias de seguridad
REMOTE="/backup"
 
cd $BAKCUP
 
#Copia del archivo y renombrado con la fecha
cp $SRC/mi_archivo_importante.txt mi_archivo_importante.txt.$(date +%Y%m%d)
echo -e "---- BACKUP $(date +%Y%m%d) ----\n" 
 
ftp -n -v $HOST << EOT
binary
user $USER $PASSWD
prompt
 
cd $REMOTE                  
mput mi_archivo_importante.txt.$(date +%Y%m%d)
bye
bye
EOT

Guarda el archivo con el nombre "backup.sh" en el directorio /sbin/ y ponles los permisos correspondientes:
# chmod 700 /sbin/backup.sh

Ahora, solo falta que actualicemos el cron para que esta tarea se ejecute a una determinada fecha y hora. Por ejemplo, vamos a hacer que se lance todos los días a las 12:00 H. De paso, vamos a decirle que la salida la deje en un archivo de log (/var/log/backup.log) para que podamos echarle un vistazo al archivo y saber que todo va bien.

Edita, pues, el archivo (/etc/crontab) con tu editor favorito, o sea:
# emacs /etc/crontab
Y añades la siguiente línea:

00 12    * * *   root    /sbin/backup.sh >> /home/user/backup.log 

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

¿Por qué ascii?

Hombre, no todo lo que se quiera copiar será texto ASCII, ¿no?

Imagen de cleto

Ok...

.... cambiado. Gracias, paco.

gracias por el script.

gracias por el script.
pienso que los backups deben contemplar el elemento de disastre natural. Si los servidores sufren de un incendio o inundacion poco te valen si tambien fueron destruidos.

Por eso creo que los backup estan mejor en algun sitio geograficamente remoto. En este caso es probable que los datos tienen que pasar por redes no seguras como una WAN.

quizas se podria emplear sftp en vez de ftp. hemos tenido buenos resultados con rdiff-backup.

saludos.