How to run a python file using cron jobs

2019-01-10 11:31发布

问题:

Hi I have created a python file for example as file_example.py

The file will output the sensex value

Suppose the path of the file on linux system is /Desktop/downloads/file_example.py

and I normally will run the file like python file_example.py

But I want to set a cron job to run the python file every 2 min which is located at the above path

Can anyone please let me know how to do this

Edited Code:

I had edited the code and created a bash script with the name test.sh as indicated below

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

When I run the above file, the following error is displayed:

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

回答1:

Assuming you are using a unix OS, you would do the following.

edit the crontab file using the command

crontab -e

add a line that resembles the one below

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

this can be used to run other scripts simply use the path to the script needed i.e.

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

An explanation of the timing is below (add a star and slash before number to run every n timesteps, in this case every 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)


回答2:

You can use python-crontab module.

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

To create a new cron job is as simple as follows:

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)