Backups automáticos en el servidor

Autor: Armonth | El miércoles 21 de marzo del 2007 @ 18:49.

La semana pasada estuve entretenido preparando unos scripts para hacer backups automáticos y periódicos de los datos... para darme cuenta que Dreamhost ya tiene documentación al respecto. Y que mi script era casi un clon de los suyos.

El proceso es sencillo y lo que viene a continuación es una ligera adaptación (principalmente cambios estéticos), solamente hace falta acceso vía SSH y, como de costumbre, hay ejemplos que se pueden simplificar o mejorar, primero la estructura:

mkdir -p backups/{archives,mysql}

Con esto ya nos ahorramos tres comandos :D. Luego en backups creamos un fichero, por ejemplo sigt.sh con los datos para hacer copias de los ficheros:

#!/bin/bash   
suffix=$(date +%Y-%m-%d.$H$P)   
cd /home/user/.snapshot/nightly.0/   
tar -zcf /home/user/backups/archives/sigt.$suffix.tar.gz sigt.net/

Y le damos los permisos pertinentes:

chmod 755 sigt.sh

Segundo cambio, el formato final de salida (el "suffix") lo he adaptado para que salga así: sigt.2007-03-21.9pm.tar.gz, además he añadido una z a tar -cf para que la salida sea comprimida con gzip (los usuarios de Windows pueden descomprimirlo con el WinRar mismo).

Luego, el script para bases de datos, mysql.sh lo he adaptado así:

#!/bin/bash   
cd /home/username/backups/   
suffix=$(date +%Y-%m-%d.$H$P)   
mysqldump --opt -uUser -ppass -h mysqlA.domain.com db_nameA > mysql/db_nameA.$suffix.sql   
mysqldump --opt -uUser -ppass -h mysqlB.domain.com db_nameB > mysql/db_nameB.$suffix.sql

Es decir, sin hacer un "tar" con todas las bases de datos dentro, podría aprovechar y en el mismo paso comprimirlo cambiando los mysqldump por:

mysqldump --opt -uusername -ppassword -h mysql.DOMAIN.com db_nameA | gzip -c > mysql/db_nameA-$suffix.sql.gz   
mysqldump --opt -uusername -ppassword -h mysql.DOMAIN.com db_nameB | gzip -c > mysql/db_nameB-$suffix.sql.gz

Pero de momento no me interesa. Para terminar los ejecutas y si todo funciona bien, los añades al crontab y listo. Una medida extra aparte de las de Dreamhost que hacen un backup de la base de datos cada X horas.

PD: No entiendo como habiendo shellscripts, haya gente que se haga complicados scripts en Perl para media docena de bases de datos. Al menos no cuando no añaden más características de las arriba mencionadas. Supongo que es puro frikismo :D

Comentarios