Ich möchte zweimal täglich Inhalte aus einem PHP-Skript auf meinem Server abrufen, eine Abfragevariable ändern lang
, um die gewünschte Sprache festzulegen, und diese Inhalte in zwei sprachspezifischen Dateien speichern. Das ist meine Crontab:
*/15 * * * * ~root/apache.sh > /var/log/checkapache.log
10 0 * * * wget -O /path/to/file-sv.sql "http://mydomain.com/path/?lang=sv"
11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en"
Das Problem ist, dass nur die erste wget-Befehlszeile ausgeführt wird (oder genauer: die einzige Datei, die geschrieben wird, ist /path/to/file-sv.sql
). Wenn ich die zweite und die dritte Reihe /path/to/file-en.sql
wechsle, wird stattdessen geschrieben. Die erste Zeile läuft immer wie erwartet, egal wo sie ist.
Ich habe dann erfolglos versucht lynx -dump "http://mydomain.com/path/?lang=xx" > /path/to/file-xx.sql
; immer noch nur die erste luchslinie erfolgreich ausgeführt. Sogar das Mischen von Wget und Luchs hat dies nicht geändert!
Ein bisschen verzweifelt! Vermisse ich etwas? Es gibt Tausende von Artikeln über crontab (in Kombination mit) wget oder lynx, aber alle scheinen grundlegende Einstellungen und die Syntax zu behandeln. Hat jemand eine Ahnung, was ich falsch mache?
Danke,
Alexander
Antworten:
Versuchen Sie, am Ende Ihrer Crontab eine neue Zeile einzufügen.
quelle
Irgendetwas an dem Text stimmt nicht. Bearbeiten Sie Ihre Crontab in vim und zeigen Sie unsichtbare Zeichen an.
Sie sollten es sehen und dann korrigieren können.
quelle
# crontab -e
EDITOR=vim crontab -e
$
am Ende jeder Zeile ein Lila ?Versuchen Sie, eine Umleitung hinzuzufügen, um crontab zu debuggen (oder Root-Mail zu lesen):
Führen Sie auch "wget -O /path/to/file-en.sql" http://mydomain.com/path/?lang=en "in der Konsole aus.
Verwenden Sie auch 'crontab -e', um eine neue crontab zu validieren.
Versuchen Sie auch, eine nicht funktionierende Zeile zu löschen und über die Tastatur erneut einzugeben.
Corntab sichern und Befehl ausführen:
quelle
/tmp/crontab_ouptput 2> /tmp/crontab_error
funktioniert nur für die erste Zeile. Das Ausführen des Befehls über die Konsole funktioniert einwandfrei. Habe die ganze Datei mit meinen bloßen Händen neu geschrieben, aber nichts hat sich geändert.Ich habe nur einige Zeit damit verbracht, die obigen Antworten (Hinzufügen von Zeilenumbrüchen, Löschen von Zeilenumbrüchen usw.) auf einem System zu testen, auf dem cronie ausgeführt wird . Schließlich wurde ein Fehler in cronie 1.5.3 gefunden , der nur den ersten Cron-Job für jeden Benutzer ausführt . Es ist in 1.5.4 behoben
https://github.com/cronie-crond/cronie/issues/30
Hoffe das spart jemandem etwas Zeit ...
quelle