Script bash: Crear backups de todas las bases de datos.
Con un sencillo script bash, podemos crear una aplicación que nos realizara copias de seguridad de todas las bases de datos de nuestro servidor o vps.
Lo vemos.
Crear backups de todas las bases de datos
Creamos el archivo:
nano /root/backupdb.sh
Copia y pega lo siguiente…
#!/bin/bash mkdir -p /home/dbbackups path="/home/dbbackups" today=`date +%F` dow=`date +%a` # List all databases in server mysql -e "show databases" | egrep -vw "(Database|information_schema|performance_schema)" > $path/dblist.txt rm -fv $path/dbfailed.txt rm -fv $path/dbfailed-tmp.txt rm -fv $path/dbfailed-mail.txt mkdir -p $path/$dow /usr/bin/mysqldump --events mysql > $path/$dow/mysql.sql if [ $? -ne 0 ] ; then mysqlcheck -r mysql ; /usr/bin/mysqldump --events mysql > $path/$dow/mysql.sql if [ $? -ne 0 ] ; then echo "mysql" > $path/dbfailed.txt; fi fi for i in `cat $path/dblist.txt` ; do sleep 2; echo "Creating dbbackup of $i" ; /usr/bin/mysqldump $i > $path/$dow/$i.sql ; if [ $? -ne 0 ] ; then echo $i >> $path/dbfailed-tmp.txt; fi; done if [ -f $path/dbfailed-tmp.txt ] then for i in `cat $path/dbfailed-tmp.txt` do mysqlcheck -r $i /usr/bin/mysqldump $i > $path/$dow/$i.sql ; if [ $? -ne 0 ] ; then echo $i >> $path/dbfailed.txt; fi; done fi find /home/dbbackups/* -type f -mtime +30 -exec rm -f {} \;
Guarda y cierra el archivo.
Le concedemos permisos 755.
chmod 755 /root/backupdb.sh
Para ejecutarlo de forma manual…
bash /root/backupdb.sh
Para ejecutarlo automáticamente mediante una tarea cron.
crontab -e
Modifica según tus necesidades…
30 1 * * 0,1,2,3,4,5,6 /root/backupdb.sh
Los backups de las bases de datos se han guardado en: «/home/dbbackups«.
Espero te resulte útil el script «Crear backups de todas las bases de datos».
Saludos
cómo quedaría la cosa para respaldar una base de datos (mysql) remota en un directorio local, teniendo claro, las credenciales de acceso al remoto?
Puedes insertar en el script un wget para que descargue los backs, por ejemplo…
También es posible que te interese más este otro script.
https://www.sololinux.es/script-crear-backup-bases-datos-ftp/