Al igual que contaba en los artículos «Hacer backup de todas las bases de un SQL Server» y en «Hacer backup de todas las bases de un servidor MySQL o MariaDB en Windows«, uno de los problemas que podemos tener en un motor de base de datos utilizado para desarrollo es la constante creación y eliminación de bases, principalmente cuando tenemos muchos proyectos, lo que nos dificulta la tarea de hacer backups programados.
Cuando pensamos que finalmente teníamos este problema resuelto (ya que automatizamos los backups de MySql y SQL Server) recibimos nuevos proyectos para modificar sistemas que utilizan MariaDB sobre Linux. Aunque se puede utilizar el mismo comando que usamos para MySql, el mysqldump, el problema ahora era que estábamos utilizando Linux (CentOS en nuestro caso), lo cual no nos permitía utilizar el BAT que ya teníamos.
Por todo lo comentado anteriormente es que creamos un script .sh para automatizar esta tarea, que envía una consulta al motor para obtener el nombre de las bases, genera el script de cada una, los comprime (utilizamos el RAR 5) y luego enviamos el archivo a nuestro servidor de backups utilizando como nombre del archivo la fecha actual con el mismo formato que lo tenemos en los otros backup.
Bueno, vamos al código…
5 | echo "Buscando las bases de datos" |
6 | databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep - v Database` |
9 | for db in $databases; do |
10 | if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then |
11 | echo "Creando script de la base $db" |
12 | mysqldump -u $USER -p$PASSWORD --databases $db > $db.sql |
17 | echo "Comprimiendo los scripts" |
18 | /opt/rar/rar A -s -ma -m5 -rr3p -tk -r - df ` date +%Y%m%d`.rar *.sql |
21 | echo "Copiando backup al servidor" |
22 | curl -T *.rar ftp ://servidor/Backups/mariadb/ --user usuarioFtp:claveFtp |
25 | echo "Eliminando temporales" |
Este script lo ejecutamos periódicamente utilizando cron para asegurarnos de no perder nada en caso de falla de los discos o por si necesitamos una versión anterior de alguna base de datos.
Espero les sirva.
Suerte!
Me gusta esto:
Me gusta Cargando...
Relacionado
Deja un comentario