Al Bogner <[EMAIL PROTECTED]> writes:

> Am Mittwoch, 20. April 2005 09:38 schrieb Bruno Hertz:
>> Al Bogner <[EMAIL PROTECTED]> 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.

Antwort per Email an