#! /bin/sh ## Fred 07 avril 2004 # Teste l'état des serveurs distants grâce à autostatus (appellé sans arguments) # Permet de passer en connexion par ADSL ou ENS suivant les options fournies STATUS='/var/www/cransonly/autostatus/local.html' # Page web de autostatus ETAT='/CRANS/code/etat.py' # Stoquage de l'état de la connexion ssh () { # Connexion ssh # Utilise la clef $1 pour se connecter à $2 /usr/bin/ssh -o StrictHostKeyChecking=no -i /CRANS/keys/$1 zamok@$2 $1 } source $ETAT if [ $1 ] && ([ $1 -ge -1 ] && [ $1 -le 2 ]) ; then # Attribution du futur état echo "secours=$1" > $ETAT [ $1 -le 0 ] && force=-1 [ $1 -ge 1 ] && force=1 ( [ $1 -lt 0 ] || [ $1 -gt 1 ] ) && echo "Mode forcé" elif [ $1 ] ; then echo "Argument incorrect" echo "-1 = force la connexion en mode normal" echo " 0 = mode automaqtique, connexion normale" echo " 1 = mode automaqtique, connexion secrours" echo " 2 = force la connexion en mode secours" else : force=0 if [ $secours -eq -1 ] ; then echo "Etat forcé en normal" 2>&1 exit 0 elif [ $secours -eq 2 ] ; then echo "Etat forcé en secours" 2>&1 exit 0 fi fi # source /root/snmp-community-names if [ $force -ne -1 ] && ( [ $force -eq 1 ] || (\ grep -q 'Free.*dep.png' $STATUS && \ grep -q 'Google.*dep.png' $STATUS && \ grep -q 'Yahoo.*dep.png' $STATUS && \ grep -q 'Voila.*dep.png' $STATUS ) ) ; then if [ $secours -ge 1 ] ; then echo "Reste en mode secours" exit 0 else : echo "Passage en secours" 1>&2 [ $force -eq 1 ] || echo "secours=1" > $ETAT ssh sila-mode-secours sila python /usr/scripts/gestion/secours.py 1 fi else if [ $secours -le 0 ] ; then echo "Reste en mode normal" exit 0 else : echo "Passage en mode normal" 1>&2 [ $force -eq -1 ] || echo "secours=0" > $ETAT ssh sila-mode-normal sila python /usr/scripts/gestion/secours.py 0 fi fi # Génération des fichiers et reload localement #/CRANS/code/mkGenated.py /etc/init.d/postfix reload /etc/init.d/bind9 reload