我怎么能让ntpdate忽略歪斜?

在服务器引导过程中,我希望显式运行ntpdate而不是依赖ntp守护进程。 但是,此时钟可能会严重偏斜,这会导致执行sudo ntpdate address.of.ntp.server时发生错误。 我注意到,多次运行这个命令后,它最终工作,可能是由于一些样本累积相同的date,但我找不到这个规范。 我想要的只是采取一个样本,强制ntpdate接受响应,然后启动ntp通过sudo service ntp start 。 我怎样才能做到这一点?

编辑:我试过sudo ntpd -g -qbuild议,但我仍然在/var/log/syslog得到以下错误:

 Sep 26 12:14:29 jd-0922-node1 ntpd[22239]: ntpd [email protected] Wed Oct 9 19:08:06 UTC 2013 (1) Sep 26 12:14:29 jd-0922-node1 ntpd[22239]: proto: precision = 0.115 usec Sep 26 12:14:29 jd-0922-node1 kernel: [173176.189773] type=1400 audit(1411758869.717:48): apparmor="DENIED" operation="open" profile="/usr/sbin/ntpd" name="/usr/local/sbin/" pid=22239 comm="ntpd" requested_mask="r" denied_mask="r" fsuid=0 ouid=0 Sep 26 12:14:29 jd-0922-node1 kernel: [173176.189779] type=1400 audit(1411758869.717:49): apparmor="DENIED" operation="open" profile="/usr/sbin/ntpd" name="/usr/local/bin/" pid=22239 comm="ntpd" requested_mask="r" denied_mask="r" fsuid=0 ouid=0 Sep 26 12:14:29 jd-0922-node1 ntpd[22239]: ntp_io: estimated max descriptors: 1024, initial socket boundary: 16 Sep 26 12:14:29 jd-0922-node1 ntpd[22239]: unable to bind to wildcard address 0.0.0.0 - another process may be running - EXITING 

这听起来像你的时钟已经超过了恐慌的门槛。 但是这并不能解释为什么多个ntpdate调用可以解决这个问题。 说实话,我想不出任何错误,可以通过多个ntpdate调用克服。

无论ntpdate已被弃用。 我认为最可能的解释是你的时钟超过了恐慌阈值。 启动时需要为ntpd提供-g选项。 编辑`/ etc / default / ntp'并确保下列行存在:

  NTPD_OPTS='-g' 

docs for -g

 -g Normally, ntpd exits with a message to the system log if the offset exceeds the panic threshold, which is 1000 s by default. This option allows the time to be set to any value without restriction; however, this can happen only once. If the threshold is exceeded after that, ntpd will exit with a message to the sys‐ tem log. This option can be used with the -q and -x options. 

如果列出了使用ntpdate收到的实际错误消息,那么build议更容易一些。 你有没有机会看到一些有关旋转而不是倾斜的东西?

更新:

您没有正确启动/停止ntpd。 使用sudo时无法绑定到地址的原因是因为ntpd已经在运行。 我没有build议你使用sudo ntpd -g -q说实话我从来没有提过-q,我不知道你为什么不想连续运行ntpd。 使用一个时钟校正和退出是一个坏主意。 我真的认为你需要评估为什么你认为这种一次模式更适合连续运行ntpd。

没有进一步的adeiu:

  1. 编辑/etc/default/ntp并确保它有NTPD_OPTS='-g'
  2. 重启ntp服务: sudo service ntp restart
  3. 享受准确的时间

我用一切应有的尊重和真诚的愿望来帮助你:这看起来像你是一般的Linuxpipe理新手,并不熟悉ntpd。 所以我想强烈要求你重新思考为什么你只想ntpd设置时钟一次然后退出。 这远不是最佳实践。 根据我的经验,如果我觉得我需要做一些与最佳做法相反的做法,我希望确信自己的情况与世界其他地方有很大不同。 一旦你有正确的ntpd设置它将会纪律你的时钟,你将永远不需要担心。 如果你做一笔交易的话,你的时钟会慢慢从UTC时代偏离。