Dado un esquema de sevidor primario y secundario que deben tener la misma información por si el primero fallase creamos el siguiente script de sincronización remota usando rsync (los servidores tienen que ser confiables vía ssh):
#!/usr/local/bin/bash IP=192.168.0.1 LOGDIR=/var/log/backup LOGNAME=sincro.`date '+%d.%m.%Y_%H:%M'`.log CMD_SCP=/usr/bin/scp CMD_RSYNC=/usr/local/bin/rsync echo -e "### APACHE ###" echo -e "#################################" echo -e "APACHE:" >> $LOGDIR/$LOGNAME echo -e "Actualizando httpd.conf" $CMD_SCP root@$IP:/usr/local/etc/apache/httpd.conf /usr/local/etc/apache/ echo -e " * httpd.conf" >> $LOGDIR/$LOGNAME echo -e "Actualizando php.ini" $CMD_SCP root@$IP:/usr/local/etc/php.ini /usr/local/etc/ echo -e " * php.ini" >> $LOGDIR/$LOGNAME echo -e "Actualizando vhosts.inc" $CMD_SCP -r root@$IP:/usr/local/etc/apache/*.inc /usr/local/etc/apache/ echo -e " * vhosts.inc" >> $LOGDIR/$LOGNAME echo -e "Actualizando access.conf" $CMD_SCP root@$IP:/usr/local/etc/apache/access.conf /usr/local/etc/apache/ echo -e " * access.conf" >> $LOGDIR/$LOGNAME echo -e "Actualizando users" $CMD_SCP root@$IP:/usr/local/etc/apache/users /usr/local/etc/apache/ echo -e " * users" >> $LOGDIR/$LOGNAME echo -e "Actualizando htdocs/" $CMD_RSYNC -e ssh --progress --delete -lprtvvzog root@$IP:/usr/local/apache/htdocs/ /usr/local/apache/htdocs/ echo -e " * htdocs" >> $LOGDIR/$LOGNAME echo -e "Actualizando cacti/" $CMD_RSYNC -e ssh --progress --delete -lprtvvzog root@$IP:/usr/local/share/cacti/ /usr/local/share/cacti/ echo -e " * cacti" >> $LOGDIR/$LOGNAME echo -e "Reiniciando Apache" /usr/local/etc/rc.d/apache.sh restart echo -e " * reinicio de apache" >> $LOGDIR/$LOGNAME echo -e "### MySQL ###" echo -e "#################################" echo -e "MySQL:" >> $LOGDIR/$LOGNAME echo -e "Actualizando /var/db/mysql" $CMD_RSYNC -e ssh --progress --delete -lprtvvzog --exclude=ib_logfile* --exclude=*.err --exclude=*.pid root@$IP:/var/db/mysql/ /var/db/mysql/ echo -e " * /var/db/mysql" >> $LOGDIR/$LOGNAME echo -e "Reiniciando MySQL" /usr/local/etc/rc.d/mysql-server restart echo -e " * reinicio de mysql" >> $LOGDIR/$LOGNAME echo -e "### Correo ###" echo -e "#################################" echo -e "Actualizando /var/spool/postfix/virtual/" $CMD_RSYNC -e ssh --progress --delete -lprtvvzog root@$IP:/var/spool/postfix/virtual/ /var/spool/postfix/virtual/ echo -e "Cambiando permisos a /var/spool/postfix/virtual/" chown -R postfix:maildrop /var/spool/postfix/virtual/ echo -e "### BIND ###" echo -e "#################################" echo -e "BIND:" >> $LOGDIR/$LOGNAME echo -e "Actualizando /etc/namedb/named.conf.local" $CMD_RSYNC -e ssh --progress --delete -lprtvvzog root@$IP:/etc/namedb/named.conf.local /etc/namedb/ echo -e " * /etc/namedb/named.conf.local" >> $LOGDIR/$LOGNAME echo -e "Actualizando /etc/namedb/pri/" $CMD_RSYNC -e ssh --progress --delete -lprtvvzog root@$IP:/etc/namedb/pri/ /etc/namedb/pri/ echo -e " * /etc/namedb/pri" >> $LOGDIR/$LOGNAME echo -e "Reiniciando named" /etc/rc.d/named restart echo -e " * reinicio de bind" >> $LOGDIR/$LOGNAME #echo -e "### LOGS ###" #echo -e "#################################" #echo -e "Actualizando /var/log/apache/" #$CMD_RSYNC -e ssh --progress --delete -lprtvvzog root@$IP:/var/log/apache/ /var/log/apache/ echo -e "### WEBALIZER ###" echo -e "#################################" echo -e "WEBALIZER" >> $LOGDIR/$LOGNAME echo -e "Actualizando /usr/local/etc/webalizer/" $CMD_RSYNC -e ssh --progress --delete -lprtvvzog root@$IP:/usr/local/etc/webalizer/ /usr/local/etc/webalizer/ echo -e " * /usr/local/etc/webalizer" >> $LOGDIR/$LOGNAME cat $LOGDIR/$LOGNAME | mail -s "$LOGNAME" r0sk10@gmail.com