Backup de un servidor MySQL completo
28 enero 2010En muchas ocasiones, por razones diversas, es necesario hacer una copia de todas las bases de datos de un servidor MySQL una por una.
Esta tarea puede ser liosa y aburrida sin el uso de software adicional solo con los comandos de consola, y más si necesitamos crear copias de seguridad casi a diario.
En estos casos se puede utilizar un simple script bash para realizar la copia de seguridad desde el propio servidor. El script exporta los datos y los comprime con gzip, claro que esta última función pueda funcionar necesitamos tener gzip instalado en el servidor.
El script debe contener lo siguiente:
#!/bin/bash
PORT="puerto"
USER="root"
PASSWORD="tucontraseña"
mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
TABLES=`$mysql -P $PORT -u $USER --password=$PASSWORD --execute="SHOW DATABASES;" |awk '{print($1)}' |grep -v "Database" |grep -v "information_schema"`
for table in $TABLES; do
file=$table.backup_`date +%Y%m%d`.sql
$mysqldump -P $PORT -u $USER --password=$PASSWORD $table > $file
gzip $file
done
Para que funcione debemos substituir “puerto” por nuestro puerto del servidor MySQL, si queremos usar el usuario “root” para la operación dejamos el usuario como esta, en caso contrario debemos cambiarlo por el elegido, y donde pone “tucontraseña”, ponemos la nuestra contraseña.
Cuando acabemos ejecutamos el script y ya deberia funcionar, en caso de que no funcione seria una buena opcion revisar las rutas de instalacion del MySQL y compararlas con las puestas en el script.
Si queremos hacer un backup del servidor MySQL, pero nos da igual si todas las bases de datos estan juntas tenemos la opcion de realizar una operacion mas simple en la consola de comando, ponemos:
mysqldump –all-databases











