2012-08-02 20 views
37

Witam mam utworzony plik Pythona na przykład jako file_example.pyJak uruchomić plik python za pomocą crona

plik zostanie wyjściowa wartość Sensex

Załóżmy, że ścieżka do pliku na systemie Linux jest /Desktop/downloads/file_example.py

a ja normalnie będzie uruchomić plik jak python file_example.py

Ale chcę ustawić crona uruchomić plik python co 2 minuty, który znajduje się na powyższej ścieżce

Czy ktoś proszę dać mi znać, jak to zrobić

kod edytowany:

miałem edytowanego kodu i stworzył skrypt bash o nazwie test.sh jak wskazano poniżej

#!/bin/bash 
cd /Desktop/downloads/file_example.py 
python file_example.py 2>log.txt 

Kiedy uruchomić powyższy plik, wyświetlany jest następujący błąd:

sh-4.2$ python test.sh 
    File "test.sh", line 3 
    python test.py 2>log.txt 
      ^
SyntaxError: invalid syntax 
+1

Co zrobić, gdy dodasz swoje wezwanie do crontab? Co nie działa? – John3136

+0

@ John3136: crontab: instalacja nowego pliku crontab "/tmp/crontab.TdDFOh":1: zła minuta błędy w pliku crontab, nie można zainstalować. Czy chcesz ponowić tę samą edycję? –

+0

Wyświetla powyższy błąd, gdy próbowałem to zrobić w karcie cron/2 * * * * /Desktop/downloads/file_example.py –

Odpowiedz

47

Zakładając, że używasz systemu operacyjnego UNIX, wykonaj następujące czynności.

edytować plik crontab za pomocą polecenia

crontab -e 

dodać wiersz podobny do poniższego

*/2 * * * * /Desktop/downloads/file_example.py 

ten może być używany do uruchamiania innych skryptów po prostu użyć ścieżki do skryptu potrzebne tj

*/2 * * * * /path/to/script/to/run.sh 

Wyjaśnienie czasu jest poniżej (dodaj gwiazdkę i ukośnik przed liczba do uruchomienia co n taktów, w tym przypadku co 2 minuty)

* * * * * command to be executed 
- - - - - 
| | | | | 
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7) 
| | | ------- Month (1 - 12) 
| | --------- Day of month (1 - 31) 
| ----------- Hour (0 - 23) 
------------- Minute (0 - 59) 
+0

Powyższy kod jest przydatny, faktycznie kilka razy znalazłem, że tworzenie skryptów bash (z .sh rozszerzenie) i uruchamianie tych, czy mogę wiedzieć o tej koncepcji i oba są różne lub takie same –

+0

można uruchomić dokładnie tak samo, jak długo linia shebang, np. #!/usr/bin/sh jest zawarta w pliku –

+0

tak faktycznie Widziałem niektóre ścieżki w pliku tak zdezorientowany, w bash polecenia trzeba podać ścieżkę pliku, który ma być uruchomiony? –

20

Możesz użyć modułu python-crontab.

https://pypi.python.org/pypi/python-crontab

Aby utworzyć nowe zadanie cron jest tak proste, jak następuje:

from crontab import CronTab 
#init cron 
cron = CronTab() 

#add new cron job 
job = cron.new(command='/usr/bin/echo') 

#job settings 
job.hour.every(4) 
Powiązane problemy