Die Syntax für den crontab-Eintrag sieht korrekt aus. Wenn Sie Ihre crontab mit " crontab -e
" bearbeiten (wie Sie sollten), wird eine Fehlermeldung angezeigt, wenn Sie einen syntaktisch ungültigen crontab-Eintrag angeben.
Erstens, läuft /path_to_my_php_script/info.php
es korrekt von der Kommandozeile aus?
Wenn ja, läuft es auch so ?:
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null)"
Wenn das funktioniert, funktioniert es dann so?
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null >/dev/null 2>&1)"
Schritt (3) ähnelt dem Ausführen Ihres Programms durch cron (wie in "man 5 cron" dokumentiert).
Das wahrscheinlichste Problem ist, dass der PATH-Cron, mit dem Sie Ihr Programm ausführen, zu restriktiv ist. Aus diesem Grund möchten Sie am Anfang Ihres crontab-Eintrags möglicherweise Folgendes hinzufügen (Sie müssen in die Verzeichnisse, die Ihr Skript benötigt, Folgendes einfügen):
PATH=~/bin:/usr/bin/:/bin
Beachten Sie auch, dass cron standardmäßig /bin/sh
nicht bash verwendet. Wenn Sie bash benötigen, fügen Sie dies auch am Anfang Ihrer crontab-Datei hinzu:
SHELL=/bin/bash
Beachten Sie, dass sich diese beiden Änderungen auf alle crontab-Einträge auswirken . Wenn Sie diese Werte nur für Ihr info.php
Programm ändern möchten , können Sie Folgendes tun:
*/2 * * * * /bin/bash -c ". ~/.bashrc; /path_to_my_php_script/info.php"
Erwähnenswert ist auch, dass auf einem für "Mail" konfigurierten System (dh einem System mit einem konfigurierten MTA [sendmail / postfix / etc]) alle Ausgaben von Crontab-Programmen automatisch per E-Mail an Sie gesendet werden. Auf einem Ubuntu-Standarddesktopsystem ist keine lokale Mail konfiguriert. Wenn Sie jedoch auf einem Server arbeiten, können Sie "mail" in ein Terminal eingeben, um alle diese Cron-Mails anzuzeigen. Dies gilt auch für den at
Befehl " ".