Das Hinzufügen einer Datei zu /etc/cron.d führt nicht zum Ausführen (Ubuntu 10.04)

20

Wenn ich eine Cron-Datei in /etc/cron.d scp, wird sie nur ausgeführt, wenn ich die Datei bearbeite und den Befehl ändere. Dann scheint crond die Cron-Datei aufzunehmen.

Wie kann ich Cron dazu bringen, seine Cron-Dateien in Ubuntu 10.04 neu zu laden? Das 'Berühren' der Datei funktioniert nicht und 'cron neu starten' oder 'cron neu laden' funktioniert nicht.

Meine Cron-Datei wird so eingestellt, dass sie jede Minute ausgeführt und in einer Datei protokolliert wird. Nichts landet in der Protokolldatei, bis ich den Befehl bearbeite, und es gibt keinen Eintrag dafür in / var / log / syslog

Ich bin ratlos.

Hier ist meine Cron-Datei, die in /etc/cron.d/runscript gespeichert ist (beachten Sie, dass sie mit einer neuen Zeile endet)

# Runs the script every minute. This is safe because it will exit with success if it's already running
* * * * * www-data if [ -f /usr/local/bin/thing ]; then exec /usr/bin/php /usr/local/bin/thing mode:prod -a 14 -d >> /var/log/thing/mything.log 2>&1; else echo `date +'[\%D \%T]'` "Thing not deployed. Command not run" >> /var/log/thing/mything.log; fi &
tom
quelle
3
Es ist gut, dass Sie den Benutzer angegeben haben, unter dem der Job ausgeführt werden soll. Ich habe das weggelassen, was die Ursache meiner Probleme war.
Edward Anderson
1
Jahre später keine akzeptierte Antwort? Hast du es zum Laufen gebracht? Ich stecke auch fest und die üblichen Fallstricke scheinen nicht das Problem zu sein.
Twigmac

Antworten:

27

Ich bin gerade auf dieses Problem gestoßen, und obwohl es Ihren speziellen Fall nicht beantwortet, kann es auch anderen Leuten helfen, das gleiche Problem zu googeln, da diese Frage in den Ergebnissen sehr hoch ist.

Ich hatte eine Datei in /etc/cron.d gespeichert und sie wurde ignoriert. In meinem Fall lag es daran, dass ich den Dateien eine Erweiterung gegeben hatte.

mytask.cronhat nicht funktioniert, aber ich habe es in umbenannt mytaskund es hat gut funktioniert.

Dateien mit Erweiterungen werden ignoriert. Vergewissern Sie sich daher, dass Ihre gespeicherte Datei keine Erweiterung aufweist.

Anigel
quelle
13
Die cron (8) -Handbuchseite unter Debian / Ubuntu dokumentiert dies in diesen Tagen ziemlich deutlich: "Die Unterstützung für /etc/cron.d ist im cron-Daemon selbst enthalten. [...] Dateien in diesem Verzeichnis müssen übereinstimmen nach der gleichen Namenskonvention wie bei Laufteilen (8): Sie dürfen nur aus Groß- und Kleinbuchstaben, Ziffern, Unterstrichen und Bindestrichen bestehen. Das heißt, sie dürfen keine Punkte enthalten. "
Josip Rodin
15

Überprüfen Sie, ob die zu kopierende Datei mit a endet \n. Einträge in Crontabs, die \nam Ende kein a haben, stoßen in der Regel auf Probleme. Am einfachsten stellen Sie dies sicher, indem Sie nach Ihrer letzten Eingabe eine Leerzeile einfügen.

user9517 unterstützt GoFundMonica
quelle
1
Ich wollte gerade meine Frage bearbeiten, um zu sagen, dass sie mit \ n
tom
1
Debian / Ubuntu cron warnt im Syslog davor, seit dem Release 3.0pl1-110 im Jahr 2010, vgl. Änderungsprotokolleintrag: "Protokollieren Sie crontabs fehlende Zeilenumbrüche vor dem EOF in syslog. Dies ist nur für crontabs relevant, die nicht über crontab (1) installiert wurden, dh /etc/cron.d/* und / etc / crontab. Closes: # 76625"
Josip Rodin