ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。 使用ntpd服务,要好于ntpdate加cron的组合。因为,ntpdate同步时间,会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且,ntpd服务可以在修正时间的同时,修正cpu tick。理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。 要注意的是,ntpd有一个自我保护设置: 如果本机与上源时间相差太大, ntpd不运行. 所以新设置的时间服务器一定要先ntpdate从上源取得时间初值, 然后启动ntpd服务。ntpd服务运行后, 先是每64秒与上源服务器同步一次, 根据每次同步时测得的误差值经复杂计算逐步调整自己的时间, 随着误差减小, 逐步增加同步的间隔. 每次跳动, 都会重复这个调整的过程. 下面说一下使用ntpd服务的方法: ntpd服务分为服务端和客户端,一般在一台服务器上安装服务端,这个服务端和外部时间服务器定时同步,其他服务器安装客户端,客户端定时和服务端进行同步。 服务端配置 1.首先安装检查服务器是否安装了ntp、ntpdate # rpm -qa | grep ntp ntpdate-4.2.6p5-29.el7.centos.x86_64 ntp-4.2.6p5-29.el7.centos.x86_64 2.如果没有,需要使用安装 # yum -y install ntp ntpdate 3.修改ntp配置文件/etc/ntp.conf 1)注释以下配置 # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst 2)新增如下配置 #日志文件 logfile /var/log/ntpd.log
#授权172.16.1.0网段上所有机器可以从这台机器上查询和时间同步 restrict 172.16.1.0 mask 225.225.225.0 nomotify notrap
#时间服务器列表 server 210.72.145.44 #中国国家授时中心 server ntp1.aliyun.com server ntp2.aliyun.com server ntp3.aliyun.com
#当外部时间不可用时,使用本地时间 server 127.0.0.1 fudge 127.0.0.1 stratum 10
#允许上层时间服务器主动修改本机时间 restrict 210.72.145.44 nomodify notrap noquery restrict ntp1.aliyun.com nomodify notrap noquery restrict ntp2.aliyun.com nomodify notrap noquery restrict ntp3.aliyun.com nomodify notrap noquery
4.保存退出,重启ntp服务、加入开机自启 # systemctl enable ntpd # systemctl restart ntpd
5.为了防止本机与上源时间相差太大, ntpd不运行,手动同步一次ntpdate,以确保ntpd可以运行 [root@m01 ~]# ntpdate -u 210.72.145.44
6.查询ntp同步时间是否启动 等待几分钟后,当出现如同第二次命令执行结果时即可
# ntpstat unsynchronised (未同步) time server re-starting polling server every 8 s
# ntpstat synchronised to NTP server (120.25.115.20) at stratum 3 (已同步,说明ntpd服务已正常运行) time correct to within 154 ms polling server every 64 s 客户端配置 1.安装ntp、ntpdate [root@web01 ~]# yum install ntp ntpdate
2.修改配置文件/etc/ntp.conf
1)注释以下配置 # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst
2)新增如下配置 #ntp服务器地址 server 172.16.1.61
#新增:允许上层时间服务器主动修改本机时间 restrict 172.16.1.61 nomodify notrap noquery
#新增:当外部时间不可用时,使用本地时间 server 127.0.0.1 #local clock fudge 127.0.0.1 stratum 10
3.保存配置,重启ntp服务并加入开机自启 [root@web01 ~]# systemctl enable ntpd [root@web01 ~]# systemctl restart ntpd
4.查看ntp服务器信息 [root@web01 zabbix]# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== 172.16.1.61 120.25.115.20 3 u 30 64 1 0.512 -42.740 0.000 localhost .INIT. 16 l - 64 0 0.000 0.000 0.000 验证客户端是否可以自动同步: 1.查看ntp服务端时间 [root@m01 ~]# date Sun Mar 29 00:10:52 CST 2020
2.修改客户端时间 [root@web01 ~]# date -s 2020-01-01 Wed Jan 1 00:00:00 CST 2020 [root@web01 ~]# date Wed Jan 1 00:00:03 CST 2020
3.等待一段时间后,查看客户端时间是否自动同步,如果等不及,也可以手动同步验证下 [root@web02 ~]# ntpdate -u 172.16.1.61 29 Mar 00:12:14 ntpdate[19563]: adjust time server 172.16.1.61 offset 0.008159 sec (说明客户端可以和服务端正常同步) [root@web01 ~]# date Sun Mar 29 00:12:22 CST 2020
|