Centos – cron running at different timezone and date command shows different time zone

centoscron

I have CentOS and when I run date command in shell it return me something like:

Thu Apr 28 14:08:20 GMT 2011

however cron jobs are running at PST time.Means if I specify

15 7 * * * command

it will run at 7 PST not 7 GMT . Please tell me why this is happening.

Thanks

Outputs of hwclock command:

/usr/sbin/hwclock --utc Cannot access the Hardware Clock via any known method.
Use the –debug option to see the details of our search for an access method.

And when I ran using debug:
/usr/sbin/hwclock --debug hwclock from util-linux-2.13-pre7 hwclock: Open of /dev/rtc failed, errno=2: No such file or directory. No usable clock interface found. Cannot access the Hardware Clock via any known method

Best Answer

More than likely not your problem, but worth a mention -- If your /etc/localtime changes after crond has loaded, it will continue to be stuck in the previous timezone. Simply restart/reload crond, and it will pick up this change.

Another 'gotcha' is that cron will adhere to the TZ environment variable. This can be set in-line in a crontab, affecting any lines that follow it, but it seems more likely that TZ is getting set in the environment that loads crond.

I just tried a couple variations (tweaking the hr/min fields) on the following to determine if/when these two jobs would be run. The output that gets stuffed into /tmp/tzout.localtime should also give you some hints about if $TZ is somehow getting set in the environment that's loading crond or not.

* * * * *     echo $TZ `date` >> /tmp/tzout.localtime
TZ=GMT
* * * * *     echo $TZ `date` >> /tmp/tzout.gmt

While I don't claim to know exactly where your problem lies, hopefully this sheds a little light on the solution!

Related Topic