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.

