Доброго времени суток.
Сабж. После перевода часов cron стал выполнять задачи на час раньше, чем нужно
[root@vm-hwmon-ibm ~]# cat /var/spool/cron/viosmon
00 8 * * * /home/viosmon/viosmon.sh
[root@vm-hwmon-ibm ~]# grep viosmon.sh /var/log/cron
Oct 26 07:00:01 vm-hwmon-ibm crond[30144]: (viosmon) CMD (/home/viosmon/viosmon.sh)
Oct 27 07:00:01 vm-hwmon-ibm crond[4354]: (viosmon) CMD (/home/viosmon/viosmon.sh)
Oct 28 07:00:01 vm-hwmon-ibm crond[11036]: (viosmon) CMD (/home/viosmon/viosmon.sh)
[root@vm-hwmon-ibm ~]# grep viosmon.sh /var/log/cron.1
Oct 19 08:00:01 vm-hwmon-ibm crond[8506]: (viosmon) CMD (/home/viosmon/viosmon.sh)
Oct 20 08:00:01 vm-hwmon-ibm crond[27302]: (viosmon) CMD (/home/viosmon/viosmon.sh)
Oct 21 08:00:01 vm-hwmon-ibm crond[9632]: (viosmon) CMD (/home/viosmon/viosmon.sh)
Oct 22 08:00:01 vm-hwmon-ibm crond[16588]: (viosmon) CMD (/home/viosmon/viosmon.sh)
Oct 23 08:00:01 vm-hwmon-ibm crond[23876]: (viosmon) CMD (/home/viosmon/viosmon.sh)
Oct 24 08:00:01 vm-hwmon-ibm crond[30327]: (viosmon) CMD (/home/viosmon/viosmon.sh)
Oct 25 08:00:01 vm-hwmon-ibm crond[4347]: (viosmon) CMD (/home/viosmon/viosmon.sh)
При этом я абсолютно уверен, что обновления таймзон были установлены, и с тех пор хост был перезагружен, т.е. при запуске cron уже была установлена актуальная таймзона
[root@vm-hwmon-ibm ~]# grep tz /var/log/rpmpkgs.2
tzdata-2014g-1.el5.x86_64.rpm
[root@vm-hwmon-ibm ~]# ls -l /var/log/rpmpkgs.2
-rw-r--r-- 1 root root 31784 Oct 18 04:02 /var/log/rpmpkgs.2
[root@vm-hwmon-ibm ~]# zdump -v /etc/localtime | grep 2014
/etc/localtime Sat Oct 25 21:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 MSK isdst=0 gmtoff=14400
/etc/localtime Sat Oct 25 22:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 MSK isdst=0 gmtoff=10800
[root@vm-hwmon-ibm ~]#
[root@vm-hwmon-ibm ~]# uptime
10:06:40 up 3 days, 2:33, 3 users, load average: 0.09, 0.10, 0.09
[root@vm-hwmon-ibm ~]# date
Tue Oct 28 10:06:42 MSK 2014
[root@vm-hwmon-ibm ~]# date -u
Tue Oct 28 07:06:43 UTC 2014
Что может быть причиной такого странного поведения cron?
Пока основное подозрение в том, что время модификации crontab'а - до перевода, а cron ведёт какую-то свою базу, в utc, и обновляет её при модификации crontab'ов.
Выполнил
[root@vm-hwmon-ibm ~]# ls -l /etc/crontab /var/spool/cron/viosmon
-rw-r--r-- 1 root root 564 Mar 19 2014 /etc/crontab
-rw------- 1 viosmon root 37 Mar 25 2014 /var/spool/cron/viosmon
[root@vm-hwmon-ibm ~]# touch /etc/crontab /var/spool/cron/viosmon
[root@vm-hwmon-ibm ~]# tail -n2 /var/log/cron
Oct 28 10:04:01 vm-hwmon-ibm crond[5009]: (*system*) RELOAD (/etc/crontab)
Oct 28 10:04:01 vm-hwmon-ibm crond[5009]: (viosmon) RELOAD (cron/viosmon)