it-swarm.com.de

Wie verwende ich Curl in einem Cron-Job?

Ich muss in cpanel einen Cron-Job einrichten, der einmal pro Woche eine URL (auf demselben Server) aufruft. Ich wollte wget verwenden, aber es stellt sich heraus, dass dies auf dem verwendeten gemeinsam genutzten Server deaktiviert ist.

Gibt es eine Alternative zu wget? Ich habe gehört, dass curl verwendet werden kann, aber ich weiß nicht, wie ich das in einem Cron-Befehl einrichten soll.

Wie lautet der Befehl, damit der Cronjob nach Abschluss nichts mehr tut?

Irgendwelche Ideen sehr geschätzt!

12
davidhyland

anstatt wget zu verwenden, funktioniert Curl folgendermaßen:

curl --silent http://domain.com/cron.php

das wird genauso funktionieren wie wget. Wenn es sich um eine PHP-Datei handelt, die Sie starten, gibt es einen Grund, warum Sie sie nicht über den Befehlszeilen-PHP-Interpreter wie folgt ausführen können:

php -q /path/to/cron.php

dies gilt auch für eine Webserver-Anfrage und funktioniert häufig viel schneller und ohne bestimmte Timeout-Einschränkungen, wenn sie über Webserver/Curl aufgerufen werden

21
anthonysomerset

Wenn Curl verfügbar ist, können Sie etwas wie versuchen

1 1 * * 0  /usr/bin/curl --silent http://example.come/some.php &>/dev/null

Dies sollte dazu führen, dass Curl vollständig stumm ist, sodass Sie nach Abschluss keine E-Mails mehr erhalten.

7
user9517

Ich würde vorschlagen, zusätzlich zu --silent den Parameter "-m" hinzuzufügen, da dieser Parameter die maximal zulässige Zeit für die Übertragung festlegt. Stellen Sie sich vor, Sie rufen den Cron jede Minute an und das Skript dauert 2 Minuten - dies kann sich negativ auf die Serverlast oder andere Dinge auswirken.

1 1 * * 0  /usr/bin/curl -m 120 -s http://example.come/some.php &>/dev/null
6
Johnny Vietnam