Hacer un backup de un sitio omd, es muy fácil, sólo hay que ejecutar:
omd backup "ruta/archivo"
Ésto crea un fichero llamado "archivo" en la ruta "ruta" en el que va a contener todo el sitio para poder restaurarlo en cualquier servidor con OMD o CRE, vamos más fácil imposible
Lo malo es que antes de hacer el backup hay que parar el sitio (con 'omd stop'), por lo que tendremos que tener el sitio parado un tiempo, lo que tarde en hacer el backup, que en casos de instalaciones grandes, puede ser bastante tiempo, a mi con unos 3000 servicios monitorizados, me tarda unos 5-7 minutos.
Hacer un backup del sitio omd con una tarea programada
Yo lo que he hecho es crear un script que automatice la parada del sitio, la creación del fichero de backup y que vuelva a arrancar el sitio, así como que suba el fichero por ftp a un servidor de backup para su archivado, éste script será ejecutado por una tarea programada de manera que haga el backup por la noche, que así no interrumpo demasiado.
Como en omd está bastante bien pensado todo, tenemos un directorio donde podamos crear un script que se pueda ejecutar por el usuario del sitio, ésto es, en /omd/sites/nombre_de_mi_sitio/local/bin/ todo lo que pongamos ahí, se podrá ejecutar sin problemas.
El script, que tiene el nombre tan original de 'backup_omd.sh" tiene el siguiente código:
#Script para hacer backup de un sitio omd, hace uno por día de la semana y lo sube a rbackup01 #Sólo guarda los de una semana, borrando los subsiguientes echo "" echo "---------------------------------------------------------------------------" echo "Backup del dia " date dia_text=$(date +%A) # dia de la semana en texto echo "" echo "Paro el sitio" $OMD_SITE omd stop echo "" echo "Creamos el backup" omd backup $OMD_ROOT"/backup/"$OMD_SITE"_backup" echo "" echo "Arranco el sitio" $OMD_SITE omd start echo "" echo "Subo el fichero "$OMD_SITE"_backup al servidor de backup" echo "con el nombre "$OMD_SITE"_backup_"$dia_text ftp -vni backupserver <<EOF user mi_usuario mi_password prompt off bin cd nagios cd $OMD_SITE lcd $OMD_ROOT"/backup/ put $OMD_SITE"_backup" $OMD_SITE"_backup_"$dia_text close bye
Una vez hecho el script, lo podemos ejecutar para ver si funciona, y una vez funcionando, debemos hacer una tarea programada para que ejecute el script a la hora que queramos.
OMD está tan bien pensado que cada sitio tiene sus propias tareas programadas, que están en "/omd/sites/mi_sitio/etc/cron.d/", así que creamos otro fichero para cron que en mi caso le he puesto el original nombre de "backup", el cuál queda de la siguiente manera:
# Once a day, at 02:00, hace backup de todo el sitio 00 02 * * * backup_omd.sh >> $OMD_ROOT/var/log/backup/backup_$OMD_SITE.log
Como vemos, escribe la salida estándar en el fichero /omd/sites/misitio/var/log/backup/backup_misitio.log, por lo que tendremos que crear el directorio backup dentro de /omd/sites/misitio/var/log antes de que se ejecute la tarea programada.
En el caso del ejemplo, se ejecuta la tarea todos los días a las 2 de la madrugada, insisto, cuidado que hay parada del sitio, y si es grande es un rato, así que avisad a los operadores que se va a parar el sitio todos los días a esa hora. Quería poner un mensaje que informase de que se está haciendo el backup, pero aún no he tenido tiempo de mirarlo, si tengo tiempo y lo hago, ya lo pondré en éste artículo.
Una vez hecho ésto ya está todo preparado, lo único que tenemos que hacer es reiniciar el sitio:
omd restart
con el usuario "misitio" y ya se programará la tarea para ejecutarse
Por último, saber que con el usuario root de un servidor omd, podemos hacer una restauración del sitio con el mismo nombre "misitio" o con cualquier otro de la forma:
omd restore nombredelsitio archivo_de_backup
De ésta manera se creará un sitio con el nombre "nombredelsitio" exáctamente igual y en el mismo estado que cuando hicimos el backup, no me digáis que no es cómodo….