我不知道如何解决这个问题。在我的 /etc/TIMEZONE 文件中,TZ 变量具有正确的值(加拿大/东部),但仍然显示 -1 小时滞后。我还应该去哪里寻找?
4 回答
你应该检查你的硬件时钟是什么。我建议这样做:
- 正确设置 UTC 时间。即(示例中为凌晨 5 点):
$ 日期 -u -s "05:00"
UTC 时间 2010 年 4 月 29 日星期四 05:00:00 AM
- 相应地设置硬件时钟(SPARC 为 tod,x86 为 rtc):
$ rtc -c ('-c' 参数正确设置 DST)
- 再次检查日期:
$日期
2010 年 4 月 29 日星期四 02:00:11 AM 艺术
问候,
莱安德罗。
你的机器是最新的补丁吗?2007 年北美的 DST 处理发生了变化。在我的 Solaris 10 上,我有:
-bash-3.00$ ls -l /usr/share/lib/zoneinfo/Canada/Eastern -rw-r--r-- 2 root bin 1252 2008 年 7 月 14 日 /usr/share/lib/zoneinfo/Canada/Eastern -bash -3.00$ openssl md5 /usr/share/lib/zoneinfo/Canada/Eastern MD5(/usr/share/lib/zoneinfo/Canada/Eastern)= 82980b1345aab5a97d90307edfefb6da
您是使用 NTP 自动设置时间还是手动设置时间?
沃尔克
当您实际登录主机时,您的 shell 会话中设置了哪个时区?
如果您的 shell 会话中的时区与 /etc/TIMEZONE 不匹配,那么您可能需要重新启动以使时区更改生效。
如果你的 shell 会话中的时区是正确的,但实际时间是错误的,那么要么系统时钟关闭,要么时区定义文件有误。您可以运行“date -u”来获取 UTC 时间,这将帮助您确定实际时钟是否错误。
那是要编辑的正确文件。唯一需要的其他步骤是重新启动。需要重新启动的原因是该init
进程在启动时会读取 TZ 的值,并且所有其他进程都继承该值。据我所知,如果不完全重新启动,就无法使更改生效。
另外,请确保/etc/TIMEZONE
符号链接到/etc/default/init
. 例如:
[root@server:/etc]ls -l /etc/ | grep TIMEZONE
lrwxrwxrwx 1 root root 14 Jul 7 2008 TIMEZONE -> ./default/init