crontab: wie am best .php script aufrufen? wget oder lynx?

Status
Für weitere Antworten geschlossen.
M

milius.net

tail /var/log/geek
hallo,

muss zur regelmässigen kontrolle/reparatur einiger datenbanken per crontab ein paar .php urls aufrufen - wie mache ich das am besten?
* die aufgerufenen dateien sollen weder gespeichert werden noch ist die ausgabe/output des scriptes relevant...
* und eigentlich liegen die scripte sogar lokal bereit, ich rufe sie aber über http ab weil es mir zur zeit am einfachsten erscheint ...

PHP:
crontab: 
*/15 * * * * wget http://www.milius.net/script_repair.php >/dev/null
funktioniert sehr gut, hinterlässt aber sehr viele abgespeicherte dateien (script.php1, script.php2 etc) deshalb hier folgende fragen:

- gibt's wget mit no-save? :ugly:

- wie geht's mit lynx? (also http:// aufruf, dann quit ...)
- wie kann man mit lynx alle 15 minuten 5 (+) urls aufrufen?
- muss ich dazu 5x lynx aufrufen oder kennt/kann lynx batch? (falls ja, wie geht's?)

- oder doch ganz anders? welche soft/progs/commands benutzt ihr dazu?

danke für alle! antworten...
 
Klar gibts wget mit "no-save". "man wget". Ansonsten leitest du Ausgabe nach /dev/null

Wenn der Host lokal läuft kannst du auch den php CLI Interpreter nutzen.

Gruess
Joel
 
Code:
wget -O /dev/null > /dev/null

Vielleicht so
 
Wget funktioniert zwar ist aber nicht die korrekte Anwendung um Cron Jobs zu starten.
Zum Starten eines php-scripts auf dem Webserver braucht man einen Browser und der sicherste und einfachste Web-Browser ist lynx.
Lynx wird von der Kommandozeile aus aufgerufen und erzeugt normalerweise direkt eine Ausgabe auf den Standard-Ausgabekanal im Regelfall also dem Bildschirm. Dies Ausgabe kann man dann in eine Datei umleiten mit >pfad/dateiname oder ins Datennirwana jagen mit >/dev/null. Bitte, mit Zucker obendrauf, lest einfach mal die man pages von wget und lynx aufmerksam durch dann kommt ihr schnell dahinter warum. Sowohl lynx als auch wget kann man in bash scripten verwenden, denn dafür wurden sie unter anderem auch gemacht.
wget ist ein programm mit dem man beispielsweise Datensicherungen machen kann das funktioniert aber nur wenn die entsprechende Website in reinem HTML gemacht ist und nicht durch php oder einer anderen Programmiersprache erst generiert wird. Da es offensichtlich ja mit wget funktioniert und irgendwann mal diese Frage aufkam wurde das im Web verbreitet und alle plappern nach. Ich schreibe das nur, ums mal richtig zu stellen. Ich bin hier zwar n Grünschnabel, aber ich bin darüber hinaus zertifizierter LPIC2 Admin.

Mit lynx würde das Ganze dann so aussehen:
crontab:
*/15 * * * * lynx -dump URL >/dev/null

lynx kann noch ne ganze Menge mehr z.B. cookies
Und schon wird der versierte PHP-Programmierer aufhorchen ...
 
Zuletzt bearbeitet von einem Moderator:
Dann erleuchte uns doch bitte mal, warum wget denn dafür die falsche Lösung ist..

*gespanntbin*

(ach ja - wget und curl und Artverwandte können auch cookies... - aber bitte, erklär es mir, bevor ich das Posting und "Unfug" einsortiere)



edit: ok, nach über 1 Woche keine Reaktion - damit ist für mich die Beweisführung abgeschlossen.

-> Posting und darin enthaltene Grundaussage ist also Unfug.
 
Zuletzt bearbeitet:
Zunächst, ich hatte drei sehr harte Wochen und keine Zeit mich hier um das Posting zu kümmern. Es hat ja auch ne Woche gedauert bis hier ne Reaktion auf mein Posting kam. Meine Grundaussage war und ist:
Wget funktioniert zwar ist aber nicht die korrekte Anwendung um Cron Jobs zu starten. Wer das nicht glaubt, kann von mir aus an seiner falschen Auffassung festhalten. Es interessiert mich nicht weiter. Es bringt auch nichts, meiner Meinung nach weiter darüber zu diskutieren, weil man sich nur die man pages durchlesen muss ums zu begreifen.
Ich wiederhole es hier jetzt nochmal wget funktioniert zwar aber wget ist für den kommandozeilen orientierten Download von Dateien aus dem Netz konzipiert während lynx ein Kommandozeilen Browser ist. Das allein ist schon Grund genug lynx zu favorisieren. Man kann übrigens *.php Skripte auch direkt mit php /absolutem/pfad/script.php starten auch vom cron aus, es kann dabei aber auf das jeweilige script ankommen. Deshalb für mich und viele meiner Kollegen ist lynx das bervorzugte Mittel.
Da ich auch meistens root bin darf ich auch.
Es macht mir gar nichts aus, dass mein Posting als Unfug eingestuft wird von Einzelnen - für mich bedeutet das nur das sich da jemand wichtig machen will und trotz seiner 660 Beiträge hier im Forum die man pages nicht sorgfältig genug gelesen hat. Jeder der lesen kann und des englischen einigermaßen mächtig ist wirds dann begreifen wenn er/sie sie liest. RTFM (read the fine manpage)

@marce Ja, Du hast vollkommen Recht mein Posting ist absoluter Unfug! Die Man Pages sind auch absoluter Unfug! Und überhaupt das Leben an sich ist absoluter Unfug!
 
Nachtrag: Auf die Art kann man auch Leute von Foren fernhalten - will sagen - ich muss hier nicht posten - Niemand kann mich dazu zwingen! Hab ich ein Glück!
 
Wie unterscheidet sich den für den HTTPd das Anfragen einer Seite mit einem Textbrowser von der Anfrage mit einem Downloader?



Nachtrag: Auf die Art kann man auch Leute von Foren fernhalten - will sagen - ich muss hier nicht posten - Niemand kann mich dazu zwingen! Hab ich ein Glück!
Ich seh hier nur einen 3-Postling, der rumpöbelt.
 
Kinder, Kinder.
Warum immer das geflame.

Wenn crow48 in dem genannten Fall lynx für die einzig richtige Lösung hält, lasst ihn doch.
Trotzdem finde ich Posting Nr. 7 völlig überflüssig. Das ist ja wohl trivial, dass man hier nicht posten muss.

Ich behalte mir trotz der Diskussion vor, sollte ich irgendwann mal in eine ähnliche Situation kommen, selbst zu entscheiden, ob ich wget oder lynx oder w3m oder was auch immer nehme.
Ich kann den Ratschlägen hier nämlich folgen, muss ich aber nicht. Niemand kann mich dazu zwingen! Hab ich ein Glück! :)

