我的 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