![每小时运行一次“ntp” cronjob 可以吗?](https://linux22.com/image/673898/%E6%AF%8F%E5%B0%8F%E6%97%B6%E8%BF%90%E8%A1%8C%E4%B8%80%E6%AC%A1%E2%80%9Cntp%E2%80%9D%20cronjob%20%E5%8F%AF%E4%BB%A5%E5%90%97%EF%BC%9F.png)
我在 Amazon EC2 中拥有多台服务器。我注意到我安装的实例上的时间差异ntp
。我看到/etc/cron.daily/ntp
已添加 Cron 作业。
但我注意到,由于某种原因,时间过得相当快。
我计划在 中建立一个符号/etc/cron.hourly
链接/etc/cron.daily/ntp
。
这有帮助吗?
答案1
我知道您已经弄清楚了,但我想为可能偶然发现这一点的人添加一些信息。看来您把ntpd
(ntp
包)和混淆了ntpdate
。ntpd
是一个持续保持时间同步的守护进程。它以一种非常复杂、非常安全且相当复杂的方式执行此操作,并且通常涉及多个时间服务器。您可以通过运行以下命令查看 NTP 时间同步的状态以及它正在同步的服务器:
ntpq -p
它的输出被解释这里。
cronjob 的/etc/cron.daily/ntp
唯一目的是处理来自 的每日统计数据ntpd
。statsdir
至于这每天可以运行多次,我相信有办法,但你可能不需要,而且它可能会导致问题:)
我相信您最初想到的是手动 NTP 命令ntpdate
。ntpdate <timeserver>
只需一次与远程时间服务器同步时间。当然,您可以cron
根据需要频繁运行此命令。但是,ntpdate
同步不仅性能较差,而且会导致时间同步程度大大降低。对于未运行的服务器ntpd
,或者如果时钟严重不同步,则对于初始同步(ntpd
一次只会将时钟更改这么多),这是一种快速同步时间的好方法。但是,您无法在运行ntpdate
时运行。ntpd
ntpdate -b <timeserver>
实际上,许多 Linux 发行版在启动时、ntpd
启动之前就运行了它。
答案2
确保您已经安装了 ntp 包(ntp 守护程序和实用程序)。
确保您已配置 ntp 守护程序。(RHEL
/etc/ntp.conf
)确保服务正常运行。(RHEL
service ntpd status
,date
)
这些步骤都是特定于分布的,但简单搜索就可以找到有关如何设置的说明。
对于 RHEL:
# yum install ntp
# vim /etc/ntp.conf
make sure you have valid, available time servers listed
# service ntpd restart
答案3
ntpdate 已被弃用,您可以使用 ntpd -gq 强制更新时间,而不是按照计划更新时间。
这适用于没有安装客户操作系统工具且会经历周期性时钟漂移的虚拟机,尽管可能有更好的方法。