我的服务器上的时间已经同步了几个星期,然后我们上周重启了服务器,今天它的时间差了 10 分钟。我执行了“sudo ntpdate ntp.ubuntu.com”,结果如下:
4 Oct 14:22:08 ntpdate[17734]: the NTP socket is in use, exiting
我猜这意味着它已经在运行了...但是为什么当我重新启动服务器时它没有运行?
更新
/etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server ntp.ubuntu.com
server 0.north-america.pool.ntp.org
server 1.north-america.pool.ntp.org
server 2.north-america.pool.ntp.org
server 3.north-america.pool.ntp.org
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
答案1
你确定 ntpd 在重启时没有运行吗?检查 syslog 的启动日志,看看它是否在启动时启动。
另外,请记住,如果时间偏差太大,ntpd 会认为您的时间源可能有问题,并且不会更改时间。默认情况下,如果外部时间服务器报告的时间与本地时间偏差超过 1000 秒,就会发生这种情况。多年来,我遇到过几件事(例如 CMOS 电池没电),这会导致本地机器时间在重启时偏差很大。
仔细检查 /etc/ntp.conf 配置,确保其准确(时间服务器可访问等)。然后尝试重新启动 ntpd,然后操作过程中查看日志。查看那里是否一切正常。然后返回系统日志并查找所有与 ntpd 相关的日志。查找错误、问题等。确保它在启动时启动。
在这种情况下,日志通常是您进行故障排除的最佳信息来源。
如果时间偏差超过 1000 秒,并且您需要重置它,您需要先停止 ntpd,然后运行 ntpdate 重置时间,然后重新启动 ntpd。以下命令将执行此操作:
sudo /etc/init.d/ntp stop
sudo ntpdate 0.north-america.pool.ntp.org
sudo /etc/init.d/ntp start
如果您遇到每次重启时时间严重偏差的问题,则可能需要编写脚本 ntpdate 以在每次启动 ntpd 之前运行。这应该有助于在 ntpd 处理之前将时间重置为可管理的时间。
答案2
有可能 ntp 正在运行,但是它放弃了你的操作系统时钟,因为它太不可靠了。
使用命令
ntpq -np
...看看 ntp 认为它在做什么。
答案3
虚拟机?计时相当困难。
VMWare 的这份文档对我的情况很有帮助
http://www.vmware.com/files/pdf/Timekeeping-In-VirtualMachines.pdf