crontab/cronjobs | DSM 6-7321

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Andy+

Benutzer
Sehr erfahren
Registriert
25. Jan. 2016
Beiträge
5.546
Reaktionspunkte
584
Punkte
214
Nach dem Update von DSM 5.2 auf DSM 6 habe ich zunächst grundsätzlich folgende Einträge in der crontab angepasst (von / in) :

/usr/bin/php
/usr/local/bin/php56

Somit habe ich nun zB. folgende Einträge in der crontab :

*/15 * * * * root /usr/local/bin/php56 -f /volume1/web/owncloud/data/scripts/cron_lock_unlock.sh >> /volume1/web/owncloud/data/logs/cron_lock_unlock_$(date +%Y-%m-%d).log 2>&1
*/30 * * * * root /bin/su -s /bin/sh -c "find /volume1/web/owncloud/data/logs/ -name '*.log' -mmin +1440 -delete"
*/15 * * * * root /bin/su -s /bin/sh -c "/usr/local/bin/php56 -f /volume1/web/owncloud/cron.php" http >> /volume1/web/owncloud/data/logs/cron_php_$(date +%Y-%m-%d).log 2>&1
0 21 * * * root crond -bS -l 0 -L cron_logging.log -c /volume1/web/owncloud/data/logs
0,30 7-23 * * * root /bin/su -s /bin/sh -c "cd /volume1/web/owncloud && /usr/local/bin/php56 -f occ files:scan rescan" http >> /volume1/web/owncloud/data/logs/cron_rescan_rescan_$(date +%Y-%m-%d_%H-%M-%S).log 2>&1
10 21 * * * root /bin/su -s /bin/sh -c "cd /volume1/web/owncloud && /usr/local/bin/php56 -f occ files:scan --all" http >> /volume1/web/owncloud/data/logs/cron_rescan_all_$(date +%Y-%m-%d_%H-%M-%S).log 2>&1

Jedoch läuft keine dieser Zeilen automatisch und kann mir das nicht erklären, denn, starte ich die Zeilen einzeln über die Konsole, also z.B.

/bin/su -s /bin/sh -c "cd /volume1/web/owncloud && /usr/local/bin/php56 -f occ files:scan rescan" http >> /volume1/web/owncloud/data/logs/cron_rescan_rescan_$(date +%Y-%m-%d_%H-%M-%S).log 2>&1

dann erscheint mit einem male auch eine Logdatei und das Kommando wird ausgeführt. Die spannende Frage ist nun, weshalb cron diese Zeilen, und noch andere mehr, nicht automatsich ausführt, obwohl ich nach jeder Änderung selbstverständlich eingebe :

/$ /usr/syno/sbin/synoservicectl --restart crond
crond restarted.

Von daher ist dieser neu gestartet. Wie erklärt sich dieses Verhalten, was ich allerdings nur bei DSM 6 beobachten kann ..... :confused:
 
cron und Konsole haben unterschiedliche PATH Umgebungen. Möglich dass via cron z.B. das date Kommando nicht gefunden wird. So aus Neugier: wieso noch /bin/su? Der Job wird ja bereits als root ausgeführt
Wegen dem PATH solltest du bei jedem Kommando jeweils den vollständige Pfad angeben
 
Du meinst wohl

/volume1/usr/local/bin/php56

oder wie verstehe ich das?

Ich weiß auch nicht, ob die Einträge "/bin/su" in DSM 6 noch passen, weil ich diese aus DSM 5.2 übernommen habe. Diese sind im Zusammenhang mit ownCloud entstanden sind, weil für dort der Benutzer "http" gefordert wurde.

*/15 * * * * root ..................... " ..........." http
 
der Pfad zu den php ist ja bereits ein kompletter Pfad. Ich meinte eher das date Kommando
Wenn du es als User http ausführen willst dann gib dem cron diese Info doch einfach mit
Code:
*/15 * * * * http /usr/local/bin/php56 -f /volume1/web/owncloud/cron.php >> /volume1/web/owncloud/data/logs/cron_php_$(/pfad/zu/date +%Y-%m-%d).log 2>&1
dafür wäre daas Userfeld im crontab ja angedacht ;)
 
