Linux 上的 ntp 服务在重启后不运行

Linux 上的 ntp 服务在重启后不运行

我的服务器上的时间已经同步了几个星期,然后我们上周重启了服务器,今天它的时间差了 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

相关内容