Como parte de las tareas de administración de un servidor, es importante disponer de un procedimiento para hacer la salvaguardia (backup) periódica de las bases de datos existentes.
En nuestro caso, utilizamos un script en bash de código abierto llamado automysqlbackup que realiza el backup diario de cada una de las bases de datos en un fichero comprimido, con una rotación semanal.
El script se ejecuta diariamente gracias a una entrada en cron (en una sóla línea, aunque aquí lo ponemos en dos por legibilidad):
5 3 * * * /home/openalfa/cron-scripts/automysqlbackup.sh root <em>clave</em> localhost
"openalfa postfix" /home/openalfa/backup_db openalfa@openalfa.com
En el ejemplo vemos que cada día, a las 3:05, se ejecuta el script con los argumentos:
- root: Un usuario de mysql con permisos de acceso a todas las bases de datos de las que queremos hacer backup.
- clave: Es la contraseña del usuario de mysql
- localhost: Es el servidor en el que se encuentran las bases de datos
- “openalfa postfix”: Son los nombres de las bases de datos de las que queremos hacer backup. Las ponemos entre comillas ya que se las debemos pasar al script como un único argumento.
- /home/openalfa/backup_db: Es el directorio en que se crearán los backups
- openalfa@openalfa.com: Es la dirección de correo a la que se enviarán notificaciones
Cuando el script se ejecuta, crea bajo el directorio backup_db, si no existen, los subdirectorios ‘daily’, ‘weekly’ y ‘monthly’, y bajo cada uno de ellos crea un directorio para cada base de datos, con su nombre
El backup que se crea para cada base de datos está comprimido, y su nombre incluye la fecha y hora de creación. En nuestro ejemplo, el fichero de backup que se crea para la base de datos openalfa se denomina:
openalfa_2012-04-16_3h5m.Monday.sql.gz
y se encuenta en el directorio /home/openalfa/backup_db/daily/openalfa.
El script open source automysqlbackup.sh se puede obtener en sourceforge:
http://sourceforge.net/projects/automysqlbackup/