staging.inyokaproject.org

Cronjob: Ausgabe in /var/log speichern

Status: Gelöst | Ubuntu-Version: Server 16.04 (Xenial Xerus)
Antworten |

lukasb314

Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

Grüß euch!

Ich habe hier ein kleines Script, das ich 1x pro Woche ausführen möchte. Dabei soll die Ausgabe in /var/log/Bereinigung.log gespeichert werden.

Führe ich das Script händisch aus (als root) funktioniert das alles. Skript läuft und die Ausgabe wird in /var/log/Bereinigung.log gespeichert:

lukas@bcd3e3:~/scripts$ sudo -s
root@bcd3e3:~/scripts# php clean.php >> /var/log/Bereinigung.log

Füge ich dieses Script aber root's crontab hinzu, läuft es zwar, die Ausgabe wird aber nicht in /var/log/Bereinigung.log geschrieben:

25 3 * * 5 /home/lukas/scripts/clean.php >> /var/log/Bereinigung.log

Was auch nicht funktioniert ist, wenn ich das Script manuell als "normaler" Benutzer mit sudo ausführe:

lukas@bcd3e3:~/scripts$ sudo php clean.php >> /var/log/Bereinigung.log
-bash: /var/log/Bereinigung.log: Permission denied

Woher kommt dieses Verhalten?

Danke & LG!

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Vielleicht findet sich ein Hinweis in /var/log/syslog oder /var/log/cron.log, je nachdem, wo die Logs von deinen Cronjobs hingeschrieben werden...

Und der Aufruf als normaler Benutzer funktioniert nicht, weil Du schlicht keine Schreibberechtigung auf /var/log hast...

lukasb314

(Themenstarter)
Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

Doc_Symbiosis schrieb:

Vielleicht findet sich ein Hinweis in /var/log/syslog oder /var/log/cron.log, je nachdem, wo die Logs von deinen Cronjobs hingeschrieben werden...

In der syslog habe ich gesehen, dass der Cronjob aufgerufen wurde. Außerdem wird die log-File angelegt, aber nicht befüllt.

Jedoch hattest du mit deinem vorherigen Post (vor dem Bearbeiten) recht. Das /usr/bin/php fehlte natürlich:

25 3 * * 5 /usr/bin/php /home/lukas/scripts/clean.php >> /var/log/Bereinigung.log

Jetzt klappts, danke!

Und der Aufruf als normaler Benutzer funktioniert nicht, weil Du schlicht keine Schreibberechtigung auf /var/log hast...

Obwohl ich es sudo'e?

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Das sudo bezieht sich nur auf den Befehl und nicht auf die Dateiumleitung. Damit die mit einbezogen wird, müsstest Du das so schreiben:

sudo bash -c "php clean.php >> /var/log/Bereinigung.log"

lukasb314

(Themenstarter)
Avatar von lukasb314

Anmeldungsdatum:
26. Oktober 2016

Beiträge: 92

Doc_Symbiosis schrieb:

Das sudo bezieht sich nur auf den Befehl und nicht auf die Dateiumleitung. Damit die mit einbezogen wird, müsstest Du das so schreiben:

sudo bash -c "php clean.php >> /var/log/Bereinigung.log"

Ah, alles klar. Super, danke, das wusste ich noch nicht. Macht aber Sinn.

Antworten |