Seite 1 von 1

Crontab führt script nicht aus

Verfasst: Dienstag 14. Juni 2022, 21:06
von spryder
Hallo

Ich habe folgendes Problem, ich habe mir ein kleine Script in Python geschrieben welches ich gerne zu jeder vollen Stunde ausführen möchte.
Nun habe ich unter sudo su crontab -e einen Cronjob angelegt
0 * * * * /usr/bin/python3 /home/sript.ph
Nur leider wird dieses nicht ausgeführt und ich weil leider nicht so ganz warum. ich bin jetzt kein Programmierer und baster mehr als ich schreibe :lol:

Vielen Dank vorab

Re: Crontab führt script nicht aus

Verfasst: Dienstag 14. Juni 2022, 21:25
von __blackjack__
@spryder: Das liegt wirklich im `/home`-Verzeichnis? Und endet mit `*.ph`? Und ``sudo su``? Was sagt das Log vom crond denn dazu?

Re: Crontab führt script nicht aus

Verfasst: Dienstag 14. Juni 2022, 22:19
von __deets__
Und heißt sript?

Re: Crontab führt script nicht aus

Verfasst: Mittwoch 15. Juni 2022, 19:16
von spryder
__deets__ hat geschrieben: Dienstag 14. Juni 2022, 22:19 Und heißt sript?
tut mir leid habe das c verfehlt :D

Das script.py liegt in home/pi/script.py, die Sache ist auch das wenn ich das direkt im Terminal eingebe dann wird das script ausgeführt.
Also mit
python3 /home/pi/script.py
Via Crontab geht es komischerweise nicht, ich habe was gelesen mit Rechte Vergabe und die Datei ausführbar machen mit chmod +x?

Über Google habe ich rausgefunden man soll als sudo den Crontab -e ausführen mit das script ausgeführt wir.
__blackjack__ hat geschrieben: Dienstag 14. Juni 2022, 21:25 @spryder: Das liegt wirklich im `/home`-Verzeichnis? Und endet mit `*.ph`? Und ``sudo su``? Was sagt das Log vom crond denn dazu?
natürlich ist es eine .py Datei leider hatte ich kleine Tippsfehler :oops:

Re: Crontab führt script nicht aus

Verfasst: Mittwoch 15. Juni 2022, 19:30
von Sirius3
Braucht Dein Skript wirklich root-Rechte?
Das einfachste wäre, die Standardausgabe in eine Datei umzuleiten, um die Fehlermeldungen lesen zu können:

Code: Alles auswählen

0 * * * * /usr/bin/python3 /home/pi/script.py >>/home/pi/script.log &2>1

Re: Crontab führt script nicht aus

Verfasst: Mittwoch 15. Juni 2022, 19:40
von spryder
Nein ich denke nicht das es root Rechte braucht das es nur ein pyautogui script ist welches automatisiert einige befehle abarbeitet.

Ich habe deinen Code 1:1 übernommen leider bleibt die Log Datei leer.

Re: Crontab führt script nicht aus

Verfasst: Mittwoch 15. Juni 2022, 20:22
von sparrow
pyautogui?
Grafische Oberfläche?
Mein Wissen über Linux mit einer Oberfläche ist etwas eingerostet, aber dann solltest du mal schauen, ob cron überhaupt Dinge ausführen kann, die mit dem X-System zu tun haben - und wenn ja, was man dafür tun muss. Denn das Script wird ja nicht automatisch in der grafischen Umgebung gestartet.

Ggf. bietet auch das Desktop-Environment eine Möglichkeit an, Scripte periodisch auszuführen, die eine grafische Oberfläche brauchen.

Re: Crontab führt script nicht aus

Verfasst: Mittwoch 15. Juni 2022, 23:57
von Dennis89
Hallo,

bin gerade nur noch am Handy, aber im Falle eines GUI sollte dich das Stichwort „*.desktop -Datei“ auf den richtigen Weg bringen.

Grüße
Dennis

Re: Crontab führt script nicht aus

Verfasst: Donnerstag 16. Juni 2022, 10:43
von nezzcarth
Nebenfrage: Was automatisiert das Skript denn? GUIs sind eigentlich dafür gedacht, von Menschen bedient zu werden. Oft gibt es zur Automatisierung bessere Lösungen, als eine menschliche Benutzung zu simulieren, insb. unter Linux/Unix.

Re: Crontab führt script nicht aus

Verfasst: Donnerstag 16. Juni 2022, 16:57
von hyle
@spryder
Du musst in dem Fall angeben auf welchem Ausgabegerät das Skript arbeiten soll. Die Standardausgabe wäre DISPLAY=:0, falls die Ausgabe an einem weiteren Monitor oder dem DSI-Port sein sollte, dann könnte es auch DISPLAY=:1 sein. Am besten kann man das per SSH testen, da muss man nicht immer eine Stunde warten. :D

Also:
crontab -e (ohne sudo!)

Code: Alles auswählen

0 * * * * DISPLAY=:0 /usr/bin/python3 /home/pi/script.py

Re: Crontab führt script nicht aus

Verfasst: Freitag 17. Juni 2022, 16:32
von spryder
nezzcarth hat geschrieben: Donnerstag 16. Juni 2022, 10:43 Nebenfrage: Was automatisiert das Skript denn? GUIs sind eigentlich dafür gedacht, von Menschen bedient zu werden. Oft gibt es zur Automatisierung bessere Lösungen, als eine menschliche Benutzung zu simulieren, insb. unter Linux/Unix.
Es soll auf dem geöffnet Browser einige Klicks ausführen und die Seite regelmäßig aktualisieren. Hättest du da eine andere Idee dies umzusetzen?

Re: Crontab führt script nicht aus

Verfasst: Freitag 17. Juni 2022, 16:48
von Sirius3
Warum muß der Browser geöffnet sein? Cronjobs laufen ja im Hintergrund. Kannst Du das, was Du da machen willst, nicht mit requests lösen?

Re: Crontab führt script nicht aus

Verfasst: Freitag 17. Juni 2022, 17:25
von spryder
Sirius3 hat geschrieben: Freitag 17. Juni 2022, 16:48 Warum muß der Browser geöffnet sein? Cronjobs laufen ja im Hintergrund. Kannst Du das, was Du da machen willst, nicht mit requests lösen?
bestimmt wenn ich wüsste wie :lol: :lol:

Re: Crontab führt script nicht aus

Verfasst: Samstag 18. Juni 2022, 08:09
von spryder
So ich habe es jetzt geschafft und es klappt für meine Zwecke wunderbar.

Ich habe mein script wie von @hyle beschrieben im crontab mit dem Zusatz "DISPLAY=:0" automatisiert.

Vielen dank nochmal an alle für eure Hilfe