Crontab nicht ausgeführt Python-Skript
crontab
fehlschlägt, führen Sie ein Python-Skript. Die Befehlszeile, die ich benutze, um führen Sie das Python-Skript ist ok.
Dies sind die Lösungen, die ich versucht hatte:
- hinzufügen
#!/usr/bin/env python
an der Spitze dermain.py
- hinzufügen
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
obencrontab
chmod 777
zu denmain.py
Dateiservice cron restart
meine crontab:
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
*/1 * * * * python /home/python_prj/main.py
und das Protokoll in /var/log/syslog:
Nov 6 07:08:01 localhost CRON[28146]: (root) CMD (python /home/python_prj/main.py)
sonst nichts.
Den main.py
Skript ruft einige Methoden aus anderen Modulen unter python_prj
, spielt das eine Rolle?
Jemand kann mir helfen?
- haben Sie versucht, "/usr/bin/env/python /home/python_prj/main.py" in Ihrem cron-Befehl?
- Vielleicht ist dein script abstürzt, bevor Sie es bekommen können, nichts getan, für was auch immer Grund: fehlende Rechte, Ausführung in die falsche cwd?
- Ich habe versucht, /usr/bin/env/python, noch kein Glück
- leiten Sie die Ausgabe des Skripts in eine Datei
command >> /path/to/output.log 2>&1
sonst E-Mails, die cron sendet. - vielen Dank für Ihre Antwort, ich habe versucht, die Ausgabe.log, aber es gibt nichts in dieser Datei.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, tut es. Alle Module müssen auffindbar sein zur Laufzeit. Sie können dies erreichen, gibt es mehrere Möglichkeiten, aber die am besten geeignete sein könnte, um die PYTHONPATH-variable in deiner crontab.
Möchten Sie vielleicht auch, um die MAILTO-variable in der crontab so erhalten Sie E-Mails mit jedem tracebacks.
[update] hier ist die oben auf meiner crontab:
(ausführen von cleanup-Aktionen alle 10 Minuten, außer am Anfang der Stunde).
Jede Datei zugreifen, die Sie in Ihren Skripts? Und wenn ja, benutzt du relative Pfade (oder auch: kein expliziter Pfad) in deinem Skript?
Beim ausführen von der Kommandozeile, der Ordner ist "Ihr Weg", wo Sie starten das script aus. Bei der Ausführung von cron, 'Ihr Pfad' kann unterschiedlich sein, je nach Umgebungsvariablen.
So versuchen Sie mit absolute Pfade zu den Dateien, die Sie zugreifen.
Prüfen Sie die Berechtigungen für das Skript. Stellen Sie sicher, dass es die ausführbare Datei von cron-- chmod +x main.py.