这两种同步服务器的方法之间的优缺点是什么?
在我看来,您的服务器每天的漂移可能不会超过 1 秒,因此 crontab 上的 ntpdate 就可以了。但我听说你可以在这里使用冗余的 NTP 服务器
http://www.pool.ntp.org/en/use.html
以便在发生故障时保持同步时间。
你有什么建议吗?
我的一台服务器有一个奇怪的问题。 ntpd并且ntpdate无法工作,但调试根本没有显示任何错误。起初我以为可能是本地或网络防火墙阻止了 UDP 端口 123,但事实并非如此 - 该服务器可以将 UDP 端口 123(ntp 协议)与 Internet 通信并获得答案。
让我演示一下这个问题。
date -s "30 DEC 2012 02:30:00" - 有效,所以我可以成功设置时钟而不会出错。
ntpq -pn pool.ntp.org - 有效,我确实从时间服务器获取了详细的时间数据,并证明 UDP 数据包正在运行。
ntpdate -d pool.ntp.org - 调试模式有效,显示大量调试数据并显示当前时间偏移:
30 Dec 02:38:56 ntpdate[19267]: step time server 208.97.140.69 offset 228.234554 sec
一切看起来都很正常,直到:
ntpdate pool.ntp.org- 暂停 4.7 秒后,它返回:
30 Dec 02:41:29 ntpdate[19274]: no server suitable for synchronization found
运行类似的问题ntpd,它不更新时钟。
ntpd 启动后,ntpq -pn导致所有 refid 永远卡在上面.INIT.,这意味着它们无法同步。
/var/lib/ntp/drift 是 ntp.conf …
我有几个专用服务器,出于某种原因,它们完全无法保持时间正确同步,每隔几天它们就会开始出现分钟数的差异。所以我必须手动打开 Putty,连接,登录,并ntpdate -u 0.ar.pool.ntp.org在每个上运行命令。
由于我无法每天都这样做,因为我很忙,所以问题究竟是如何创建某种 cron 来每天在每台服务器上自动运行此命令。我对所有服务器都有完全的 root 访问权限,他们有 CentOs 和 DirectAdmin。谢谢。-
我已经尝试了几个关于如何在 ubuntu 上设置本地 ntp 服务器的指南,但似乎没有一个可以正常工作。由于某种原因,我的服务器在时间上严重漂移,我必须将它们的时间保持在一起,因为我运行的数据库需要这样做。
目前,我的服务器(ip .24)运行这个 /etc/ntp.conf:
server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
# Give localhost full access rights
restrict 127.0.0.1
# Give machines on our network access to query us
restrict 192.168.178.0 mask 255.255.255.0 nomodify notrap
broadcast 192.168.178.0
Run Code Online (Sandbox Code Playgroud)
而在“客户”上:
# Point to our network's master time server
server 192.168.178.24 iburst
fudge 192.168.178.24 stratum 10
restrict default ignore
restrict ::1
restrict 127.0.0.1 …Run Code Online (Sandbox Code Playgroud) 服务器时间关闭了 7 小时(而不是上午 10 点,它是凌晨 3 点,即使date显示了正确的时区)。ntpq 的输出是:
$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
xx.xxx.xxx.x.ar xxx.x.xx.xx 2 u 72 1024 177 6.516 2520657 1650156
ntp.xxxx.ac.uk xxx.xxx.xxx.x 2 u 7h 1024 377 14.039 2520655 1347346
xxx.xxx.xxx.xx xxx.xxx.xxx.x 2 u 114 1024 377 5.449 -18.941 2130343
ns1.xxxxxxx.com xxx.x.xx.xx 2 u 148 1024 377 8.050 2520655 1650156
Run Code Online (Sandbox Code Playgroud)
时间由以下人员确定:
ntpdate -u 0.europe.pool.ntp.org
Run Code Online (Sandbox Code Playgroud)
然而,几天后它又发生了。我怀疑 中的第二行ntpq -p,它表示自上次收到数据包以来已经过了7 小时。但如果这就是原因,那为什么ntp不使用其他服务器来同步时间呢?
发生了什么事?您将如何防止这种情况再次发生?
编辑另一件可能有用的考虑是它是一个虚拟机。虚拟机是否可能处于某种暂停状态?
注意 …
我们的系统监控有时会通知我 ntpd 中的偏移量过高。发出 ntpdate 时,它显示没有。由于ntpd调整时间很慢,它似乎“认为”有一个需要调整的偏移量。但是 ntpdate 不应该也显示这个偏移量吗?我有什么误解?
这是在 NTP 服务器不久不可用并且似乎重新启动之后发生的,它返回时的偏移量接近 20 秒并且 NTP 调整缓慢,所以基本上它只是做了它的设计。但是为什么一直ntpdate -q说没有offset呢?
# ntpq -p && echo '###' && ntpdate -q 123.123.123.123
remote refid st t when poll reach delay offset jitter
==============================================================================
*nt0 10.123.123.123 2 u 48 64 377 0.181 209.956 8.334
###
server 10.123.123.123, stratum 1, offset 0.207451, delay 0.04231
1 Dec 10:45:28 ntpdate[19895]: adjust time server 10.123.123.123 offset 0.207451 sec
Run Code Online (Sandbox Code Playgroud)
当我比较两个不同系统的输出时,一个有偏移,一个没有,发布echo +%H:%M:%S-%N表明 ntpd 是正确的,而不是 ntpdate。但为什么?
我正在虚拟机中使用 Ubuntu 设置开发环境。由于一些愚蠢的定时炸弹问题,VM 中的日期必须在 2009 年,所以我想禁用任何自动时间同步(例如 ntpdate)。
$ sudo apt-get remove ntpdate
...
The following packages will be REMOVED:
ntpdate ubuntu-minimal
Run Code Online (Sandbox Code Playgroud)
显然,我不想删除 ubuntu-minimal。不幸的是,机器每隔几秒钟就会不断重置时间。如何禁用此功能或存根此功能?
[root@myHost default]# ntpdate -d pool.ntp.org
15 Apr 11:21:18 ntpdate[6331]: ntpdate 4.2.0a@1.1190-r Thu Feb 24 20:39:57 EST 2011 (1)
Looking for host pool.ntp.org and service ntp
host found : magma.woody.ch
transmit(157.161.57.1)
transmit(157.161.57.1)
t ransmit(157.161.57.1)
transmit(157.161.57.1)
transmit(157.161.57.1)
157.161.57.1: Server dropped: no data
server 157.161.57.1, port 123
stratum 0, precision 0, leap 00, trust 000
refid [157.161.57.1], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time: 00000000.00000000 Thu, Feb 7 2036 6:28:16.000
originate timestamp: 00000000.00000000 Thu, Feb 7 2036 6:28:16.000
transmit …Run Code Online (Sandbox Code Playgroud) 从昨天(7 月 30 日)开始,我在 /var/log/syslog 中有以下内容
Dec 16 22:54:05 omap ntpdate[432]: step time server 91.189.94.4 offset 12052648.821465 sec
Run Code Online (Sandbox Code Playgroud)
ntpdate 91.189.94.4 从 7 月 30 日到 12 月 16 日“更正”了我的时钟!根据http://www.pool.ntp.org/scores/91.189.94.4,该服务器的关闭时间不超过 2 毫秒。
现在,我确实有一个脚本,它date在系统启动时调用该命令,以便以大约 1 秒的精度设置时钟。粗时间是从本地网络中读取的,并被date调用来设置时间。由于系统没有实时时钟,并且 NTP 可能无法使用 Internet 连接,因此我必须按照这些方式做一些事情。
我不确定 Linux 在没有可用时钟的情况下如何猜测初始时间,但我观察到它可能非常错误(这是合理的)。我对发生的事情的唯一想法是:
ntpdate 开始与 NTP 服务器通信,确定 3 月 15 日与实际日期相比有多大错误ntpdate 确定时钟慢了 12052648s,并添加了更正,假设时钟仍然在 3 月 15 日这是 RHEL 5.5 中的内容。
首先,ntpdate 到远程主机的工作原理:
$ ntpdate XXX.YYY.4.21
24 Oct 16:01:17 ntpdate[5276]: adjust time server XXX.YYY.4.21 offset 0.027291 sec
Run Code Online (Sandbox Code Playgroud)
其次,这是我的 /etc/ntp.conf 中的服务器行。所有restrict行均已被注释掉以供故障排除。
server 127.127.1.0
server XXX.YYY.4.21
Run Code Online (Sandbox Code Playgroud)
我执行service ntpd start并检查ntpq:
$ ntpq
ntpq> peer
remote refid st t when poll reach delay offset jitter
==============================================================================
*LOCAL(0) .LOCL. 5 l 36 64 377 0.000 0.000 0.001
timeserver.doma .LOCL. 1 u 39 128 377 0.489 51.261 58.975
ntpq> opeer
remote local st t when poll reach …Run Code Online (Sandbox Code Playgroud)