bash script welches prüft ob postfix läuft???

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
funkyflo
Beiträge: 28
Registriert: 13.05.2004 19:52:39

bash script welches prüft ob postfix läuft???

Beitrag von funkyflo » 10.05.2006 22:06:01

Hallo Leute!

Folgendes: Ich habe Postfix mit Spamasassin & Procmail
auf einem vSERVER mit virtuozzo laufen.
Mein Provider schränkt über virtuozzo ziemlich die systemresourcen
(cpu nutzung und memory) meines vservers ein.
deshalb hängt sich mein postfix so alle zwölf bis 24 stunden einfach auf. blöd.
im syslog steht dann sowas wie:

Code: Alles auswählen

May  8 11:55:11 v894 postfix/sendmail[7387]: warning: fork: Cannot allocate memory
mein provider sagt, mehr systemleistung ist bei meinem produkt nicht inbegriffen, ich solle
weniger dienste laufen lassen. hm. ich hab eh nur postfix, spamassasin, procmail, apache2, vsftpd, bind8, und optional webmin.

auf jeden fall lässt sich dann der abgeschmierte postfix per ssh ganz normal wieder starten.
deshalb bin ich auf die idee gekommen per cron job alle 30 minuten ein bash script zu starten welches prüft ob postfix wohl läuft, und ihn gegebenen falls wieder startet.

nur hab ich nicht so richtig eine idee wie ich dieses bash script schreiben soll.
hat wer von euch eine idee oder schon was fertiges wie man in einem script das laufen des postfix deamons prüfen kann?
irgendwas wie

Code: Alles auswählen

lsof -i -P | grep 25
oder
telnet localhost 25
hätte ich mir gedacht aber das drumherum weiss ich nicht so genau

Vielen Dank im Vorraus für eure Hilfe!

FLorian

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 10.05.2006 22:19:17

Verschoben von Web- Mailserver

Gruß Savar

PS:

Code: Alles auswählen

if ! ps ax | grep -v grep | grep postfix >/dev/null
then
   /etc/init.d/postfix start
fi
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

funkyflo
Beiträge: 28
Registriert: 13.05.2004 19:52:39

danke

Beitrag von funkyflo » 10.05.2006 22:46:01

hallo danke für den tipp!
ich habs noch ein wenig verfeinert:

Code: Alles auswählen

#!/bin/bash
DAT=$(date)
if ! ps ax | grep -v grep | grep '/usr/lib/postfix/master' >/dev/null
then
echo $DAT." postfix not running, i start it now" >>/var/log/postfixcheck.log
   /etc/init.d/postfix start
else
echo $DAT."postfix seams to be running :)" >>/var/log/postfixcheck.log

fi
.. und dieses bash script alle 30 minuten von cron aufrufen lassen...

lg
Florian

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 10.05.2006 23:29:16

Bei dem ps kann man sich die "greps" schenken, wenn man es so macht:

Code: Alles auswählen

ps -C postfix > /dev/null
Oder wenn man den Pfad auswerten will:

Code: Alles auswählen

ps -C postfix -o %a | grep 'postfix/master' > /dev/null

Antworten