it-swarm.com.de

Führen Sie python script über crontab aus

Ich habe versucht, ein python Skript unter Verwendung der Linux-crontab auszuführen, aber ich habe viele Lösungen gefunden, von denen keine funktioniert. Beispiel: Bearbeiten Sie das Anacron unter /etc/cron.d oder benutze crontab -e.

Ich möchte dieses Skript alle 10 Minuten ausführen.

Welche Datei muss ich bearbeiten, um dies zu konfigurieren?

Danke im Voraus

[~ # ~] edit [~ # ~]

Ich habe diese Zeile am Ende der Datei eingefügt, aber es ändert sich nichts. Muss ich einen oder mehrere Dienste neu starten?

*/2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py

EDIT [2]

Leute, ich habe den Quellcode befolgt. Möglicherweise liegt hier ein Problem vor, aber wenn ich es manuell ausführe, funktioniert es:

http://Pastebin.com/qsWHNzqT

80
guisantogui

Benutze einfach crontab -e und folge dem Tutorial hier:

http://adminschoice.com/crontab-quick-reference

In Punkt 3 finden Sie eine Anleitung zum Festlegen der Frequenz.

Basierend auf Ihren Anforderungen sollte es effektiv sein:

*/10 * * * * /usr/bin/python script.py
118
Raul Marengo

Schreibe dein Skript in eine Datei foo.py beginnen mit

#!/usr/bin/python

geben Sie dann die Ausführungsberechtigung für dieses Skript mit

chmod a+x foo.py

und benutze den vollen Pfad deines foo.py Datei in Ihrem crontab.

Siehe Dokumentation von execve (2) , das Shebang behandelt

56

Wie du schon erwähnt hast ändert nichts,

Zunächst sollten Sie sowohl stdin als auch stderr von der Ausführung von crontab wie folgt umleiten:

*/2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py > /tmp/listener.log 2>&1

anschließend können Sie die Datei /tmp/listener.log anzeigen, um festzustellen, ob das Skript wie erwartet ausgeführt wurde.

Zweitens raten Sie mal, was Sie meinen etwas ändern indem Sie die von Ihrem Programm erstellten Dateien ansehen:

f = file('counter', 'r+w')
json_file = file('json_file_create_server.json','r+w')

der obige crontab-Job erstellt diese Datei nicht im Verzeichnis /home/souza/Documets/Listener, da der cron-Job in diesem Verzeichnis nicht ausgeführt wird und Sie den relativen Pfad im Programm verwenden. Um diese Datei im Verzeichnis /home/souza/Documets/Listener Zu erstellen, reicht der folgende Cron-Job aus:

*/2 * * * * cd /home/souza/Documets/Listener && /usr/bin/python listener.py > /tmp/listener.log 2>&1

Wechseln Sie in das Arbeitsverzeichnis und führen Sie das Skript von dort aus. Anschließend können Sie die an Ort und Stelle erstellten Dateien anzeigen.

15
greenqy