From 2c07be09ff0b9d3158841345be7fc410add64096 Mon Sep 17 00:00:00 2001 From: Dominique Fournier Date: Mon, 14 May 2012 09:42:27 +0000 Subject: [PATCH] =?UTF-8?q?Les=20erreurs=20de=20lanceurs=20sont=20maintena?= =?UTF-8?q?nt=20envoy=C3=A9es=20au=20gestionnaire=20d'alerte=20plutot=20qu?= =?UTF-8?q?'=C3=A0=20l'=C3=A9cran=20(ras=20le=20bol=20des=20mails=20en=20b?= =?UTF-8?q?oucle)=20Le=20passage=20des=20processus=20n'est=20possible=20qu?= =?UTF-8?q?'en=20Bash4=20et=20+.=20Pour=20les=20Bash3,=20on=20retourne=20?= =?UTF-8?q?=C3=A0=20la=20gestion=20avec=20les=20liens=20symboliques?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@428 bf3deb0d-5f1a-0410-827f-c0cc1f45334c --- check | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/check b/check index 7b14c2a..fdb30bb 100755 --- a/check +++ b/check @@ -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