Fix: Cron Jobs Failing Silently

By default cron discards all output if no MAILTO is configured or if the mail system isn't set up. Failures disappear without a trace.

Log output with timestamps
# Append stdout and stderr to a log file:
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

# With timestamps:
0 2 * * * date >> /var/log/backup.log; /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
Log rotation — /etc/logrotate.d/cron-backup
/var/log/backup.log {
    weekly
    rotate 8
    compress
    missingok
    notifempty
}

Test in cron-like environment

env -i HOME=/root PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin $
  /usr/local/bin/your-script.sh

Visualise your crontab to detect timing and overlap issues.

Open Tool →

Related Glossary Terms