Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run a python file using cron jobs

Tags:

python

shell

cron

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 
like image 496
Shiva Krishna Bavandla Avatar asked Aug 02 '12 09:08

Shiva Krishna Bavandla


People also ask

Can I run Python script from cron?

You'll learn in a bit what this table refers to. You should use Cron any time you want to automate something, like an OS job or a Python script. Needless to say, but an automated Python script can do basically anything. On Linux and macOS, the Crontab consists of six fields.

How do I schedule a Python script to run?

' in the Actions Tab. And give a suitable Name and Description of your task that you want to Automate and click on Next. Step 3: In the next step, you have to select at what time intervals your script should be executed. Select 'Daily' and click Next.


2 Answers

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) 
like image 159
olly_uk Avatar answered Oct 07 '22 09:10

olly_uk


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) 
like image 33
Guray Celik Avatar answered Oct 07 '22 09:10

Guray Celik