scripts/secours.sh
rozel 29e538e5d1 Le /usr/scripts/ sera synchro entre les serveurs, contrairement
/var/local/

darcs-hash:20050419201144-061a7-9f570487b39e7955c28306d2713cecdc77c93443.gz
2005-04-19 22:11:44 +02:00

72 lines
2.1 KiB
Bash
Executable file

#! /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
ETAT='/usr/scripts/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"
ti_remote echo " 0 = mode automatique, connexion normale"
echo " 1 = mode automatique, connexion secours"
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 ]] || (\
! /usr/sbin/fping -q 216.239.39.104 2>/dev/null && \
! /usr/sbin/fping -q 213.228.0.42 2>/dev/null && \
! /usr/sbin/fping -q 217.12.3.11 2>/dev/null && \
! /usr/sbin/fping -q 195.101.94.80 2>/dev/null ) ) ; 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
/etc/init.d/postfix reload
/etc/init.d/bind9 reload