Este es un script simple de bash para copia de seguridad de bases de datos MySQL. Lo utilizamos un servidor pequeño de Linode con Ubuntu pero debería funcionar en cualquier servidor Linux.
- XBACKUPFOLDERX: your folder without trailing and ending slashes relative to the root.
- XUSERX: A database user with access to all your databases.
- XPASSWORDX: The XUSERX password .
- database1 database2 database3 ... databaseN: Your database names separated by spaces.
- 5: The number of backups to keep per database.
Que hace el script?
- Mantiene hasta 5 backups para cada base de datos
- Los backups quedan comprimidos con gzip
- Mantiene un backup para hoy y 4 para días anteriores
Pasos para la implementación
Paso 1.
Copie el script en un archivo .sh en su sistema Linux. Asumimos cron_backupdb.sh para este ejemplo.
#!/bin/bash for BDNAME in database1 database2 database3 ... databaseN do rm /XBACKUPFOLDERX/${BDNAME}_`date +%Y-%m-%d`* mysqldump -uXUSERX -pXPASSWORDX $BDNAME|gzip > /root/_bkp/${BDNAME}_`date +%Y-%m-%d_%H`.sql.gz BKTAILRM=$((`ls -t /root/_bkp/${BDNAME}_*.sql*|awk -F: '{print $1}'|wc -l` - 5)) if [ "$BKTAILRM" -gt "0" ]; then ls -t /XBACKUPFOLDERX/${BDNAME}_*.sql*|awk -F: '{print "rm "$1}'|tail -n $BKTAILRM|/bin/sh fi done
Paso 2.
Permisos y crontab
:~# chmod u+x cron_backupdb.sh :~# crontab -e
Paso 3.
Su línea de crontab. Esta línea se ejecuta cada hora, pero revise el manual de crontab para su propia configuración:
0 * * * * /var/root/cron_backupdb.sh
Publicación Comentarios
Envíe una Opinión