Cronjob Not Running

I had issues with cron. The jobs were not running, so it seemed. It turned out that they were in fact running. The jobs were firing off based on schedule. The problem was, cron didn’t have the correct path to the commands. I realized this when I looked at a couple of log files, in /var/mail and /var/log/syslog to look for clues. The fix was to include the path in cron.

Edit cron.

crontab -e

Add the shell and path at the top of the file.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Password Expiry

If you’re asked to change the password expiry or password inactivity for a Linux user, the following command will fix it. It’s ideal in situations where you don’t want the password to expire or you don’t want a user to go inactive. It’s also useful if you want a user to be running automated scripts. Here’s the chage command and its available options.

# chage -m 0 -M 99999 -I -1 -E -1 johndoe

-m 0 will set the minimum number of days between password change to 0
-M 99999 will set the maximum number of days between password change to 99999
-I -1 (number minus one) will set the “Password inactive” to never
-E -1 (number minus one) will set “Account expires” to never.

To validate a user options, run the following:

# chage --list johndoe
Last password change                                    : Apr 4, 2018
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7