Différences entre les versions de « Synchro bidirectionnelle »

De BlaxWiki
Aller à la navigationAller à la recherche
(Page créée avec « 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 variab... »)
 
Ligne 26 : Ligne 26 :
color=green
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/`
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
then
         color=red
         color=red

Version du 9 août 2012 à 13:30

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)"