Bash Pythonscript durch shellscript in cronjob starten

Woodz

Lieutenant
Registriert
Apr. 2009
Beiträge
687
Hallo.

Ich bin hier gerade am Verzweifeln. Ich versuche ein shellscript via cron zu starten, dass wiederum ein Pythonscript starten soll:

Eintrag in crontab:
Bash:
45 * * * * /Pfad/zum/Shellscript.sh

Inhalt des Shellscript.sh:
Bash:
/Pfad/zum/Pythonscript.py

Trotz gesetzter Ausführungsrechte (755) für alle Dateien wird der cronjob nicht ausgeführt. Die shebang ist im Pythonscript gesetzt, ebenso in den shellscripten. Auch wenn jetzt evtl. wieder Diskussionen über Sinn und Unsinn entbrennen werden, frage ich mich, warum das Ganze nicht funktioniert.

Beste Grüße
 
Wird das Pythonscript ausgeführt wenn du das Shellscript manuel startest?

Hast du das .sh Script mit chmod +x ausführbar gemacht?
 
@elTiburon Das Shellscript besitzt die Rechte -rwx r-x r-x und ja es wird ausgeführt - seltsamerweise. :)
@Sn0oze Meinst Du der Interpreter muss dem Pythonscript immer vorangestellt sein, auch wenn innerhalb des Pythonscripts der Interpreter mit "#!/usr/bin/env python3" schon gesetzt ist?
 
Nein, aber die Crontab Umgebung kann von der Shell Umgebung abweichen. Kann man zwar konfigueren, aber wenn du das Script dann z.B. auf einem anderen System ausführst, stehst du vor dem selben Problem. Habe mir deshalb angewöhnt immer den Interpreter anzugeben.
Ergänzung ()

Wenn du #!/usr/bin/python3 nimmst wird es höchstwahrscheinlich auch gehen.
 
  • Gefällt mir
Reaktionen: adAstra
Einfach mal stdout und stderr in (je) irgendeine Datei umleiten und dann das ganze Konstrukt ausführen lassen.

Irgendwelche Meldungen gibt es immer, wenn etwas schief läuft. Man sieht sie bei cron nur standardmäßig nicht.
 
Ich werde es morgen mal versuchen. Melde mich dann nochmal. Danke bis hierher.
 
Ok, es hat funktioniert. Ich muss in meinem Shellscript, welches das Pythonscript startet, den verwendeten Interpreter angeben. Da dieser bei mir unter anaconda3 liegt, sieht das Ganze dann wie folgt aus:

Bash:
/home/user/anaconda3/bin/python3 /Pfad/zum/Pythonscript.py

Nochmals vielen Dank an Alle
 
Einfach den Interpreter ins Pythonscript reinschreiben, Stichwort Shebang.
 
Zurück
Oben