Linux 服务器上的夏令时选项

mez*_*ezi 4 ntp timezone

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

$ ln -sf /usr/share/zoneinfo/Europe/London  /etc/localtime
Run Code Online (Sandbox Code Playgroud)

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

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

$cat /etc/sysconfig/clock
ZONE="Europe/London"
UTC=true
ARC=false
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

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

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

有任何想法吗?

R P*_*rin 10

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

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

$ date --utc
Fri Jun 28 14:02:43 UTC 2013
$ date
Fri Jun 28 10:02:45 EDT 2013
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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

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