Wo liegt "date" überhaupt in DSM 5.2 und 6? Nun, ich habe auch crons probiert ohne diesen Log-Anhang, die liefen aber auch nicht, oder was ist der Hintergrund dazu?
 
Unter DSM 5.2 ist der Pfad /bin/date.
 
Werde ich mal testen. Allerdings wird das wohl mein Thema nicht erledigen ..... :confused:

Das nun nicht der Eindruck entsteht, das hätte nur mit ownCloud zu tun. In der crontab sind noch weitere Einträge zu anderer Software, die auch nicht laufen.
 
hast du schon einen "simplen" Testcron probiert? Einfach ein echo in eine Datei? Geht das?
 
Dafür reichen meine Linuxkenntnisse leider nicht. Wie könnte so ein Eintrag ausehen?
 
Code:
* * * * * root echo 'Hallo Andy' >/tmp/test.file
sollte nach einer Minute das File /tmp/test.file anlegen und befüllen. Falls ned ist deine crontab irgendwie kaputt
Früher war es so, dass man in crontab jeweils Tabs statt Leerzeichen verwenden musste. Weiss aber ned ob das für DSM 6 immer noch gilt
 
Das teste ich mal, weil ich noch überall Tabs drin hab. Im Grunde aber, kann man das an den Einträgen sehen, die bereits bei der Installation von DSM 6 angelegt werden. Aber testen schadet ja nicht.
 
Nun habe ich getestet :

* * * * * root echo 'Hallo Andy' >/volume1/web/owncloud/data/logs/test.file
*/1 * * * * root echo 'Hallo Andy' >/volume1/web/owncloud/data/logs/test.file

und da kommt nichts an. Wenn wir nun unterstellen, daß die crontab defekt ist, wie stelle ich die wieder her?
 
ich würde die alte crontab mal umbenennen und eine neue erstellen nur mit dem Testcrontab drin
Btw * und */1 ist redundant ;-)
 
Habe ich gemacht. Die bisherige crontab umbenannt und eine neue angelegt mit dem Eintrag

* * * * * root echo 'Hallo Andy' >/volume1/web/owncloud/data/logs/test.file

aber es tut sich nichts.
 
Hallo,
probiere doch mal /tmp/test.file nicht das es ein Problem mit dem owncloud Ordner gibt.
Rich (BBCode):
root@DS1513:~# tail -f /tmp/test.file
Hallo Götz Wed Apr 13 21:26:01 CEST 2016
Hallo Götz Wed Apr 13 21:27:01 CEST 2016
Hallo Götz Wed Apr 13 21:28:01 CEST 2016
Hallo Götz Wed Apr 13 21:29:01 CEST 2016
Hallo Götz Wed Apr 13 21:30:01 CEST 2016
Hallo Götz Wed Apr 13 21:31:01 CEST 2016
Hallo Götz Wed Apr 13 21:32:01 CEST 2016
Hallo Götz Wed Apr 13 21:33:01 CEST 2016
Hallo Götz Wed Apr 13 21:34:01 CEST 2016
Hallo Götz Wed Apr 13 21:35:01 CEST 2016

Gruß Götz
 
Ich habe die Zeile einmal zum Spass in einen Server eingebaut mit DSM 5.2 und, siehe da, die Datei wird angelegt. Was ist mit euren crontab´s im Zusammenhang mit DSM 6 ?
 
Hallo,
probiere doch mal /tmp/test.file nicht das es ein Problem mit dem owncloud Ordner gibt.[/CODE]

Gruß Götz

In der crontab ist gerade sonst nichts drin. Aber ich probier das mal.
 
Habe ich nun getestet :

* * * * * root echo 'Hallo Andy' >/tmp/test.txt

und auch dort kommt nichts an. Die crontab habe ich neu angelegt mit nur diesem Eintrag.
 
Ich habe das Ganze mal über den Aufgabenplaner gemacht mit dem gleichen Ergebnis. Der Aufgabenplaner nimmt nach wie vor Tabs.
 
Und nun, weiß da jemand was dazu?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat