10 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1
这个想法是每 10 分钟同步一次时间。
然而我现在等了15分钟
nano /var/log/cron
仍然返回空。
这个 cron 正在运行吗?如果是,我可以在哪里找到证据?
答案1
您告诉它每小时第 10 分钟运行一次,而不是每 10 分钟运行一次。
将“10”更改为“*/10”即可获得您要求的行为。或者,您可以将其扩展为“0,10,20,30,40,50”
话虽如此,但不要这样做。调快时钟可能会导致各种麻烦。正确设置 ntpd,这实际上会改变秒数的长度,使您的时钟保持一致,而不会出现与仅更改时钟相关的问题。
答案2
你真正想要的是ntpd
。
ntpdate
从一台服务器获取(近似的)当前时间,然后将时钟移至该时间。这是一次性更新,主要用于在启动时让服务器时钟“进入正确的范围”,这样 ntpd 在微调时钟时就不需要做太多工作了。
ntpd
另一方面,它会反复从服务器列表中轮询当前时间,同时考虑网络延迟和抖动等因素,然后随着时间的推移构建每个上游服务器的配置文件,以确定正确的时间,通常误差在几毫秒或更短。一旦知道了正确的时间,它就会通过在每个时钟滴答中添加或删除微小的秒数来缓慢地将系统时钟向那个方向移动,最后稳定本地时钟,使其不再漂移。
但是,ntpd
如果时间偏差太大,则不会移动时钟。这就是为什么您可能希望在启动ntpdate
前运行。ntpd
请注意,运行ntpdate
时将无法运行ntpd
,这可能是您遇到的问题。 ntpdate
应该仅有的在 ntpd 启动之前在启动时运行,在某些系统上,它内置于 ntpd 启动脚本中。
答案3
这是设置时间的错误方法。请正确操作,只需设置 ntpd 即可。
通过 cron 之类的方式手动运行 ntpdate 会导致时钟跳动,这可能会给时间敏感的应用程序带来问题。通过运行 ntpd,您可以避免这种情况,因为 ntpd 会逐渐调整系统时间来纠正它。