Nombre Completo
Cleto Martín Angelina
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 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
¿Por qué ascii?
Hombre, no todo lo que se quiera copiar será texto ASCII, ¿no?
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.