我正在尝试使用NTPD将我的Linux计算机的时间更新为指定的NTP服务器。
这是场景:
每次Linux计算机启动时,我想从NTP服务器更新时间,如果不成功,我想每5分钟重试一次直到成功(最多2个小时)。
我四处搜索,发现我应该使用NTPD并使用一些命令,例如:
#ntpdate ntp.server.com
(在启动NTPD之前)
#ntpd some_options_to_start
问题是:
sleep
并在外壳中使用do
.. while
/循环for
?)请注意,我想在Shell脚本中执行上述命令,并将Shell放入Web服务器。然后,客户端(使用Web浏览器浏览器)将在网站上执行脚本。因此,我需要检查更新是否成功或是否将结果发送到客户端(通过网络)。
ntpd
通常不使用脚本来监视。通常使用监视工具(例如nagios
或munin
)来监视守护程序。发生问题时,该工具可以向您发送警报。munin
如果偏移量超过15毫秒,我会通过电子邮件发送给我。
通常,您应该使用奇数个服务器,以便守护进程可以在服务器关闭时在服务器之间执行选择。通常三个就足够了,五个以上就足够了。如果您监视内部网络,则内部网络上的客户端应该能够与一台内部服务器并驾齐驱。使用合法的服务器或您的ISP NTP或DNS服务器作为时钟源。有公共池和公共服务器。
ntpd
是自调整的,配置和启动后无需调整。使用最新的ntpd
实现,您可以ntpdate
完全放弃使用日期,因为它们可以完成日期的初始设置。
以下脚本将解析ntpd输出中的偏移量,并报告过多的偏移量。如果有问题,您可以从cron运行它以通过电子邮件发送给您。该脚本默认以0.1秒的偏移量发出警报。
#!/bin/bash
limit=100 # Set your limit in milliseconds here
offsets=$(ntpq -nc peers | tail -n +3 | cut -c 62-66 | tr -d '-')
for offset in ${offsets}; do
if [ ${offset:-0} -ge ${limit:-100} ]; then
echo "An NTPD offset is excessive - Please investigate"
exit 1
fi
done
# EOF
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句