linux多主机时间同步方法

linux多主机时间同步方法,第1张

假设现在有三台linux主机:

172.16.1.104

172.16.1.105

172.16.1.106

在图示位置加入红色框选中内容

会有显示:25 Oct 14:20:21 ntpdate[3407]: adjust time server 172.16.1.104 offset -0.002740 sec

会有显示:25 Oct 14:20:21 ntpdate[3407]: adjust time server 172.16.1.104 offset -0.002740 sec

此时105、106主机的时间就与104主机完全同步了

方法1我试了一下,当一天之后服务器经过多次重启好像时间又有了误差

我们还可以将系统时间同步到BIOS时间,因为每次开机的时候,系统会重新由 BIOS 将时间读出来,所以, BIOS 才是重要的时间依据。

另外两个主机都执行这个操作,这样应该就不变了

当然这是多主机时间同步的方法之一,还可以都同步网络时间(上海时间),但是那样需要网络

另外两个主机重复以上操作

补充说明: ntpdate -u ntp.api.bz 命令中的 ntp.api.bz 指NTP服务器(上海),也可换成:

也可参考这个链接: http://blog.51cto.com/arm2012/1977075

原文链接: https://blog.csdn.net/qq_28903377/article/details/84550050

几台服务器之间的时间误差也就是相对时间的重要性要大于绝对时间的重要性。因此需要在局域网内建立服务器的时间同步。下面是我收集整理的局域网内建立时间同步,希望对大家有帮助~~ 局域网内建立时间同步 工具/原料 操作系统 :windows 2000/xp/2003 电脑,服务器 方法 /步骤 (一) 基于XP/2003系统 1、打开注册表 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。 2、配置 Windows 时间服务以使用外部时间源 (1)指定时间源。 a. 找到并单击下面的注册表子项: 程序代码 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer b. 在右窗格中,右键单击“NtpServer”,然后单击“修改”。 c. 在“编辑值”的“数值数据”框中键入210.72.145.44,0x1,然后单击“确定”。 注:210.72.145.44是中科院国家授时中心的服务器,这是由于微软的时间服务器经常连接失败而造成无法同步。列出的每个 DNS 名称都必须是唯一的。必须在每个 DNS 名称后面附加,0x1。如果不在每个DNS名称后面附加 ,0x1,则在下面步骤中所做的更改将不会生效。 (2)选择轮询间隔。 a. 找到并单击下面的注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval b在右窗格中,右键单击“SpecialPollInterval”,然后单击“修改”。 c在“编辑 DWORD 值”的“数值数据”选十进制并在框中键入900,然后单击“确定”。 注意:这里设置的是您希望各次轮询之间的间隔秒数,以秒计算建议值为 900(十进制)。该值将时间服务器配置为每隔15分钟与时间服务器同步一次。 3、配置NTP服务器 (1)将服务器类型更改为 NTP。 a. 找到并单击下面的注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type b. 在右窗格中,右键单击“Type”,然后单击“修改”。 c. 在“编辑值”的“数值数据”框中键入 NTP,然后单击“确定”。 (2)将AnnounceFlags设置为5。 a.找到并单击下面的注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags b. 在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。 c. 在“编辑 DWORD 值”的“数值数据”框中键入 5,然后单击“确定”。 (3)启用 NTPServer。为此,请按照下列步骤操作: a.找到并单击下面的注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer b.在右窗格中,右键单击“Enabled”,然后单击“修改”。 c.在“编辑 DWORD 值”的“数值数据”框中键入 1,然后单击“确定”。 最后在管理工具中进入服务在服务中找到windows time 服务,重新启动一次,这样时间服务器就配置完毕。 (二)基于windows2000系统 Windows2000的系统与xp/2003系统的不同在于时间和日期属性中没有INTERNET时间一项,这也使得NTP服务器在2000系统的配置更简单。 只需要在注册表中找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\一项,并将其中的Type值改为NTP即可。 二、客户机设置: (一)基于XP/2003系统 a. 找到并单击下面的注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\中的 MaxPosPhaseCorrection和MaxNegPhaseCorrection两项。 十进制修改为999999999 上面2项修改意思为:可以同步时间超过31年的时间差。因为XP默认为15小时,超过15小时差就不能够自动更新时间。 b.到并单击下面的注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer 十进制修改为192.168.?.?(刚才建立的NTP服务器地址,不是我上面输入的210.72. 145.44) c.到并单击下面的注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval 修改为600,意思为10分钟自动更新时间一次。 重新启动windows time服务。客户机设置完毕! (二)基于windows2000系统 点击开始-运行后输入CMD进入命令行,输入net time /setsntp:NTP服务器地址。 比如,输入中科院国家授时中心的服务器,就是 net time /setsntp: 210.72.145.44 而后重新启动windows time服务。并将启动类型更改成自动。而后会发现注册表中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters里面多出了ntpserver一项。而后面就是所设置的NTP服务器的地址。这说明当前的ntpserver客户机已经配置成功。 上图里面的period项类似于xp里的SpecialPollInterval项,即用于控制时间服务同步的频率。不同的是,如果指定一个字符串值,它必须是下面列出的特定值之一。如果使用数字(如 65535)指定字符串值,请将该值创建为 REG_DWORD。如果使用单词(如 BiDaily)来指定字符串值,该项应被创建为 REG_SZ。 0 = 每天一次 65535,“BiDaily” = 每两天一次 65534,“Tridaily” = 每三天一次 65533,“Weekly” = 每周(7 天)一次 65532,“SpecialSkew” = 每 45 分钟一次,直到出现三次良好同步,然后每8小时一次(每天三次)[默认] 65531, “DailySpecialSkew” = 每 45 分钟一次,直到出现一次良好同步,然后每天一次 PS:为保障时间同步的顺利进行,请尽量保证客户机与NTP服务器同步和NTP服务器与中科院国家授时中心的服务器校时的时间差。 三、验证 在客户机中双击屏幕右下角的时间,在日期和时间属性中修改时间。 (NTP服务器的系统为windows2000,客户端的系统是windows xp)然后点击“Internet时间”选项,选中“自动与Internet时间服务器同步按钮”。单击“立即更新”。如果显示与配置的NTP服务器同步时间成功。并且下一次的同步时间间隔为HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\ SpecialPollInterval 中的间隔。即为配置成功! Windows2000客户机的验证 由于windows2000的时间属性中没有INTERNET时间这一项,因此它的INTERNET 校时也要在命令行里进行,在命令行下输入w32tm /once,系统会立即校准时间。并依据period项设定值设定下一次校准的时间。但这些都将在后台进行。我们无法象在XP或2003那样直观的看到。 四、手动同步 为了防止局域网繁忙而造成时间同步失败的现象,可以手动同步时间,方法是首先登录到管理员用户。然后新建一个文本文档,在里面输入net time \\192.168.1.172 / set /yes(注意:time、192.168.1.172和set后面都有一个空格,192.168.1.172是我的NTP服务器地址)保存后命名为同步时间.bat。双击打开后同步时间即可完成。也得在开始—运行—cmd中键入net time \\192.168.1.172 / set / yes命令。会出现下面的窗口:这样每一次点击同步时间.bat的文件都能实现一次时间同步。也可以将这个文件复制到C:\Documents and Settings\Administrator\「开始」菜单\程序\启动 文件夹中,这样每次开机后会自动校时。当然也可以添加到任务计划中,指定每天校时的时间。与前面的方法配合试用,两种方法实现局域网时间同步的“双 保险 ”。 局域网内建立时间同步相关 文章 : 1. 局域网内怎么建立服务器的时间同步2. 如何在局域网内建立服务器的时间同步3. 局域网内如何设定系统时间与服务器时间同步4. 局域网中怎样设置系统时间与服务器同步5. 局域网中如何设置系统时间与服务器同步6. 局域网中要怎样设置系统时间与服务器同步7. 局域网内统一时间的方法8. 怎么设置电脑时间自动同步网络时间

