2012-08-02 17 views
37

Ciao ho creato un file di pitone per esempio come file_example.pyCome eseguire un file Python usando cron

Il file di output il valore Sensex

Supponiamo che il percorso del file sul sistema Linux è /Desktop/downloads/file_example.py

e normalmente correrò il file come python file_example.py

Ma voglio impostare un job cron per eseguire il file python ogni 2 min, che si trova nel percorso sopra

Qualcuno può per favore fatemelo sapere come fare questo

A cura Codice:

avevo modificato il codice e ha creato uno script bash con il nome test.sh come di seguito indicato

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

Quando eseguo il file di cui sopra, viene visualizzato il seguente errore:

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

Che cosa fa quando si aggiunge la chiamata al crontab? Cosa non funziona? – John3136

+0

@ John3136: crontab: installazione di new crontab "/tmp/crontab.TdDFOh":1: errati errori nel file crontab, impossibile installare. Vuoi riprovare la stessa modifica? –

+0

Ha visualizzato l'errore sopra quando ho provato a farlo in cron tab/2 * * * * /Desktop/downloads/file_example.py –

risposta

47

Supponendo che si stia utilizzando un sistema operativo UNIX, si dovrebbe fare quanto segue.

modificare il file crontab con il comando

crontab -e 

aggiungere una riga che assomiglia a quella di sotto

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

questo può essere usato per eseguire altri script è sufficiente utilizzare il percorso dello script necessario cioè

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

Una spiegazione dei tempi è sotto (aggiungi una stella e barra prima il numero di eseguire ogni n Timesteps, in questo caso ogni 2 minuti)

* * * * * 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

Il codice precedente è utile, in realtà alcune volte ho trovato che creare script bash (con .sh estensione) e eseguendo quelli, posso sapere di questo concetto ed entrambi si differenziano o lo stesso –

+0

è possibile eseguirli esattamente allo stesso modo fino a quando la linea di shebang, ad esempio #!/usr/bin/sh è incluso nel file –

+0

sì effettivamente avevo visto alcuni percorsi nel file in modo confuso, in bash il comando deve dare il percorso del file che deve essere eseguito? –

20

È possibile utilizzare il modulo python-crontab.

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

Per creare un nuovo job cron è semplice come segue:

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) 
Problemi correlati