Question

I have followed the suggestion in this question

as I am using Django, I have set the script to store date and time of each run of the script in the db, but no entry has been stored yet in the database.


Is there a way to figure out, other than typing "top" and searching through?

Was it helpful?

Solution

First, I would probably configure cron to mail yourself any output by using MAILTO:

In /etc/crontab:

MAILTO=username

Second, I usually add something to my script that (almost) cannot possibly fail, like the following:

#!/bin/sh
echo "$0 ran on `date +%c`" >> /tmp/crontab_test.log

# ... rest of program

If you're calling a python script directly from cron, you could do something similar or create a wrapper shell script.

OTHER TIPS

If you have sendmail installed, you can add the following to '/etc/aliases'

root: your_name@domain.com

After you do that, update the aliases running this command:

sudo newaliases

Cron will automatically email you every time a job is run. No need to specify that in the crontab file.

Also, make sure you test your email capabilities (e.g. make sure you are able to send emails from the server) and lastly, create a trivial cronjob and test if you receive an email.

Do not assume!

In addition to setting up cron to send email, you can send the output of cron to a seperate syslog log facility by adding the following to your /etc/syslog.conf.

# Log cron stuff 
cron.*                                                  /var/log/cron.log 

This should log a message to /var/log/cron.log each time a job is run.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top