Cronjob logs?

  • 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.
Hallo Götz,

sorry, ich hatte ein Typo im Script. Jetzt funktioniert es vom Terminal aus. Gehe mal davon aus, dass der Cronjob jetzt auch automatisch läuft. Kann ich jetzt gut feststellen, weil entsprechend Deinem Vorschlag der Job geloggt wird. Super - Danke! :)
Habe noch eine andere Frage:
Kann es sein, dass ein Cronjob von einer alten Installation irgendwo im Hintergrund läuft und dieser Job auch nicht unter crontab angezeigt wird? Ich hatte ja das Problem, dass meine alte Cronjob Installation mit dem Itari Script nach update auf DSM 5.1 nicht mehr lief. Jedenfalls wird das Script nicht mehr ausgeführt. Der alte Cronjob wird nicht angezeigt, aber ich habe den Verdacht, dass er immer noch im Hintergrund läuft. Es erfolgen Einträge in meine Datenbank, die eigentlich nicht da sein dürften - zeitlich.
Gruß, Merris
 
Über den cron wird es nur funktionieren, wenn Du die Pfade ergänzt, wie ich es beschrieben habe, eine entsprechende PATH-Variable im Skript ergänzt oder eine profile-Datei sourct.
 
Hier nochmals das Script:

#!/bin/sh
echo $(date) "Script UVR1611 ausgeführt" >>/volume1/web/log/cron.mylog
wget 'http://localhost/uvr1611/analogChart.php' -O /dev/null


Das Script liegt unter /etc/cron.hourly/uvr1611-logger
Was hat es mit den anderen Pfaden auf sich?
 
Cron verfügt im Gegensatz zu einer Usershell nicht über eine Umgebung, die u.a. eine in einer profile- bzw. .profile-Datei gesetzte PATH-Variable enthält. Probiere es doch einfach mit den Pfaden aus, dann wird es funktionieren.
 
Also, der Cronjob wird ausgeführt - alle halbe Stunde - so wie in crontab eingestellt. Problem lag wie von Götze richtig erkannt an dem bash Kommand.

Im Hintergrund läuft jedoch noch ein "alter" Cronjob und den möchte ich finden. In Crontab wird dieser nicht angezeigt, aber es werden Daten in meine Datenbank geschrieben - alle 5 Minuten (so war der alte Job). Deshalb war meine aller erste Frage, wo kann man sehen welche Cronjobs überhaupt ausgeführt werden?
Wenn hier jemand weiter helfen könnte, wäre es prima.
Danke und Gruß, Merris
 
Schau in /etc/crontab.

Hast Du überprüft, dass das Skript nicht nur läuft, sondern auch das Richtige tut?
 
Ja, das Script schreibt die Daten in die Datenbank soweit ich das dort sehen kann.

Cron.log sieht so aus:
2015-04-14 09:30:13 (35.4 KB/s) - '/dev/null' saved [2]

Apr 14 10:00:01 crond: USER root pid 20317 cmd /etc/cron.hourly/uvr1611-logger
--2015-04-14 10:00:01-- http://localhost/uvr1611/analogChart.php
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/json]
Saving to: '/dev/null'

0K 32.6K=0s

2015-04-14 10:00:12 (32.6 KB/s) - '/dev/null' saved [2]

Apr 14 10:30:01 crond: USER root pid 21749 cmd /etc/cron.hourly/uvr1611-logger
--2015-04-14 10:30:01-- http://localhost/uvr1611/analogChart.php
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/json]
Saving to: '/dev/null'

0K 48.7K=0s


Wäre prima, wenn Du mir die Sache mit den Pfadsetzen näher erläutern könntest. Vielleicht komme ich dadurch meinem anderen Problem auf die Spur. Denke bitte daran, dass ich kein Experte in diesen Sachen bin und Du Vieles nicht voraussetzen solltest :) Mir ist nämlich immer noch nicht klar, wo ich welche Pfade - wie von Dir vorgeschlagen - setzen soll?
Danke und Gruß, Merris
 
Ich habe es ja schon versucht: Wenn Du eine Usershell öffnest, werden Umgebungsvariablen und Konfigurationseinstellungen aus der /etc/profile und der ~/.profile (bzw. ~/.bash_profile) gelesen. Eine davon ist PATH (z.B. PATH=/bin:/sbin:/usr/bin:/usr/sbin/:/usr/syno/bin:/usr/syno/sbin). Dies passiert bei einem cronjob nicht, so dass Programme nicht über die die Pfade (in der ja nicht gesetzten PATH-Variable) gefunden werden können. Schreibt man in sein cron-Skript nun den kompletten Pfad zu einem Programm mit hinein (z.B. /bin/date statt date), umgeht man dieses Problem.
 
ok, Danke, ich glaube jetzt habe ich es verstanden. Mein Script sollte also so aussehen:

#!/bin/sh
/bin/echo $(/bin/date) "Script UVR1611 ausgeführt" >>/volume1/web/log/cron.mylog
/usr/syno/bin/wget 'http://localhost/uvr1611/analogChart.php' -O /dev/null


Werde das mal so laufen lassen und sehen, ob sich was ändert.
Gruß, Merris
 
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