Monitoring

Dienst neustarten, wenn er nicht mehr läuft:

Datei /root/scripts/monitorssh.sh mit folgendem Inhalt erstellen:

#!/bin/sh
# Stellt sicher, dass sshd immer wieder gestartet wird.
if [ $(ps -A | grep -c sshd) = 0 ];
then
     /etc/init.d/sshd start
fi

crontab –e starten und Eintrag machen:

*/5 * * * * /root/scripts/monitorssh.sh 


Selbstheilungsdatei mit 3 Startversuchen, danach Serverneustart:

selbstheilung.sh
#!/bin/bash
#Selbstheilungversuch eines Dienstes
#wenn der Dienst nicht mehr reagiert, dann wird der Dienst 3mal mit zunehmender Verzögerung von 1 Minute neu gestartet.
#wenn das nicht klappt, dann wird der Server neu gestartet. 
#wiederkehrender Aufruf per cron, nagios oder prtg
#manchmal haben der Prozess und der Dienst unterschiedliche Namen
dae=cupsd
prc=cups
#Verzögerung
verz=30
#######################
function watchprc()
{
 #echo "in watchprc"
 ps -e | grep $dae >/dev/null
 f=$?
if [  $f -eq 0 ]; then exit 0
else
 return $f
fi
}
#######################
function startprc()
{
  #echo "in startprc"
  /etc/init.d/$prc restart >/dev/null;sleep $1
  watchprc
}
#######################
watchprc
startprc $verz
#versuche den Dienst 3mal mit wachsender Verzögerung
#zu starten, dann starte den Server neu
for i in `seq 1 3`
 do
  startprc $verz
  #jeden Versuch um 60s mehr verzögern
  let "verz +=60"
 done
  if [ ! $f -eq 0 ]; then
   echo "dienst konnte nicht gestartet werden"
  #reboot
  fi
return $f
 
 
/www/htdocs/w00d1d2b/wiki/JS_data/pages/linux/monitoring.txt · Zuletzt geändert: 2018/01/30 13:34 von richard