¿Como hago un script para copia de seguridad?

Hola, lo que quiero es hacer un script para que todos los días me haga una copia de seguridad de una base de datos.

Lo que quiero es que todos los dias a 24:00h me haga esa copia y no me machaque la del día anterior, una solucion interesante sería que cada día le diera un nombre distinto al archvio de copiaseguridad con la fecha, ej: nombre_20060312.sql

Las dudas que tengo es de como crear el script y donde guardarlo para que se ejecute todos los dias.

Graciassss
Utiliza cron (man cron y esto) para ejecutar el script. Para que te cambie el nombre del archivo sencillamente asigna a una variable la fecha con el comando date. Si no sabes nada de BASH, tienes nociones básicas en el manual que te enlazo.
Buenas!
Uso un script exactamente para eso, y este es su contenido:


#!/bin/bash
mysqldump -u root -a -pCONTRASEÑA blog | bzip2 -c > /root/sql/blog.`date +%F`.sql.bz2
mysqldump -u root -a -pCONTRASEÑA horde | bzip2 -c > /root/sql/horde.`date +%F`.sql.bz2
mysqldump -u root -a -pCONTRASEÑA list | bzip2 -c > /root/sql/list.`date +%F`.sql.bz2
mysqldump -u root -a -pCONTRASEÑA mysql | bzip2 -c > /root/sql/mysql.`date +%F`.sql.bz2
mysqldump -u root -a -pCONTRASEÑA pmadb | bzip2 -c > /root/sql/pmadb.`date +%F`.sql.bz2
mysqldump -u root -a -pCONTRASEÑA provider | bzip2 -c > /root/sql/mail.`date +%F`.sql.bz2
mysqldump -u root -a -pCONTRASEÑA torrentflux | bzip2 -c > /root/sql/tf.`date +%F`.sql.bz2



Ese es el contenido del script sql.sh, situado en /root/cron/. Como ves, cada linea corresponde a cada base de datos, así que agrega tantas cuanto necesites. El script lo saca a texto plano, y luego lo comprime en bzip2, y en el nombre inserta la fecha en este formato: blog.2006-03-13.sql.bz2. Una vez hecho el script, ejecuta como root crontab -e, y agrega una linea como esta:

0 3 * * * /root/cron/sql.sh


Con eso ejecuta el script todos los días a las 3 de la madrugada.

Agur
2 respuestas