Where Are Cron Logs and Did My Job Run?
To confirm whether cron even tried to run your job, look at the system log, not your script. On Debian/Ubuntu run grep CRON /var/log/syslog; on RHEL/Fedora run journalctl -u crond. If you see a line for your command, cron fired and any failure is in the command itself; if there is no line, the schedule or the crontab is the problem.
Find the cron log for your system
- Debian / Ubuntu:
grep CRON /var/log/syslog(older installs also have/var/log/cron.logif enabled in/etc/rsyslog.d/50-default.conf). - RHEL / CentOS / Fedora:
journalctl -u crondorgrep CRON /var/log/cron. - Any systemd host:
journalctl -u cron -u crond --since "1 hour ago".
Read what the line means
A line like CMD (/path/to/script.sh) proves cron executed the command. If the job still "did nothing", the failure is inside your script — capture it by appending >>/tmp/job.log 2>&1 to the cron line so both stdout and stderr are saved.
No CRON line at your scheduled minute means cron never fired: check the schedule fields, that the crontab was saved (crontab -l), and that the daemon is running (systemctl status cron).
FAQ
How do I know if my cron job actually ran?
Search the system log: grep CRON /var/log/syslog (Debian/Ubuntu) or journalctl -u crond (RHEL/Fedora). A CMD line at your scheduled time proves cron executed it.
Why is there no cron log at all?
Some minimal or container images do not run rsyslog. Use journalctl -u cron, or add explicit logging to the job itself with >>/tmp/job.log 2>&1.
Where does cron send my job's output?
By default to local mail for the user (often unread). Redirect it yourself: append >>/var/log/myjob.log 2>&1 to the crontab line to keep stdout and stderr.