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