Fixing Cron Not Executing
Recently I encountered an issue I hadn’t run into before. Specifically, my Cron Jobs were not running. Everything seemed correct and I could manually run the commands at the CLI. I’ve had some issue before with getting things to run because I wasn’t using the complete path for programs but this seemed to be something different.
The problem I found was that the root password needed to be changed. Running the following:
sudo grep CRON /var/log/syslog
Would output a long list of the same issue repeating over and over.
May 27 10:30:01 Webserver CRON: Authentication token is no longer valid; new one required May 27 10:39:01 Webserver CRON: Authentication token is no longer valid; new one required May 27 10:39:01 Webserver CRON: Authentication token is no longer valid; new one required May 27 10:40:01 Webserver CRON: Authentication token is no longer valid; new one required
When running the following command:
sudo chage -l root
Would output something like:
Password expires : never Password inactive : never Account expires : never
Which suggests the root password has never changed. So I ran the following command:
sudo passwd root
And set a new root password (which was the same as the old root password) and suddenly everything started working again. It felt like a really odd issue, especially considering I didn’t actually change the password, and as far as I could tell I had a root password. Plus the password wasn’t set to expire at all.
Anyway, I wrapped it off by doing an (optional) truncation of the system log. Since the file had become unwieldingly huge with the following.
sudo truncate -s 0 /var/log/syslog