scnr

Schard
 
Ich will die Diskussion mal ein bisschen anheizen... wgets Vorreiter hieß doch geturl wenn ich mich nicht täusche :) ?
[offtopic]
crow, hättest du deine Energie genutzt um kurz zu schreiben warum du denkst dass lynx viel besser geeignet ist, wäre deinem Posting auch wesentlich mehr Inhalt zu entnehmen gewesen. Und das meine ich jetzt nicht abwertend oder negativ, ich will dir deine Kompetenz nicht absprechen. Es ist nun mal so dass man seine Äußerungen auch begründen sollte, sonst weiß ich als User ja nicht warum es besser oder schlechter ist und kann dadurch persönlich ja noch viel weniger entscheiden was ich beim nächsten Fall verwenden soll.
[/offtopic]
 
Dummerweise hab ich zur Zeit wenig davon (ich meine Zeit). Um meine Meinung zum Thema ausführlich zu begründen müsste ich ein wenig weiter ausholen. Das kann man nicht mit ein paar einfachen Sätzen erklären. Soviel sei aber dennoch gesagt - ich vermute das viele wget nehmen, weil es defaultmäßig auf Mietservern bei Strato, 1und1, server4you und andere bereits installiert ist und lynx nicht. Warum das so ist, ist mir bis heute ein Rätsel. Ich sagte auch, dass wget funktioniert, weil es den http-stream downloadet und dafür den Apache veranlasst den php-interpreter zu starten, um an den generierten HTML-Quelltext zu kommen, den wget dann auch brav speichert bzw. nicht, wenn man ihn ins /dev/null schiebt oder --no-save angegeben hat. Wget wurde gemacht um Websites downzuloaden. Lynx hingegen wurde gemacht um von der Kommandozeile aus im Web zu surfen, weshalb lynx auch standardmäßig interaktiv ist. Mit beiden Programmen kann man in der Bash auch als Bash Skript php-basierte cronjobs starten, bei lynx muss man allerdings die interaktivität aushebeln mit Option --dump oder durch ein here-dokument im baschscript. Wget holt sich den generierten html-text ohne ihn in irgend einer Weise zu interpretieren, was in den meisten Fällen auch gar nicht nötig ist. Lynx hingegen holt sich auch den HTML-code und interpretiert ihn wie ein Browser das eben macht. Jetzt könnte man sich überlegen einen Cron-Job zu basteln der darauf angewiesen ist generierte Rückmeldungen an den Browser (lynx) seinerseits wieder auszuwerten. Das wäre zwar auch mit WGET möglich aber man müsste dann den gesamten HTML-Text parsen und bei lynx nur die generierte Meldung denn das wäre bei lynx das einzige das ausgegeben werden würde.

