Backup de los cambios de configuración
Si no se dispone de una herramienta de control de cambios centralizada para los ficheros de configuración se puede usar el siguiente script para que realice backups automáticos de las configuraciones de los daemons.
Mediante el nombre del fichero ejecutado identifica el daemon al que va a realizar backups:
#!/bin/bash
TYPE=$(echo $0 | sed 's/\./ /g' | awk '{ print $NF }')
case "$TYPE" in
"mysql")
BACKFILES=/etc/my.cnf
;;
"apache")
BACKFILES=/usr/local/apache22/conf
;;
"sphinx")
BACKFILES=/usr/local/etc/sphinx.conf
;;
"nagios")
BACKFILES=/usr/local/etc/nagios
EXTRABACKFILES=/usr/local/etc/nagios.cfg
;;
"bacula")
BACKFILES=/etc/bacula
;;
"syslog-ng")
BACKFILES=/etc/syslog-ng
;;
"qmail")
BACKFILES=/var/qmail/control
;;
"cron")
BACKFILES=/var/spool/cron
;;
"named")
BACKFILES=/var/named
;;
*)
echo ERROR: $TYPE no soportado
exit 1
;;
esac
HOMEBACKUP=/var/backup.conf/$TYPE
mkdir -p $HOMEBACKUP
NEXTFILE=$HOMEBACKUP/config.${TYPE}.$(date +%Y%m%d%H).tar.bz2
LAST=$(ls -rt $HOMEBACKUP| tail -n1)
(cd $(dirname $BACKFILES); tar cjf $NEXTFILE $(basename $BACKFILES) $EXTRABACKFILES ) 2>&1 | grep -v "tar: Removing leading"
if [ -z "$LAST" ];
then
echo "No hay fichero previo"
exit 0;
fi
diff $NEXTFILE $HOMEBACKUP/$LAST >/dev/null
if [ $? -eq 0 ];
then
rm $HOMEBACKUP/$LAST
fi
Dicho script permite configurar los paths de los daemons mediante las variables BACKFILES y EXTRABACKFILES.
Mediante simples enlaces podemos definir los backups según la máquina. Suponiendo que hemos creado el script con el nombre “/usr/local/bin/backup.config.generico“, definimos los enlaces con ln:
ln -s /usr/local/bin/backup.config.generico /usr/local/bin/backup.config.syslog-ng ln -s /usr/local/bin/backup.config.generico /usr/local/bin/backup.config.qmail ln -s /usr/local/bin/backup.config.generico /usr/local/bin/backup.config.bacula
A continuación deberemos ejecutarlo periódicamente mediante el cron como máximo una vez cada hora:
#backups de configuracions 15 * * * * /usr/local/bin/backup.config.bacula 30 * * * * /usr/local/bin/backup.config.syslog-ng 45 * * * * /usr/local/bin/backup.config.qmail
Dicho script compara el backup con el anterior, eliminando el más antiguo si son iguales. De esta manera evitaremos saturar el disco con configuraciones repetidas.
Relacionados
Imprimir
Deja un comentario: