web-dev-qa-db-fra.com

Comment exécuter un fichier python à l'aide de tâches cron

Salut, j'ai créé un fichier python par exemple comme file_example.py

Le fichier affichera la valeur sensex

Supposons que le chemin du fichier sur le système linux soit /Desktop/downloads/file_example.py

et je vais normalement exécuter le fichier comme python file_example.py

Mais je veux définir un travail cron pour exécuter le fichier python toutes les 2 minutes qui se trouve sur le chemin ci-dessus

Quelqu'un peut-il me faire savoir comment procéder

Code édité:

J'avais édité le code et créé un script bash avec le nom test.sh comme indiqué ci-dessous

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

Lorsque j'exécute le fichier ci-dessus, l'erreur suivante s'affiche:

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

En supposant que vous utilisez un système d'exploitation Unix, vous feriez ce qui suit.

éditez le fichier crontab en utilisant la commande

crontab -e

ajoutez une ligne qui ressemble à celle ci-dessous

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

cela peut être utilisé pour exécuter d'autres scripts, utilisez simplement le chemin d'accès au script nécessaire, c'est-à-dire.

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

Une explication du timing est ci-dessous (ajoutez une étoile et une barre oblique avant le numéro pour exécuter tous les n pas de temps, dans ce cas toutes les 2 minutes)

* * * * * 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)
52
olly_uk

Vous pouvez utiliser le module python-crontab.

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

Pour créer un nouveau travail cron est aussi simple que suit:

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)
28
Guray Celik