Why is my crontab not running
Matthew Barrera
I have this cron
38 * * * * /bin/bash -l -c 'cd /var/rails/site/releases/20120705144335 && script/rails runner -e qa '\''Play.load_lists'\'''I have this cron under the a different user so I switch users to deploy
sudo su deploy
crontab -eand i see my cron then i tail the log under the root user
tail -n300 -f /var/log/syslogand I see my cron
Jul 5 11:38:01 ip-10-70-75-234 CRON[4971]: (deploy) CMD (/bin/bash -l -c 'cd /var/rails/site/releases/20120705144335 && script/rails runner -e qa '\''Play.load_lists'\''')
Jul 5 11:38:01 ip-10-70-75-234 CRON[4970]: (CRON) info (No MTA installed, discarding output)But the cron is either not running or there is a permission issue...When i run the task in the console it works great but not in the cron...any idea what i am missing
this is Ubuntu 12.04 LTS
Maybe i can log a more detailed list to somewhere to see the errors
51 Answer
CRON delivers the applications' output (stdout, stderr) via local mail. Ubuntu apparantly does not have an MTA (Mail Transfer Agent) installed by default these days. CRON prints a notification into the systems logfile whenever a delivery failed:
Jul 5 11:38:01 ip-10-70-75-234 CRON[4970]: (CRON) info (No MTA installed, discarding output)You can install an MTA, e.g. postfix, for internal (local) use only, e.g.
aptitude install postfixDuring the installation you will be asked what default configuration to use. You should select the Local only configuration.
Thereafter you can find the output of the applications ran by CRON using
tail -f /var/mail/<your_username>Of course you can also write the logging output to a dedicated log file or pipe/redirect the output to a file by using built-in shell functionality...
1