Synchro bidirectionnelle
De BlaxWiki
Révision datée du 9 août 2012 à 13:30 par 217.174.199.129 (discussion)
Ce script est installé sur 2 serveurs squid, il sert à copier la configuration de squid entre ces 2 serveurs. Ce script est en crontab sur les 2 serveurs, seul la variable DISTANT (qui est l'ip de l'autre serveur squid) change
La partie "display" et "send" est propre à la supervision utilisée ici, mais peut etre reprise pour d'autre chose.
#!/bin/bash
# Script de synchronisation bi directionnelle du fichier squid.conf avec archivage
DATE=`date +%Y-%m-%d-%H-%M`
VISION="/opt/agarik/Vision/bin/bb_send_raw"
DISPLAY="supervision.agarik.com"
TARGET="$(hostname | sed -e 's/\./,/g')"
SERVICE="sync"
LIFE_MESSAGE="65"
LOGFILE="/var/log/synchro.log"
DISTANT=192.168.26.11
exec > /var/log/synchro.log
exec 2>&1
Send()
{
"${VISION}" "${DISPLAY}" "status+${LIFE_MESSAGE} ${TARGET}.${SERVICE} ${1} $(date) ${SERVICE} ${2}"
}
color=green
if ! `/usr/bin/rsync -u -e /opt/applis/openssh/bin/ssh root@$DISTANT:/opt/applis/squid/etc/squid.conf /opt/applis/squid/etc/` || ! `/usr/bin/rsync -u -e /opt/applis/openssh/bin/ssh
/opt/applis/squid/etc/squid.conf root@$DISTANT:/opt/applis/squid/etc/`
then
color=red
fi
if [ "$color" == "green" ]
then
if [ `diff /opt/applis/squid/etc/squid.conf /opt/data/backup/squid.last | wc -l` -gt 0 ];
then
cp /opt/applis/squid/etc/squid.conf /opt/data/backup/squid.$DATE
ln -sf /opt/data/backup/squid.$DATE /opt/data/backup/squid.last
service squid reload
fi
fi
Send "${color}" "$(cat $LOGFILE)"