Anacron Job läuft nicht, Ursache unklar

Wanderer101

Lt. Commander
Registriert
Juli 2013
Beiträge
1.077
Hallo zusammen!

Ich verzweifle grad an meinem anacron-Job. Hintergrund ist, ich habe einen Ubuntu-Server aufgesetzt mit einem Mediawiki. Hier möchte ich alle 15 Minuten die Datei "runJobs.php" im Verzeichnis /var/lib/wiki/maintenace ausführen lassen.

Also habe ich im Verzeichnis /etc/cron.hourly die Datei "mwjobs" erstellt mit dein Rechten 755 und Eigentümer ist root. Bei den anderen Jobs, die in den verschiedenen cron-Verzeichnissen liegen, sieht die Berechtigung genauso aus. Nur mit dem Unterschied, dass diese einwandfrei funktionieren.

Der Inhalt der Datei mwjobs ist:
*/15 * * * * root /usr/bin/php /var/lib/wiki/maintenance/runJobs.php


Kann mir bitte Jemand sagen, warum das Skript nicht läuft? Offenbar habe ich hier ein generelles Verständnisproblem und bin mit meinem Latein am Ende.

Vielen Dank schon einmal für Eure Hilfe!
 
- Was hat anacron damit zu tun, wenn du regelmäßig nen Job ausführen lassen willst? Zumal anacron eine etwas andere Syntax hat: https://wiki.ubuntuusers.de/Cron/#Anacron-Anac-h-ronistic-Cron
- Ist die Datei mwjobs ausführbar?
- Warum packst du Crontab nach /etc/cron.hourly anstatt diese in die systemweite Crontab zu packen? Der Vorteil von cron.hourly, cron.daily etc ist doch, dass man einfach Skripte in diese Unterverzeichnisse wirft und dann werden diese automatisch nach benanntem Überordner aufgerufen. Dein Eintrag besagt ja, dass das Skript alle 15 Min laufen soll, somit wäre es per Definition unter /etc/cron.hourly/ falsch, da eben Dateien in diesem Verzeichnis nur stündlich ausgeführt werden.
- Warum lässt du die Datei von root ausführen? Da braucht nur jemand mal ne Lücke mit Remote Code Execution finden und schon ist das ne wunderbare Einladung was du da machst. Lass den Job von dem Benutzer des Webservers ausführen und nicht von root.
 
Hallo Leute,

vielen Dank für das Feedback. Mit Cron-Jobs habe ich noch nicht so die Erfahrung. Bin davon ausgegangen, dass anacron eine einfacherer Variante ist und man den Ordner wählt, der am besten zum gewünschten Intervall passt. Deswegen bei mir der hourly Ordner.

Werde also wohl eher auf crontab -e wechseln und mich da einlesen. Ausführbar ist die Datei. Der Hinweis mit Root ist schon nicht schlecht, werde die Datei-Ausführung auf www-data (oder wie der Benutzer des Webservers auch immer heißen mag) ändern.

Müsste sonst noch was geändert werden?

Vielen Dank schon einmal für Euer Feedback!
 
Dafür gibt es Manpages, Wikis, Tutorials damit man nicht blind herum stümpern muss ;) Ansonsten ja: Anacron bietet vorgefertigte Ordner an wie oft diese ausgeführt werden. Das ist aber nicht anpassbar mit der regulären cron Syntax. Großer Vorteil von Anacron bei Desktop-Systemen ist eben, dass die Jobs nicht zu festen Zeiten laufen. Bei Servern nimmt man die gute alte crontab, da Server ja idR 24/7 durch laufen.
 
Hallo nochmal,

Dank eirem Hinweis auf crontab -e hat alles funktioniert wie ich es wollte, sogar ohne root oder web User.

Danke nochmals!
 
Zurück
Oben