我的 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=falseRun 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.001Run 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