[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Mail-Attachment mit Bash-Script versenden



Al Bogner <debian@ml05a.pinguin.uni.cc> writes:

> Am Mittwoch, 20. April 2005 09:38 schrieb Bruno Hertz:
>> Al Bogner <debian@ml05a.pinguin.uni.cc> writes:
>> > Am Dienstag, 19. April 2005 00:08 schrieb Michelle Konzack:
>> >> Am 2005-04-18 17:26:26, schrieb Al Bogner:
>> >> > PINGERGEBNIS=`ping -c 1 "$MAILSV" 2>&1`
>> >> > PINGOK=`echo "$PINGERGEBNIS" | grep " 0% packet loss"`
>> >>
>> >> Bist Du sicher, das dies funktioniert ?
>> >
>> > Klar, dass das nicht 100% funktioniert, hast du aber eine
>> > bessere Lösung abzufragen, ob die Internetverbindung
>> > grundsätzlich funktioniert und ob der Mailserver erreichbar
>> > ist.
>>
>> Ist das nicht ein typischer Anwendungsfall für netcat? Also z.B.
>>  echo QUIT | nc6 --half-close --timeout=5 "$MAILSV" 25
>> und dann $? abprüfen.
>
> Zumindest müsste man mehr als Port 25 prüfen. Einer der Server, die 
> ich abfrage, verwendet Port 587. Den Schluß mit $? verstehe ich 
> nicht.

$? ist der exit Status von netcat (nc6). Dieser ist 0 außer in
folgenden Fällen:

* kein connect möglich (mit ICMP port unreachable)
* kein connect möglich, aber gefiltert (timeout)
* connect möglich, aber QUIT kann nicht gesendet werden (half-close)
* connect möglich, QUIT kann gesendet werden, aber Server schickt
  kein EOF (d.h. er hängt).

Voila. Anhand des Status läßt somit nicht nur sicherstellen, daß auf
dem Port überhaupt ein Service läuft, sondern auch ob er halbwegs
vernünftig läuft.

Das war doch die Frage, oder? Zu erkennen, ob der Mailserver
läuft. Wenn $? also 0 ist, ist er nicht nur erreichbar, er reagiert
sogar auf ein QUIT vernünftig.

Gruss, Bruno.

PS: der Port ist ja wohl hoffentlich nicht das Problem. Server und
Ports können immerhin in einer Schleife parametrisiert werden, wenn
denn mehrere abzuprüfen sind.



Reply to: