Cronjob Raspberry Pi Zero

Overkee

Lieutenant
Registriert
Okt. 2015
Beiträge
930
Hallo,
seit kurzem bin ich auch Besitzer eines Raspberry Pi's. Als erstes habe ich mir eine Steuerung meiner Steckdose und der damit verbundenen Lampe nach Sonnenuntergang gebastelt.

Die Scripte funktionieren auch tadellos, solange ich sie manuell starte. Das möchte ich natürlich nicht immer tun und habe mir deshalb Cronjobs über
Code:
sudo crontab -e
angelegt:

Code:
# m h dom mon dow    command
@reboot python /home/pi/dash.py
@reboot python /home/pi/sun-switch.py
5 * * * * python /home/pi/sun-switch.py
00 00 * * * node /home/pi/suncalc.js

dash.py verwandelt einen Dash-Button von Amazon in einen Lichtschalter
sun-switch.py schaltet die Steckdose bzw. das Licht bei Sonnenuntergang ein und um 23 Uhr wieder aus
suncalc.js berechnet die Zeit des Sonnenunterganges

Das Script sun-switch.py soll einmal beim Start des Pi's und danach alle 5 Minuten ausgeführt werden.
suncalc.js soll jeden Tag um Mitternacht ausgeführt werden.

Leider funktioniert von den Cronjobs nur der für das Dash-Button Script. sun-switch.py funktioniert nur wenn ich es manuell über die Konsole aufrufe.

Kann mir jemand helfen? Sind die Cronjobs nicht richtig angelegt?
 
Hi,

der typische Fehler bei crontab-scripten ist dass der pfad nicht passt.
Probier mal ob das script auch geht wenn du es z.B von / aus als root ausführst.

Alternativ dazu einfach das Kommando als "cd /home/pi/ ; python sun-switch.py" anlegen.

Ebenso kannst du das Script mit "python /home/pi/sun-switch.py 2>&1 1>/home/pi/sun-switch.log" aufrufen um den output zu bekommen.
 
Also laut /var/log/syslog wird das Script sauber alle 5 Minuten ausgeführt, allerdings zusätzlich mit einer Meldung mit der ich nichts anfangen kann. Habe die Zeile entsprechend angepasst:
Code:
*/5 * * * * python /home/pi/sun-switch.py

Die Datei /home/pi/sun-switch.log ist übrigens leer.

Code:
Jan  4 21:25:01 zero CRON[1161]: (root) CMD (python /home/pi/sun-switch.py 2>&1 1>/home/pi/sun-switch.log)
Jan  4 21:25:01 zero CRON[1157]: (CRON) info (No MTA installed, discarding output)
Jan  4 21:30:01 zero CRON[1432]: (root) CMD (python /home/pi/sun-switch.py 2>&1 1>/home/pi/sun-switch.log)
Jan  4 21:30:01 zero CRON[1428]: (CRON) info (No MTA installed, discarding output)
Jan  4 21:35:01 zero CRON[1712]: (root) CMD (python /home/pi/sun-switch.py 2>&1 1>/home/pi/sun-switch.log)
Jan  4 21:35:01 zero CRON[1708]: (CRON) info (No MTA installed, discarding output)

Wenn ich mich per SSH aufwähle, im Home-Verzeichnis vom User Pi dann python sun-switch.py eingebe funktioniert alles wie es soll - nur als Cronjob nicht :(
 
Zuletzt bearbeitet:
Hmm...komisch.

Kannst du mir eines der scripte das nicht geht zur verfügung stellen um selbst ein paar Dinge probieren zu können?
 
Hallo Zeroflow,

den Vorschlag die Ausgaben zu "loggen" ist super. Jetzt bin ich nicht das LinuxAss. Ich hab aber meine cronjobs immer wie folgt ergänzt:
Code:
*/15  *   *    *   *    /opt/tue/etwas/sinnvolles.sh >/tmp/logging.log 2>&1
Ist die Reihenfolge "2>&1" und ">" egal? Ich bin mir da nicht ganz sicher....

Desweitern ergänze mal "python" in deinem Aufruf mit dem "/pfad/zum/interpreter/python".

Den Pfad kann man mit
Code:
which python
rausfinden ....
 
Ich habe den Fehler gefunden und ich schäme mich dafür diesen Thread aufgemacht zu haben :stock:

Ich habe die neuen Tasks in
Code:
sudo crontab -e
eingetragen also für den Benutzer root. Für das Script dash.py ist das auch notwendig, nur die anderen beiden können damit nichts anfangen.

Ich habe die anderen Tasks nun in
Code:
crontab -e
also für den Benutzer Pi eingetragen und siehe da: Es funktioniert auf anhieb :volllol:

Manchmal kann die Welt so einfach sein...

Falls denoch Interesse besteht, hier die Scripte: https://www.magentacloud.de/lnk/DWgUSKRp
 
Zuletzt bearbeitet:
Interessant warum es mit root nicht geht - ich hab jetzt nicht genau nachgeschaut aber es könnte sein wenn du als relativer pfad aufs home verzeichnis gehst oder so
 
Zurück
Oben