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:
25
check
25
check
@@ -62,19 +62,25 @@ 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
|
||||
if [ $BASH_VERSINFO -ge 4 ]; then
|
||||
processus=$1
|
||||
if [ -z ${lanceur["$processus"]} ]; then
|
||||
echo "$processus"
|
||||
else
|
||||
echo ${lanceur["$processus"]}
|
||||
fi
|
||||
else
|
||||
# Le Bash 3 ne supporte pas les tableaux associatifs. On retourne aux liens
|
||||
# symboliques
|
||||
echo $1
|
||||
fi
|
||||
}
|
||||
|
||||
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
|
||||
if [ $BASH_VERSINFO -ge 4 ]; then
|
||||
declare -A lanceur
|
||||
lanceur[ntpd]="ntp"
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user