Os traigo un script para exportar todas las bases de datos de vuestro MySQL.
#!/bin/bash
OUTPUT="/ruta/donde/guardar/los/backups"
databases=`mysql -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
for db in $databases; do
if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
echo "Dumping database: $db"
mysqldump --databases $db > $OUTPUT/`date +%Y%m%d`.$db.sql
# gzip $OUTPUT/`date +%Y%m%d`.$db.sql
fi
done
Este script dejara las copias de seguridad en la ruta que se ha indicado en la variable «OUTPUT».
Se debe ejecutar con un usuario que tenga permisos en MySQL, de lo contrario, habrá que modificar la llamada a «mysqldump» para incluir las credenciales de un usuario con acceso.
mysqldump --user=USUARIO --password=CONTRASEÑA -databases $db > $OUTPUT/`date +%Y%m%d`.$db.sql
También podemos descomentar la antepenúltima linea para comprimir las bases de datos una vez finalizada la exportación.
gzip $OUTPUT/`date +%Y%m%d`.$db.sql