时间 cron 不工作

1 time ntpdate cron

10 * * * *    /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

这个想法是每 10 分钟同步一次时间。

但是我现在等了 15 分钟

nano /var/log/cron
Run Code Online (Sandbox Code Playgroud)

仍然返回空。

这个cron正在运行吗?如果是,我在哪里可以找到证明?

小智 6

你告诉它在第 10 分钟每小时运行一次,而不是每 10 分钟运行一次。

将 '10' 更改为 '*/10' 以获得您要求的行为。或者,您可以将其扩展为 '0,10,20,30,40,50'

也就是说,不要这样做。跳时钟会导致各种令人讨厌的事情。正确设置 ntpd,这实际上会改变秒的长度以使您的时钟正常运行,而不会出现与仅更改时钟相关的问题。


tyl*_*erl 6

你真正想要的是ntpd

ntpdate从一台服务器获取(近似)当前时间,然后将时钟移至该时间。这是一个一次性更新,主要用于在启动时让您的服务器时钟“进入正确的范围”,这样 ntpd 在微调时钟方面的工作就更少了。

ntpd另一方面,从服务器列表中反复轮询当前时间,考虑网络延迟和抖动等因素,然后构建每个上游服务器随时间变化的配置文件,以确定正确的时间,通常需要几毫秒或更好。一旦它知道正确的时间,它就会通过为每个时钟滴答增加或减少几分之一秒来缓慢地向那个方向移动系统时钟,最后稳定本地时钟,使其不再漂移。

但是,ntpd如果时间相差太远,则不会移动时钟。这就是您可能希望ntpdatentpd启动前运行的原因。请注意,ntpdatentpd运行时不会起作用,这可能是您遇到的问题。 ntpdate应该在启动 ntpd 之前的引导时运行,并且在某些系统上它内置在 ntpd 启动脚本中。