【ntpdate】CentOS7.x上使用ntpdate同步ntp服务器
NTP服务器顾名思义就是时间同步服务器(Network Time Protocol),Linux下的ntp服务器配置相对来说都比较容易,但在Linux下有一个弊端, 不同时区或者说是时间相差太大的无法同步 ,所以在配置ntp服务器之前需要把时间配置成相同的。
NTP时钟同步方式说明
NTP在linux下有两种时钟同步方式,分别为直接同步和平滑同步:
直接同步
使用ntpdate命令进行同步,直接进行时间变更。如果服务器上存在一个12点运行的任务,当前服务器时间是13点,但标准时间时11点,使用此命令可能会造成任务重复执行。因此使用ntpdate同步可能会引发风险,因此该命令也多用于配置时钟同步服务时第一次同步时间时使用。
平滑同步
使用ntpd进行时钟同步,可以保证一个时间不经历两次,它每次同步时间的偏移量不会太陡,是慢慢来的,这正因为这样,ntpd平滑同步可能耗费的时间比较长。
标准时钟同步服务
http://wwwpoolntporg/zone/cn
这个网站包含全球的标准时间同步服务,也包括对中国时间的同步,对应的URL为:cnpoolntporg
在其中也描述了ntp配置文件中的建议写法:
server 1cnpoolntporg
server 2asiapoolntporg
server 3asiapoolntporg
实验室集群没有联网,我们需要搭建ntp服务器并进行时间同步。
现使用的系统为centos72,机器使用情况如下表所示,这里以1921681102为ntp server,1921681104为client对时间进行同步。
NTP server 1921681102
NTP client 1921681104
1在集群中所有节点上安装ntp
# yum -y install ntp
2所有节点设置时区,这里设置为中国所用时间
# timedatectl set-timezone Asia/Shanghai
3在server节点上启动ntp服务
# systemctl startntpd
# systemctl enable ntpd
4在server节点上设置现在的准确时间
# timedatectl set-time HH:MM:SS
5在server节点上设置其ntp服务器为其自身,同时设置可以接受连接服务的客户端,是通过更改/etc/ntpconf文件来实现,其中server设置12712710为其自身,新增加一个 restrict 段为可以接受服务的网段
# vim /etc/ntpconf
6重启ntpd服务
# systemctl restart ntpd
# timedatectl
NTP synchronized: yes
启用ntpd后,服务器就开启了ntpd自动同步,无法使用 timedatectl set-time HH:MM:SS重新设置时间。
如果要使用timedatectl set-time HH:MM:SS 重新设置时间:
# systemctl stop ntpd
# timedatectl set-ntp false
# timedatectl set-time HH:MM:SS
# hwclock -w
# systemctl start ntpd
1客户端时区需要和服务端保持一致,否则无法同步时间
# timedatectl set-timezone
Asia/Shanghai
2安装同步软件包
# yum -y install ntpdate
3 修改/etc/sysconfig/ntpdate,让ntpdate每次同步时间之后把时间写入hwclock,相当于命令hwclock -w
将最后一行SYNC_HWCLOCK=no修改为:SYNC_HWCLOCK=yes
# vim /etc/sysconfig/ntpdate
4客户端定时任务配置
# crontab -e
59 23 /sbin/ntpdate 1921681102
设置为每天23:59分执行,重启crond服务
######################
定时任务基本格式 :
command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用或者 /1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
################################
5重启定时任务
# systemctl restart crondservice
配置 Windows 时间服务以使用内部硬件时钟
警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。
要将 PDC 主机配置为不使用外部时间源,请更改 PDC 主机上的公告标志。PDC 主机是存放域的林根 PDC 主机角色的服务器。这种配置会强制 PDC 主机将它自身宣布为可靠的时间源,从而使用内置的互补金属氧化物半导体 (CMOS) 时钟。要将 PDC 主机配置为使用内部硬件时钟,请按照下列步骤操作:
单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。
在“编辑 DWORD 值”的“数值数据”框中键入 A,然后单击“确定”。
退出注册表编辑器。
在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter:
net stop w32time && net start w32time
配置 Windows 时间服务以使用外部时间源
要将内部时间服务器配置为与外部时间源同步,请按照下列步骤操作:
将服务器类型更改为 NTP。为此,请按照下列步骤操作:
单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
在右窗格中,右键单击“Type”,然后单击“修改”。
在“编辑值”的“数值数据”框中键入 NTP,然后单击“确定”。
将 AnnounceFlags 设置为 5。为此,请按照下列步骤操作:
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。
在“编辑 DWORD 值”的“数值数据”框中键入 5,然后单击“确定”。
启用 NTPServer。为此,请按照下列步骤操作:
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
在右窗格中,右键单击“Enabled”,然后单击“修改”。
在“编辑 DWORD 值”的“数值数据”框中键入 1,然后单击“确定”。
指定时间源。为此,请按照下列步骤操作:
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
在右窗格中,右键单击“NtpServer”,然后单击“修改”。
在“编辑值”的“数值数据”框中键入 Peers,然后单击“确定”。
注意:Peers 是一个占位符,应替换为您的计算机从中获取时间戳的对等端列表(以空格分隔)。列出的每个 DNS 名称都必须是唯一的。必须在每个 DNS 名称后面附加 ,0x1。如果不在每个 DNS 名称后面附加 ,0x1,则在步骤 5 中所做的更改将不会生效。
选择轮询间隔。为此,请按照下列步骤操作:
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
在右窗格中,右键单击“SpecialPollInterval”,然后单击“修改”。
在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为您希望各次轮询之间的间隔秒数。建议值为 900(十进制)。该值将时间服务器配置为每隔 15 分钟轮询一次。
配置时间校准设置。为此,请按照下列步骤操作:
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection
在右窗格中,右键单击“MaxPosPhaseCorrection”,然后单击“修改”。
在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。
在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。
找到并单击下面的注册表子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxNegPhaseCorrection
在右窗格中,右键单击“MaxNegPhaseCorrection”,然后单击“修改”。
在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。
在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。
退出注册表编辑器。
在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter:
net stop w32time && net start w32time
我就是这样用的,很好。
Windows(2003)下配置NTP时间服务器
一、服务端设置:
因为默认情况下,WINDOWS SERVER 2003 是作为NTP客户端工作的 ,所以必须通过修改注册表,以使系统作为NTP服务器运行。注意,工作之前请先备份注册表文件。
1、通过开始菜单,输入regedit命令后打开注册表设定画面,此时请一定备份注册表文件。
2、修改以下选项的键值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\
NtpServer内的「Enabled」设定为1,打开NTP服务器功能
3、修改以下键值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\
AnnounceFlags设定为5,该设定强制主机将它自身宣布为可靠的时间源,从而使用内置的互补金属氧化物半导体(CMOS) 时钟。
4、在dos命令行执行以下命令,确保以上修改起作用
net stop w32time
net start w32time
推荐计划;如果该服务器和internet连接,那么为了避免服务器和internet上的ntp同步,最好追加以下配置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\
NtpClient的「enable」设定为0 以防止作为客户端自动同步外界的时间服务
二、客户设置:
1、指定主时间服务器。在DOS方式输入“net time /setsntp:ntpsjtueducn”,这里我们指定ntpsjtueducn是主时间服务器,也可以是其它地址(2107214544)。
2、自由设定XP时间同步间隔:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\
NtpClient的「SpecialPollInterval」默认设定为604800(或86400)
0条评论