Cron – Fix Environment Variables Not Found in .bashrc

bashrccronenvironment-variables

I have a very simple requirement which i tried looking for solution but couldn't get any standard defined solution . what i want to know is for my question below what is the correct solution.

Question: i am required to run a cronjob ( which is a python script ) using crontab.

using crontab -e i added this line to my cron file:

* * * * * /usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1

the script starts but it is using environment variables inside. i get an error in log file that the env vars are not defined?

where should i define my env vras? i even tried to define in .bashrc but still the same error. cronjob cannot find it.

what am i missing?

Best Answer

Write a small bash script mypythonscript consisting of:

#!/bin/bash
set ENVIRONMENT_VARIABLE_1=...
set ENVIRONMENT_VARIABLE_2=...
/usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1

Make it executable:

chmod +x mypythonscript

In the crontab replace the line by

* * * * * /path/to/mypythonscript
Related Question