Hallo Leute, wie kann ich es denn anstellen, daß sich Linux automatisch einwählt, Mails holt, verschickt, und wieder auswählt? Mit einem Skript wie etwa wvdial fetchmail sendmail -q killall wvdial geht das nicht, weil wvdial das Skript solange aufhält, bis man die Verbindung händisch wieder unterbrochen hat, und somit die letzten drei Zeilen nicht zur Ausführung kommen. Wie macht man das besser? Andy --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Wed, 17 May 2000, Andy Feile wrote:
wvdial
a) dieses in den hintergrund (&) legen...
fetchmail sendmail -q
b) dies kann im IP-UP Script (/etc/ppp/) alles automatisiert werden, dann c) dann wenn sendmail fertig ist, ein status-file irgendwo hinterlegen
killall wvdial
d) die abfrage in eine schleife packen, die das unter (c) erzeugte status-file abfrägt, und wenn vorhanden, dann den og. "killall" machen Mit freundlichen Grüßen, Joerg Henner. -- LinuxHaus Stuttgart | Tel.: +49 (7 11) 2 85 19 05 Jörg Henner & Adrian Reyer, Datentechnik GbR | D2: +49 (1 72) 7 35 31 09 | Fax: +49 (7 11) 5 78 06 92 Linux, Netzwerke, Webhosting & Support | http://lihas.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
At 10:33 17.05.2000 +0200, Joerg Henner wrote:
b) dies kann im IP-UP Script (/etc/ppp/) alles automatisiert werden, dann c) dann wenn sendmail fertig ist, ein status-file irgendwo hinterlegen
killall wvdial
d) die abfrage in eine schleife packen, die das unter (c) erzeugte status-file abfrägt, und wenn vorhanden, dann den og. "killall" machen
Wo kann ich denn nachlesen, wie man das macht? Ich meine Skripten schreiben allgemein, und oben beschriebene Vorgehensweise im besonderen? Danke. Andy --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Mit, Mai 17, 2000 at 11:15:17 +0200, Andy Feile wrote: [Shell-Scripts]
Wo kann ich denn nachlesen, wie man das macht? Ich meine Skripten schreiben allgemein, und oben beschriebene Vorgehensweise im besonderen?
man bash Der beste Stoff zum Lernen ist aber /etc/rc.d (/sbin/init.d). Jan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Andy Feile wrote:
wie kann ich es denn anstellen, daß sich Linux automatisch einwählt, Mails holt, verschickt, und wieder auswählt?
wvdial
'wvdial &' statt 'wvdial', sollte klappen. Dann ein 'sleep 5' (oder wie lange der Einwählvorgang halt dauert) vor dem fetchmail.
fetchmail sendmail -q killall wvdial
Thorsten -- BUGS This manpage is confusing. (man 3 getopt) --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Wed, May 17, 2000 at 09:34:43AM +0200, Andy Feile wrote:
wie kann ich es denn anstellen, daß sich Linux automatisch einwählt, Mails holt, verschickt, und wieder auswählt?
Mit einem Skript wie etwa
Diesem.....(quick&dirty ;) #!/bin/sh # script zum Mail holen # # online gehen wvdial # mails fetchen fetchmail -v # mails senden sendmail -q -v # online killen killall wvdial
geht das nicht, weil wvdial das Skript solange aufhält, bis man die Verbindung händisch wieder unterbrochen hat, und somit die letzten drei Zeilen nicht zur Ausführung kommen.
Sollte eigentlich aber gehen, weil die Befehle nacheinander abgearbeitet werden. Wäre ein & hinter einem der Befehle, so würde es im Hintergrund gestartet werden (subshell) und bevor man sich versieht ist killall schon am Zug.
Wie macht man das besser?
Indem man sich mal ein Buch über shellprogrammierung zulegt, oder Online was besorgt. Sieh mal auf meiner Link-sammlung, da ist einiges über das Programmieren gelinkt. Ob shell, perl oder C (++). Zu finden unter: www.ndh.net/home/wohld/index.html.....dort Xlinks anwählen! C. Köhntopp ist eine "Reise" Wert ;) Gruß, Clemens -- sig_05 Du weisst nicht ob deine Hardware von Linux unterstuetzt wird? Schau nach ;-) Linux-Hardware-Datenbank: www.linuxbbs.org X-Page: http://www.ndh.net/home/wohld/index.html ------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo, soweit ich weiß beendet sich wvdial nicht automatisch. Du müsstest etwa folgendes probieren: 1. wvdial darf die Ausführung Deines Scriptes nicht blockieren also ein & hinter wvdial. 2. jetzt müsste eine Schleife (while) eingebaut werden, die einen ping auf den POP3-Server bei Deinem ISP sendet. Ich habe das früher mal so gelöst. ----schnipp----------------------------------------------------------------- # Warten auf Kontakt zu Internet declare -i n=1 echo -n "verbinde " while [ $n -lt 20 ] ; do n=$[n+1] if [ `ping -c 5 pop.myisp.de 2> /dev/null | grep -c "bytes from"` -gt 0 ] ; then break fi echo -n . done echo " " # Abbruch, wenn keine Verbindung zum Internet möglich if [ $n -eq 20 ]; then /sbin/isdnctrl hangup ippp0 echo Verbindungsaufbau nicht möglich! exit 1 fi -----schnapp----------------------------------------------------------------- Hier wird fünf ping hintereinander gesendet. grep überprüft die Ausgabe von ping. Wenn die Zeichenfolge "bytes from " auftaucht, wird die Schleife abgebrochen. Ich weiß leider nicht mehr, warum ich mich für die fünf pings und den String "bytes from " entschieden habe. Irgendwann hat ein ping nicht mehr funktioniert und ich konnte mit grep nicht mehr die Zeichenfolge "1 packets received" suchen. Wenn die Schleife abgebrochen wird, wird die if-Anweisung übersprungen. Ansonsten wird hier isdnctrl dazu aufgefordert die Verbindung zum ISP zu kappen (war manchmal nötig, wenn zwar die Verbindung stand, aber der Nameserver von meinem ISP oder der Mailserver lahm gelegen ist, was ärgerlicherweise öfter vorkam.) Du müsstest statt der isdnctrl hangup Anweisung Dein "killall wvdial" einbauen. mfg - Norbert On Fri, 19 May 2000, Clemens Wohld wrote:
On Wed, May 17, 2000 at 09:34:43AM +0200, Andy Feile wrote:
wie kann ich es denn anstellen, daß sich Linux automatisch einwählt, Mails holt, verschickt, und wieder auswählt?
Mit einem Skript wie etwa
Diesem.....(quick&dirty ;) #!/bin/sh # script zum Mail holen # # online gehen wvdial # mails fetchen fetchmail -v # mails senden sendmail -q -v # online killen killall wvdial
geht das nicht, weil wvdial das Skript solange aufhält, bis man die Verbindung händisch wieder unterbrochen hat, und somit die letzten drei Zeilen nicht zur Ausführung kommen.
Sollte eigentlich aber gehen, weil die Befehle nacheinander abgearbeitet werden. Wäre ein & hinter einem der Befehle, so würde es im Hintergrund gestartet werden (subshell) und bevor man sich versieht ist killall schon am Zug.
Wie macht man das besser?
Indem man sich mal ein Buch über shellprogrammierung zulegt, oder Online was besorgt.
Sieh mal auf meiner Link-sammlung, da ist einiges über das Programmieren gelinkt. Ob shell, perl oder C (++).
Zu finden unter: www.ndh.net/home/wohld/index.html.....dort Xlinks anwählen!
C. Köhntopp ist eine "Reise" Wert ;)
Gruß, Clemens -- sig_05 Du weisst nicht ob deine Hardware von Linux unterstuetzt wird? Schau nach ;-) Linux-Hardware-Datenbank: www.linuxbbs.org X-Page: http://www.ndh.net/home/wohld/index.html -------------------------------------------------
--------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
--------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Son, Mai 21, 2000 at 08:45:13 +0200, Norbert Raebiger wrote: [wvdial-Script]
declare -i n=1 echo -n "verbinde " while [ $n -lt 20 ] ; do n=$[n+1] if [ `ping -c 5 pop.myisp.de 2> /dev/null | grep -c "bytes from"` -gt 0 ] ; then break fi echo -n . done echo " "
# Abbruch, wenn keine Verbindung zum Internet möglich if [ $n -eq 20 ]; then
Damit brichst Du aber auch ab, wenn _beim_ 20. Durchlauf eine Verbindung zustande kam. Kleinkram, ich weiß ;-) Du kannst besser den Return-Code von ping auswerten: ping -c 5 -q pop.myisp.de if [ $? -eq 0 ]; then # Weiter mit fetchmail, sendmail usw. # Conect ist da else # Fehler, kein Connect fi Eine andere Möglichkeit: werte ifconfig ppp0 aus. Der ping wird seit den letzten DDoS-Angriffen nach meinen Erfahrungen von immer mehr Servern ignoriert. Jan BTW: Vollquoting ist unnötig, Eigenen Text bitte _unter_ das Quoting. --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Damit brichst Du aber auch ab, wenn _beim_ 20. Durchlauf eine Verbindung zustande kam. Kleinkram, ich weiß ;-) Du kannst besser den Return-Code von ping auswerten: Das ist richtig. Ich habe mich nicht viel mit der Shellprogrammierung beschäftigt (ich meine die Sache mit $?) und es hat für mich ausgereicht das Script so zu schreiben. Aber Deine Lösung ist recht gut. ping -c 5 -q pop.myisp.de if [ $? -eq 0 ]; then # Weiter mit fetchmail, sendmail usw. # Conect ist da else # Fehler, kein Connect fi
Eine andere Möglichkeit: werte ifconfig ppp0 aus. Der ping wird seit den letzten DDoS-Angriffen nach meinen Erfahrungen von immer mehr Servern ignoriert. Diese Möglichkeit der Abfrage funktioniert zwar um eine Verbindung zu
Hallo Jan, On Sun, 21 May 2000, Jan Trippler wrote: prüfen, aber wenn der Mailserver nicht funktioniert, wirst Du es damit nicht feststellen können. Deshalb habe ich mich für den Ping auf den Mailserver entschieden. Die Schleife hatte ich, weil manchmal es länger gedauert hat als 5 Pings, und die 20 hätten auch 21 sein können, das war dann egal. mfg - Norbert --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Son, Mai 21, 2000 at 05:35:09 +0200, Norbert Raebiger wrote: [ifconfig]
Diese Möglichkeit der Abfrage funktioniert zwar um eine Verbindung zu prüfen, aber wenn der Mailserver nicht funktioniert, wirst Du es damit nicht feststellen können. Deshalb habe ich mich für den Ping auf den Mailserver entschieden.
Das ist schon klar, ich benutze den ping ja auch. Es ist mir nur in den letzten Tagen aufgefallen, dass ping immer öfter _nicht_ mehr geht. Ob der Mailserver reagiert kann IMHO genauso gut auch fetchmail / sendmail feststellen.
Die Schleife hatte ich, weil manchmal es länger gedauert hat als 5 Pings, und die 20 hätten auch 21 sein können, das war dann egal.
Wenn 5 nicht reichen (könnte bei Modemverbindungen sein), dann kann man entweder die Anzahl (-c) oder die Zeit zwischen den pings (-i) erhöhen. Mein Kommentar zu der Schleife bis 20 bezog sich auf eine kleine Unsauberkeit: Du prüfst den Counter ab, ob er 20 erreicht hat und benutzt dies um festzustellen, dass die Schleife bis zum bitteren Ende ohne Erfolg durchlief. Der Counter hat die 20 aber auch dann erreicht, wenn er beim 20. Durchlauf mit dem ping Erfolg hatte. Sauberer wäre es also gewesen, das Inkrementieren des Zählers _nach_ dem ping / if zu machen. Aber wie gesagt: das ist Kleinkram. Jan P.S.: Noch eine Bitte - das CC: ist unnötig, ich lese die Liste mit. Danke. --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Fre, Mai 19, 2000 at 02:56:38 +0200, Clemens Wohld wrote:
On Wed, May 17, 2000 at 09:34:43AM +0200, Andy Feile wrote:
wie kann ich es denn anstellen, daß sich Linux automatisch einwählt, Mails holt, verschickt, und wieder auswählt?
Mit einem Skript wie etwa
Diesem.....(quick&dirty ;) #!/bin/sh # script zum Mail holen # # online gehen wvdial
Wenn wvdial nicht von sich aus in den Hintergrund wandert, dann bleibst Du hier hängen. Das war aus den man-Pages leider nicht zu ersehen (oder ich bin blind ;-)
# mails fetchen fetchmail -v # mails senden sendmail -q -v # online killen killall wvdial
geht das nicht, weil wvdial das Skript solange aufhält, bis man die Verbindung händisch wieder unterbrochen hat, und somit die letzten drei Zeilen nicht zur Ausführung kommen.
Genau das meinte ich. wvdial & ist da geeignet, dann wird wvdial in den Hintergrund gestellt und das Script macht mit dem nächsten Kommando weiter. Vor einem fetch- oder sonstigem mail sollte man sich aber vergewissern, ob man online ist. Die Mail von Norbert Raebiger zeigt dazu einen Weg.
Sollte eigentlich aber gehen, weil die Befehle nacheinander abgearbeitet werden. Wäre ein & hinter einem der Befehle, so würde es im Hintergrund gestartet werden (subshell) und bevor man sich versieht ist killall schon am Zug.
Naja, so schnell kommt killall nun auch nicht. Erst wenn _alle_ Befehle in den Hintergrund geschickt werden, dann ist er zu früh. Wenn nur wvdial & da steht zusätzlich noch das Online-Sein geprüft wird, dann wird killall erst gestartet, wenn sendmail durch ist. Im oben gezeigten Script dürfte wvdial nicht mehr existieren, wenn killall loslegt. Jan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (6)
-
c.wohld@ndh.net
-
Jan.Trippler@t-online.de
-
jhe@lihas.de
-
lists@feile.net
-
nrae@oisisi.de
-
thojens@gmx.de