Using Cron to run a python program

vagrantbrad at vagrantbrad at
Thu Nov 24 17:42:28 CET 2005

You were right!!  I had a relative path to the update.log file, so I
looked in the home path of the cron environment and found the
update.log file that the cron job was writing to.  I updated my program
to point to the absolute path of the update.log file that I wanted the
logs written to, and now it works.


Steve Holden wrote:
> Carsten Haese wrote:
> > On 23 Nov 2005 16:23:11 -0800, vagrantbrad wrote
> >
> >>I'm using python 2.4 running on Fedora Core 4.  I have written a python
> >>program called that checks the external ip address of my
> >>cable internet connection, and on change, will update the dns records
> >>at my dns provider, zoneedit.  So basically, I've setup dynamic dns
> >>using python.  Once the ip compare and/or update is complete, I log the
> >>results to a text file called update.log.  When I run the program in
> >>a bash shell with the command "python", the program runs fine
> >>and the results are appended to update.log.  When I run this program
> >>as a cron job under the root user with the previously mentioned
> >>command, the program runs without errors but does not append an
> >>entry to the log.  The permissions on the update.log file should not
> >>be an issue since I'm running the cron job as root, but I've given
> >>root write permissions just to be safe.  What would cause the
> >>logging to work at a command prompt but fail in cron?  I'm not
> >>getting any errors in the cron logs or /var/spool/mail/root.
> >
> >
> > You're not giving us much detail about your script, so we can only guess. My
> > guess is that your python script is either not invoked at all or it dies
> > (raises an exception) before appending to the update.log.
> >
> > You should keep in mind that cron jobs don't run in a normal login shell,
> > don't have the normal environment variables, and are not attached to a tty.
> > Any of those factors can conceivably cause a script to fail under cron when it
> > works fine from a shell.
> >
> Since we're guessing, *my* guess would be that the cron-triggered runs
> are running in some directory other than the one the manually-triggered
> jobs are, and that there is a separate update.log file in that directory.
> The fix, of course, would be to use an absolute path to identify the log
> file (if I'm right).
> regards
>   Steve
> --
> Steve Holden       +44 150 684 7255  +1 800 494 3119
> Holden Web LLC           
> PyCon TX 2006        

More information about the Python-list mailing list