Los que administramos servidores sabemos lo importante que es tener salvas, backups de todo… pues, en caso de algún problema o fallo, el backup será nuestro mejor amigo y nos ayudará a restablecer los servicios
Hace un tiempo atrás (varios meses … bastantes meses) acá no se hacían backups de configuraciones en los servidores, logs o algo así de forma automática. Y simplemente no podía ser así jaja, me planteé usar Bacula, pero… DIOS!! para lo que yo quería esto era demasiado, muy pero muy complicado a mi parecer, si lo que se quiere es simplemente hacer backups y guardar estos (o enviarlos a otro servidor, o por email) no hay necesidad de usar Bacula, con un simple script se solucionan todos los problemas, de ahí que yo decidiera hacer mi propio script y así quedaba más satisfecho
Y precisamente este script es el que comparto con ustedes, explico muy brevemente qué es lo que hace:
- Crea una carpeta donde se guardará todo, y esta carpeta es la que luego se comprimirá.
- Esta carpeta tendrá de nombre el año, mes y día presente, por ejemplo hoy esa carpeta se llamaría: 2012-04-26
- Copia /etc/ (y todo su contenido) a esa carpeta.
- Copia logs (/var/log/) hacia esa carpeta antes mencionada.
- Exporta las bases de datos de MySQL que tengamos.
- Comprime con un password (PASSWORD) esa carpeta, la comprime en .RAR.
- Genera un archivo (data.info) con todo el log de lo antes hecho (log de copia de archvios y compresión a .rar), además de poner en este archivo el tamaño (en MBs) del archivo .RAR, que les recuerdo, contiene todo lo que decidimos salvar.
- Borra la carpeta en la que pusimos los archivos y que luego comprimimos, pues si ya tenemos esta carpeta comprimida, no hay necesidad de además tenerla sin comprimir.
- Envía emails a los administradores o personas relacionadas con el servidor, informando que el backup se hizo de forma correcta, y se les enviará adjunto en ese email el archivo con el log de todo (data.info.rar)
Obviamente, este script no es ejecutarlo y ya jaja, deben abrirlo y cambiar en él el password de MySQL de ustedes, pues yo no me sé el password de root de sus bases de datos LOL!!!, así como cambiar los emails a los que quieren que se envíe la notificación, pues los emails que puse son solo de ejemplo.
Si desean comprimirlo en .tar.gz y no en .rar (como está configurado el script) ahí les dejé la línea comentada, es solo descomentarla y comentar la de .rar. Al igual, si desean copiar por SSH (usando SCP) el archivo comprimido hacia otro servidor o hosting, también les dejé la línea al final (está comentada), en ella deberán poner los datos de acceso a su servidor o hosting (usuario y dominio o URL del servidor), pero para que esto funcione además deberán configurar SSH sin contraseña, pues el script no podrá acceder al servidor si no tiene acceso permitido en este.
Ah, si desean que lo del envío de emails funcione, deben tener postfix instalado en el servidor, casi todos instalan postfix pero bueno, es válida la aclaración
Aunque… podrían modificar y usar un script en Python que dejé hace un tiempo, pero creo que sería trabajar un poco más ^-^U
Y bueno, solo queda dejarles el script:
VPS Backup Script
Recuerden que tienen que darle permisos de ejecución (chmod +x vps_backup-script.sh)
Para que se ejecute todos los días a las 10AM, ponen esto en una terminal:
echo "* 10 * * * root cd /root && ./vps_backup-script.sh" >> /etc/crontab && /etc/init.d/cron restart
Suponiendo que el script esté guardado como: /root/vps_backup-script.sh
Bueno suficiente, que no quiero hacer parecer esto demasiado complicado, cosa que no lo es jaja, en realidad esto es algo sumamente sencillo, solo que al verlo por primera vez puede asustar un poco
Cualquier duda, pregunta o sugerencia me la hacen saber, ya saben que me gusta ayudar
Saludos
PD: Aclaro que no soy ni me considero programador jaja, ni de cerca LOL!! sé que se puede optimizar mucho más el script, pero bueno… no soy programador