I had a very curious case on a developmental server where after a couple weeks, I realized the cronjobs were not running. The crontab was fine, the scripts and permissions were fine and could be manually executed. Seems like the issue was cron itself.
It took a bit of digging, and there was this obscure line highlighted in the man page. Much thanks to here for pointing me in the right direction.
Two things were wrong here.
1. The crond was stalled. Quietly. Check this first and start it if it’s stopped. Even if it’s running, consider restarting the service.
service crond status
service crond restart
2. Crontab needs an empty/newline at the end of the file in order to load.
My version of crontab does not match the one in the article (I’m on CentOS 6); but the newline was missing at the end. Oddly enough all the other servers that were fine had this blank/newline. Guess it’s pretty important, if not documented/deprecated.
At any rate, cron performs important user functions, so consider checking it from time to time.