Les erreurs de lanceurs sont maintenant envoyées au gestionnaire d'alerte plutot qu'à l'écran (ras le bol des mails en boucle)

Le passage des processus n'est possible qu'en Bash4 et +. Pour les Bash3, on retourne à la gestion avec les liens symboliques


git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@428 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2012-05-14 09:42:27 +00:00
parent df6251b8a2
commit 2c07be09ff

41
check
View File

@@ -62,11 +62,17 @@ function chercheLanceur()
# On peut définir un tableau supplémentaire dans le fichier de configuration
# Si le lanceur n'est pas défini dans le tableau, on renvoie le nom du
# processus
processus=$1
if [ -z ${lanceur["$processus"]} ]; then
echo "$processus"
if [ $BASH_VERSINFO -ge 4 ]; then
processus=$1
if [ -z ${lanceur["$processus"]} ]; then
echo "$processus"
else
echo ${lanceur["$processus"]}
fi
else
echo ${lanceur["$processus"]}
# Le Bash 3 ne supporte pas les tableaux associatifs. On retourne aux liens
# symboliques
echo $1
fi
}
@@ -74,7 +80,7 @@ function testps()
{
lanceur=`chercheLanceur "$1"`
if [ ! -e "/etc/init.d/$lanceur" ]; then
echo "ERREUR : /etc/init.d/$lanceur introuvable (testps)"
checklog "ERREUR : /etc/init.d/$lanceur introuvable (testps)"
else
if [ `ps -edf | grep -v grep | grep "$*" | wc -l` -eq 0 ]; then
checklog "Relance de '$*' par /etc/init.d/$lanceur"
@@ -89,7 +95,7 @@ function testpsStrict()
# On rend le test plus strict en mettant un slash devant le nom du demon
lanceur=`chercheLanceur "$1"`
if [ ! -e "/etc/init.d/$lanceur" ]; then
echo "ERREUR : /etc/init.d/$lanceur introuvable (testpsStrict) "
checklog "ERREUR : /etc/init.d/$lanceur introuvable (testpsStrict) "
else
if [ `ps -edf | grep -v grep | grep "/$*" | wc -l` -eq 0 ]; then
checklog "Relance de '$*' par /etc/init.d/$lanceur"
@@ -103,7 +109,7 @@ function testiptables()
{
# Verifie que iptables est bien ferme
if [ ! -e "/etc/init.d/ipt4" ] && [ ! -e "/etc/init.d/ipt" ]; then
echo "ERREUR : /etc/init.d/ipt4 ou /etc/init.d/ipt introuvable (testiptables) "
checklog "ERREUR : /etc/init.d/ipt4 ou /etc/init.d/ipt introuvable (testiptables) "
else
if [ `/sbin/iptables -L -n | wc -l` -lt 10 ]; then
checklog "Relance de IPTables IPv4"
@@ -120,7 +126,7 @@ function testip6tables()
{
# Verifie que ip6tables est bien ferme
if [ ! -e "/etc/init.d/ipt6" ]; then
echo "ERREUR : /etc/init.d/ipt6 introuvable (testip6tables) "
checklog "ERREUR : /etc/init.d/ipt6 introuvable (testip6tables) "
else
if [ `/sbin/ip6tables -L -n | wc -l` -lt 10 ]; then
checklog "Relance de IPTables IPv6"
@@ -175,7 +181,7 @@ function testPort()
# Attend 3 parametres : l'adresse IP a tester, le port a tester et le
# fichier /etc/init.d/XX a relancer
if [ ! -e "/etc/init.d/$3" ]; then
echo "ERREUR : /etc/init.d/$3 introuvable (testPort)"
checklog "ERREUR : /etc/init.d/$3 introuvable (testPort)"
else
RESULTAT=`echo "QUIT" | nc -w1 $1 $2 2>&1`
if [ "$?" != "0" ]; then
@@ -196,7 +202,7 @@ function testDDClient()
# on attend 15 s et on refait le test. Si le test est toujours negatif on
# relance.
if [ ! -e "/etc/init.d/ddclient" ]; then
echo "ERREUR : /etc/init.d/ddclient introuvable (testDDClient)"
checklog "ERREUR : /etc/init.d/ddclient introuvable (testDDClient)"
else
LIGNE1=`ps -edf | grep -v grep | egrep "ddclient "`
LIGNE2=`echo $LIGNE1 | egrep 'ddclient - sleeping for|ddclient - (connecting to|reading from) checkip.dyndns.com port 80'`
@@ -268,11 +274,16 @@ fi
# On peut définir des lanceurs dans la fonction chercheLanceur, ou dans le
# fichier de configuration /etc/check.conf. Si on redéfinit un lanceur dans
# /etc/check.conf, c'est lui qui est prioritaire par rapport à ceux codés en dur
declare -A lanceur
lanceur[ntpd]="ntp"
lanceur[bind]="bind9"
lanceur[rsyslogd]="rsyslog"
lanceur[sshd]="ssh"
if [ $BASH_VERSINFO -ge 4 ]; then
declare -A lanceur
lanceur[bind]="bind9"
lanceur[dhcpd]="isc-dhcp-server"
lanceur[mysqld]="mysql"
lanceur[ntpd]="ntp"
lanceur[rsyslogd]="rsyslog"
lanceur[spamd]="spamassassin"
lanceur[sshd]="ssh"
fi
. /etc/check.conf