Linux自带了ntp服务 -- /etc/init.d/ntpd,这个服务不仅可以设置让本机和某台/某些机器做时间同步,他本身还可以扮演一个time server的角色,让其他机器和他同步时间。

配置文件就是/etc/ntp.conf。

为了测试,设置让node2 -- 192.168.1.102和node1 -- 192.168.1.101做时间同步。

第一步,

node1做time server,node1本身不和其他机器时间同步,就是取本地时间。

所以,先把node1机器的时间调准了:

[root@node1 ~]date -s 08/03/2011

[root@node1 ~]date -s 11:12:00

[root@node1 ~]clock -w

[root@node1 ~]hwclock --systohc

后两个命令是把设置的时间写到硬件时间中去(也就是CMOS里面的时间)。

第二步,

然后将node1配置成一个time server,修改/etc/ntp.conf,

[root@node1 ~]vi /etc/ntp.conf

其他的配置不怎么需要改,只需要关注restrict的配置:

1. 注释掉原来的restrict default ignore这一行,这一行本身是不响应任何的ntp更新请求,其实也就是禁用了本机的ntp server的功能,所以需要注释掉。

2. 加入:restrict 192.168.1.0 mask 255.255.255.0 -- 让192.168.1.0/24网段上的机器能和本机做时间同步

3. 这样就可以了,记得下面的:

server 127.127.1.0 # local clock

fudge 127.127.1.0 stratum 10

这两行需要,这是让本机的ntpd和本地硬件时间同步。

当然,我们也可以添加server xxx.xxx.xxx.xxx,让他和其他的time server时间同步。

4. /etc/init.d/ntpd restart

5. chkconfig ntpd on

6. 修改iptables配置,将tcp和udp 123端口开放,这是ntp需要的端口,在/etc/services中可以查到这个端口。

第三步,

这样node1就成为一台time server了,现在我们配置node2这台机器,也是修改/etc/ntp.conf ,

[root@node2 ~]vi /etc/ntp.conf

1. restrict default ignore这行保留为注释状态,因为sales不需要做time server

2. 注释掉server 127.127.1.0, fudge 127.127.1.0 stratum 10这两行,因为这台机器不需要和本地硬件时钟同步了。

3. 加入server 192.168.1.101这行,和node1机器同步。

这样就OK了。看看时间,已经和node1同步了。往后默认配置好像是5分钟和time server同步一次。ntpdate命令是显式的和某台机器做时间同步,以前将ntpdate放到crontab中定期同步也是可以的,但是既然ntpd本身就可以做这个时间

第四步,将ntpdate放到crontab中定期步也是可以的

[root@node2 ~]#vi ntpupdate.sh

/usr/sbin/ntpdate 192.168.1.101

[root@node2 ~]#chmod 755 ntpupdate.sh

[root@node2 ~]#crontab -e

*/1 * * * * /root/ntpupdate.sh

[root@node2 ~]#/etc/init.d/crond restart


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/583379.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-06
下一篇2023-07-06

发表评论

登录后才能评论

评论列表(0条)

    保存