/usr/bin/links Prozesse bleiben erhalten
Hallo in die Liste, ich nutze per Cronjob "links", um eine Status-SMS an ein SMS-Portal zu senden. Dies funktioniert auch problemlos. Allerdings bleiben diese Prozesse offen, so dass sich nach mehreren Tagen dementsprechend "links"-Prozesse angehäuft haben. Im man von "links" ist leider nicht zu finden, was einen Timeout hervorruft, da ich von der SMS im Browser einfach ein "OK" erhalte und diese Seite dann offen bleibt. Weiß jemand Rat? Danke vorab. Guido -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
wunschradio.fm schrieb:
Hallo in die Liste,
ich nutze per Cronjob "links", um eine Status-SMS an ein SMS-Portal zu senden. Dies funktioniert auch problemlos. Allerdings bleiben diese Prozesse offen, so dass sich nach mehreren Tagen dementsprechend "links"-Prozesse angehäuft haben. Im man von "links" ist leider nicht zu finden, was einen Timeout hervorruft, da ich von der SMS im Browser einfach ein "OK" erhalte und diese Seite dann offen bleibt.
Weiß jemand Rat? Danke vorab.
Guido
Hallo Guido, Links ist eigentlich ein Text-Browser für die Konsole und weniger für solchen Fälle geeignet. Daher auch die offenen Prozesse, weil Links die Webseite offenhält und auf eine Interaktion (Tastaturbefehl) wartet. Nimm lieber wget bzw. curl. Ich nehme hierzu gerne das wget-Tool. Da mein Rechner alle 24 Stunden ne andere IP hat und ich gerne von der Arbeit aus auf den Rechner zu Hause zugreifen möchte, habe ich für diesen Zweck ein PHP-Script auf dem Server liegen, sobald man die Seite lädt, weiß das serverseitige Skript gleichzeitig die IP vom Rechner und speichert diese gesichert ab. Die Seite lasse ich mit diesem Cronjob-Befehl vom Server laden (hier als Beispiel): 0 * * * * /usr/bin/wget --delete-after http://example.com/script.php
/dev/null 2>&1
Erläuterung: Jede Stunde wird die Adressse http://example.com/script.php aufgerufen und danach wird die heruntergeladene Seite (hier: script.php ) gelöscht. Die normale Ausgabe von wget kommt nicht in die Logdatei, aber dafür die Fehlermeldungen. Alternativ kann man auch mit der heruntergeladenen Datei weiterarbeiten. Daher auch für Bash-Skripte geeignet. Ich denke, dass dies deinem Vorhaben eher entspricht. Viele Grüße Sebastian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi, wget kann die Datei nicht speichern und versucht diese nur zu laden. Dafür ist das Script dann scheinbar nicht gemacht. Das Script liegt extern bei einem SMS-Anbieter und wird mittels HTTP-URL aufgerufen: http://www.smsanbieter.de/gateway/sms/sms.php&id=UD&passwort=passwort&empfaenger=017712345678&text=text Das liefert dann ein "OK" als Ausgabe im Browser. Gruß Guido
Hallo Guido,
Links ist eigentlich ein Text-Browser für die Konsole und weniger für solchen Fälle geeignet. Daher auch die offenen Prozesse, weil Links die Webseite offenhält und auf eine Interaktion (Tastaturbefehl) wartet.
Nimm lieber wget bzw. curl.
Ich nehme hierzu gerne das wget-Tool. Da mein Rechner alle 24 Stunden ne andere IP hat und ich gerne von der Arbeit aus auf den Rechner zu Hause zugreifen möchte, habe ich für diesen Zweck ein PHP-Script auf dem Server liegen, sobald man die Seite lädt, weiß das serverseitige Skript gleichzeitig die IP vom Rechner und speichert diese gesichert ab.
Die Seite lasse ich mit diesem Cronjob-Befehl vom Server laden (hier als Beispiel): 0 * * * * /usr/bin/wget --delete-after http://example.com/script.php
/dev/null 2>&1
Erläuterung: Jede Stunde wird die Adressse http://example.com/script.php aufgerufen und danach wird die heruntergeladene Seite (hier: script.php ) gelöscht. Die normale Ausgabe von wget kommt nicht in die Logdatei, aber dafür die Fehlermeldungen. Alternativ kann man auch mit der heruntergeladenen Datei weiterarbeiten. Daher auch für Bash-Skripte geeignet.
Ich denke, dass dies deinem Vorhaben eher entspricht.
Viele Grüße Sebastian
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Problem gelöst mit lynx /usr/bin/lynx --dump "http://............" Danke für den Denkanstoß ! Guido
Hi,
wget kann die Datei nicht speichern und versucht diese nur zu laden. Dafür ist das Script dann scheinbar nicht gemacht.
Das Script liegt extern bei einem SMS-Anbieter und wird mittels HTTP-URL aufgerufen: http://www.smsanbieter.de/gateway/sms/sms.php&id=UD&passwort=passwort&empfaenger=017712345678&text=text
Das liefert dann ein "OK" als Ausgabe im Browser.
Gruß
Guido
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Don, 24 Jul 2008, wunschradio.fm schrieb:
Problem gelöst mit lynx
/usr/bin/lynx --dump "http://............"
Danke für den Denkanstoß !
Guido
Hi,
wget kann die Datei nicht speichern und versucht diese nur zu laden. Dafür ist das Script dann scheinbar nicht gemacht.
Das Script liegt extern bei einem SMS-Anbieter und wird mittels HTTP-URL aufgerufen: http://www.smsanbieter.de/gateway/sms/sms.php&id=UD&passwort=passwort&empfaenger=017712345678&text=text
Das liefert dann ein "OK" als Ausgabe im Browser.
Das ist ein http-GET Request, da kannst du auch gut wget oder GET verwenden. if wget -q 'http://...' | grep -q OK; then echo "Anfrage war erfolgreich" else echo "Fehler" fi Oder so. -dnh -- Warning: Pregnancy can cause birth -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
wunschradio.fm schrieb:
Hi,
wget kann die Datei nicht speichern und versucht diese nur zu laden. Dafür ist das Script dann scheinbar nicht gemacht.
Das Script liegt extern bei einem SMS-Anbieter und wird mittels HTTP-URL aufgerufen: http://www.smsanbieter.de/gateway/sms/sms.php&id=UD&passwort=passwort&empfaenger=017712345678&text=text
Das liefert dann ein "OK" als Ausgabe im Browser.
Hi! Bei dieser komplexeren Url würde ich dir eher zu curl raten. Aber man konnte ja nicht wissen, was genau du wolltest. ;-) <glaskugel-mode-on>Ich nehme mal an, dass es eine reine HTTP GET-Anfrage ist.<glaskugel-mode-off> # curl 'http://www.smsanbieter.de/gateway/sms/sms.php&id=UD&passwort=passwort&empfaenger=017712345678&text=text' -o answer.txt Der Befehl oben inklusiv mit dem Zusatz "-o" (minus und kleines O wie Otto) bewirkt, dass die Ausgabe in eine Datei gespeichert wird. Achte bitte auf die Hochkommata vor und hinter der URL. Da sonst die Konsole das Tool curl in den Hintergrund schickt wegen dem &-Zeichen. Wenn du es komplett in einem Bash-Skript haben willst, dann mach es so: (ungetestet) #/bin/bash SMSGATEWAY=`curl 'http://www.smsanbieter.de/gateway/sms/sms.php&id=UD&passwort=passwort&empfaenger=017712345678&text=text'` if [ "${SMSGATEWAY}" = "OK" ]; then echo "Alles in Ordnung" exit 0; else echo "Da ist was falsch gelaufen" #mach was.... z.B. Meldung an den Administrator. exit 1; fi Rückgabewert ist hier bei 0 = Erfolgreich oder 1 = Fehler. Gruß Sebastian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mit, 23 Jul 2008, Sebastian Siebert schrieb:
Die Seite lasse ich mit diesem Cronjob-Befehl vom Server laden (hier als Beispiel): 0 * * * * /usr/bin/wget --delete-after http://example.com/script.php
/dev/null 2>&1
Erläuterung: Jede Stunde wird die Adressse http://example.com/script.php aufgerufen und danach wird die heruntergeladene Seite (hier: script.php ) gelöscht. Die normale Ausgabe von wget kommt nicht in die Logdatei, aber dafür die Fehlermeldungen.
Falsch. Die Fehlermeldungen leitest du so ebenfalls nach /dev/null. Richtig wäre: /usr/bin/wget ... 2>&1 >/dev/null Aber einfacher ist: /usr/bin/wget -q -O /dev/null http://example.com/script.php -dnh -- Wer heiratet kann Sorgen teilen, die er vorher nicht hatte. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mit, 23 Jul 2008, wunschradio.fm schrieb:
ich nutze per Cronjob "links", um eine Status-SMS an ein SMS-Portal zu senden. Dies funktioniert auch problemlos. Allerdings bleiben diese Prozesse offen, so dass sich nach mehreren Tagen dementsprechend "links"-Prozesse angehäuft haben. Im man von "links" ist leider nicht zu finden, was einen Timeout hervorruft, da ich von der SMS im Browser einfach ein "OK" erhalte und diese Seite dann offen bleibt.
Weiß jemand Rat? Danke vorab.
Wie funktioniert das? http-GET / POST? Dann schau dir mal die Programme GET und POST aus libwww-perl an. Kann sein, daß die nimmer in ein /bin/ verlinkt sind. Letztlich ist das eh 'lwp-request', dem mußt du dann nur sagen, welchen Modus du verwenden willst. Einen Timeout kannt du dem Script auch explizit angeben. Damit sollte es klappen. -dnh -- "If you are using an Macintosh e-mail program that is not from Microsoft, we recommend checking with that particular company. But most likely other e-mail programs like Eudora are not designed to enable virus replication" -- http://www.microsoft.com/mac/products/office/2001/virus_alert.asp -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
David Haller
-
Sebastian Siebert
-
wunschradio.fm