Linux 服务器上的夏令时选项

Linux 服务器上的夏令时选项

我的 CentOS 服务器没有更新显示正确的时间。我已经设定

$ ln -sf /usr/share/zoneinfo/Europe/London  /etc/localtime

我仍然是格林威治标准时间。

我确实在 中看到了以下条目/etc/sysconfig/clock

$cat /etc/sysconfig/clock
ZONE="Europe/London"
UTC=true
ARC=false

但它仍然没有显示正确的时间。

NTP 正在该服务器上运行:

$ ntpq -p
remote           refid      st t when poll reach   delay   offset  jitter
+         IP Address      3 u   42 1024  377    0.476   63.077   0.001
*         IP Address      3 u   53 1024  377    1.183   30.425   0.001

ntp 服务器有正确的时间。这些是 Windows 域控制器。

我已经从这里查看了答案https://serverfault.com/questions/267629/configure-centos-with-ntp但这对这个案子没有帮助。

有任何想法吗?

答案1

区分问题:是时区配置错误,还是时间配置?您可以使用一些工具、日期和 zdump 来确定这一点。

如果 date 报告了正确的 UTC 时间,那么您就知道问题存在于时区设置中,而不是内部时间设置中。

$ date --utc
Fri Jun 28 14:02:43 UTC 2013
$ date
Fri Jun 28 10:02:45 EDT 2013

zdump 将打印每个指定时区所在区域的当前时间(从内部 UTC 时间提取)

$ zdump /usr/share/zoneinfo/Europe/London /usr/share/zoneinfo/GMT
/usr/share/zoneinfo/Europe/London  Tue Jun 28 15:02:49 2013 BST
/usr/share/zoneinfo/GMT            Tue Jun 28 14:02:49 2013 GMT

如果 Europe/London zoneinfo 文件生成与 GMT zoneinfo 文件相同的时间,则 Europe/London 或 GMT 的内容不正确。如果是这种情况,我会感到惊讶,但如果是这样,请从 rpm 重新安装该文件,或者以其他方式更正它。我相信有程序可用于读取和输出区域信息内容,但不知道它们,因为我刚刚编写了自己的程序。

如果您遇到内部 UTC 时间正确且 zoneinfo 文件正确,但日期仍报告 GMT 的情况,则本地时间的设置不正确或过时。man tzset会告诉您比您想知道的本地时间转换如何发生更多的信息,但是请执行env并查看环境变量 TZ、TZDIR 的设置。最后将本地时间配置文件与所需的设置进行比较:cmp /etc/localtime /usr/share/zoneinfo/Europe/London

相关内容