script backup mysqldump en linux mediante crontab

Si queréis hacer un shell script automático para que genere backups de la base de datos de vuestros proyectos, voy a indicar un script que funciona mediante un crontab y el comando mysqldump y que a mi me ha dado muy buenos resultados.

Lo he probado en un servidor CentOS y freeBSD, a lo mejor tendréis que cambiar los path de los archivos binarios.

Voy a explicar la idea de este script backup, básicamente se genera cada día mediante un crontab o cronjob, y se guarda con el nombre del día actual en inglés, imaginemos que hoy es lunes, pues monday. El backup de la base de datos se sacaría con el comando mysqldump, y nos resultaría un archivo llamado BackupMonday.sql.gz
Previamente el script borra lo que haya con nombre BackupMonday.sql.gz de manera que sobrescribe lo que se haya generado en la base de datos de la semana anterior.
Por último aplicamos permisos 777 o 755 para que la próxima vez que se genere el script se pueda borrar el archivo BackupMonday.sql.gz

De esta manera tendríamos un backup semanal de nuestra base de datos y automáticamente se iría sobrescribiendo para que siempre estuviera actualizado.

El siguiente fragmento es un shell script sh que ejecuta el mysqldump haciendo el backup de la base de datos que he comentado anteriormente.
Le aplicamos un gzip para el resultado del backup ya esté comprimido
El nombre del scrip lo guardaremos y lo llamaremos de la siguiente manera:
/path_proyecto/proyecto/shell_scripts/backups.sh

# EJEMPLO BACKUP BASE DE DATOS
bin/rm /path_proyecto/proyecto/backups/core/BackupCore`date "+%A"`.sql.gz
/usr/bin/mysqldump -u USUARIO --password=PASSWORD -a --host=localhost BASE_DE_DATOS | gzip -9 > /path_proyecto/proyecto/backups/core/BackupCore`date "+%A"`.sql.gz
chmod 777 /path_proyecto/proyecto/backups/core/BackupCore`date "+%A"`.sql.gz
# añadir más bases de datos si se desea

Comprobamos los crontab que hay configuramos.

crontab -l

Entramos en modo de edición el crontab

crontab -e

Insertamos en el crontab la ejecución del backup.sh para que se ejecute cada día a medianoche y listo!

0 0 * * * sh /path_proyecto/proyecto/shell_scripts/backups.sh

3 opiniones en “script backup mysqldump en linux mediante crontab”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *