Wie legen Sie eine Verzögerung zwischen pipelining der Befehle in einem bash-Skript. E. g. cat Datei | telnet mail.domain.com 25

Habe ich ein bash-script, das eine Datei erstellt und ich möchte senden Sie eine E-Mail am Ende über telnet. Aber manchmal ausgeführt wird und manchmal ist es nicht.

Den Befehl am Ende ist

cat tempfile | telnet mail.domain.com 25

Auf dem empfangenden server sehe ich in der E-mail.melden Sie den folgenden Fehler, wenn es scheitert:

improper command pipelining after EHLO from domain.com ....etc

Dem gleichen Skript funktioniert perfekt, wenn anstelle von mail.domain.com starte ich die telnet-Sitzung in localhost also ich bin mir ziemlich sicher, dass das Dateiformat ist OK und der rest der bash-Skript funktioniert auch.

Habe ich auch versucht, mit Hilfe von standard-Umleitung statt eine Rohr -

telnet mail.domain.com 25 < tempfile

Aber wiederum das Ergebnis ist manchmal okay, manchmal nicht. Ich denke, es muss eine kleine Verzögerung zwischen die Umleitung und die telnet session-Befehl, so dass der input wird gegeben, nachdem die telnet-Sitzung hergestellt wurde, und eine Antwort wurde gegeben, aber ich weiß nicht, wie das zu tun. Ich habe versucht, mit sleep-Befehl in zwischen pipes und Umleitungen und es wird nicht funktionieren, wahrscheinlich, weil dann die Eingabe umgeleitet wird, um den sleep-Befehl.

e.g. cat tempfile | telnet mail.domain.com 25 & sleep 1

Die Einschränkung ist, dass ich in einem bash-Skript. Ist es möglich? Auch ich weiß nicht, ob es von Bedeutung ist, aber das Skript verwendet, um die Arbeit zwischen den Servern in debian squeeze mit postfix/courier-setup und nun der Empfängerseite ist eingerichtet mit debian wheezy und postfix/dovecot.

Vielen Dank im Voraus für die Hilfe

InformationsquelleAutor gabtzi | 2013-10-11
Schreibe einen Kommentar