Ich habe den überflüssigen 7ten Post auch nur gemacht, weil ich mich über marce's Post geärgert habe - besonders darüber, dass er meinen Post einfach so als Unfug bezeichnet. Sein Post ist schon ein wenig unverschämt und er würde sich wahrscheinlich nicht trauen mir so etwas ins Gesicht zu sagen.
 
Ok, aber genau dass will ja der Anwender hier nicht haben, dass die seite lokal gerendert wird. Daher finde ich, ist lynx nicht die richtige Wahl. Das Script soll ja lediglich auf dem Server ausgeführt (oder in diesem fall geparsed (gibts dieses Wort überhaupt? )) werden. Eigentlich bräuchte der Anwender hier nicht mal die Antwort des Servers :) . Ich würde intuitiv auch wget wählen, ganz einfach weil ich keinen "vollständigen" Browser benötige, sondern lediglich einen Request absenden will der das Scrip ausführt.
Du darfst mich gerne verbessern, ich kenn mich mit beiden nur spärlich aus!!!!
 
crow48 schrieb:
[...] und er würde sich wahrscheinlich nicht trauen mir so etwas ins Gesicht zu sagen.
Ist doch wenig Unterschied, ob man das einem ins Gesicht sagt, oder hier schreibt. Ein Forum ist schliesslich da zum Diskutieren, und soweit sind wir ja gluecklicherweise im deutschsprachigen Raum noch nicht, das irgendjemand jemand anderen Vorschreiben duerfte, wie er/sie diskutiert ;-)
Dafuer, dass
Es macht mir gar nichts aus
laesst Du Dich hier ganz schoen umfangreich aus...

Zum Starten eines php-scripts auf dem Webserver braucht man einen Browser
Diese Aussage halte ich auch fuer falsch ( aka Unfug - emotionale Prise Salz) - ein Browser ist ja nicht mal unbedingt ein Webbrowser, ein filebrowser muss ja z.B. nicht http sprechen. Und ich glaube auch nicht, dass man einen Webbrowser benoetigt, um eine Anfrage an einen Webserver zu schicken.
 
Zum Starten eines php-scripts auf dem Webserver braucht man (normalerweise oder in der Regel) einen Browser - hätte ich vielleicht noch dazu schreiben sollen - Es macht schon einen Unterschied ob ich jemandem vies a vie (von Angesicht zu Angesicht) gegenüberstehe oder in der Sicherheit der Anonymität des Webs Unverschämtheiten vom Stapel lasse.
Probiert es doch einfach mal aus.
Zur emotionalen Prise Salz - ich sagte bereits das mich solche Dinge wie "Unfug" ärgern jetzt stürzt man sich darauf um mich weiter zu ärgern. Kindergarten?
Dann war mein Post Nr. 7 doch nicht ganz so trivial!
Ich wollte eigentlich nur mal grundsätzlich etwas kommentieren, dass seit Jahren ungenügend dokumentiert wird.
Damit ist für mich ab jetzt hier
1. die Sache vom Tisch und
2. Unixboard.de als mögliche kompetente Refenzquelle für Unix-Fragen als untauglich eingestuft.

Ich habe übrigens hier noch in einigen anderen Artikeln gelesen und noch viel mehr Mist gefunden.
Aber ich habe keine Lust mehr hier zu versuchen überhaupt noch irgendwas zu kommentieren also ....

An die Admins -
löscht bitte meinen Account ....
 
Und bevor der Thread noch mehr Gehalt gewinnt, machen wir jetzt mal das Licht aus.

Gute Nacht.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben