需求:公司内网多台服务器,集群部署时,需要保证每个服务器的时间一致性,本文采用NTP进行时间同步
一、环境
系统:Centos 7.4
以两台服务器为例,其中一台服务器为server,一台为client:
ntp_server IP:10.25.0.151
ntp_client IP:10.25.0.153
二、ntp安装服务
考虑公司服务器在内网,不能连接外网,采用rpm安装,可在
http://rpmfind.net/linux/rpm2html/search.php?query=ntp链接下载:
ntp-4.2.6p5-29.el7.centos.2.src.rpm,并上传到服务器
在server和client安装ntp:
执行安装命令:
rpm -ivh ntp-4.2.6p5-12.el6.centos.2.x86_64.rpm
三、修改配置/etc/ntp.conf文件
执行命令:vim /etc/ntp.conf
server服务器配置:
其中,
restrict 10.25.0.0 mask 255.255.255.0 nomodify notrap #表示允许集群10.25.0.网
段连接同步时间,拒绝client修改服务器时间
server 127.127.1.0 #本地时间
fudge 127.127.1.0 stratum 10 #时间服务器的层次。可设置0-15,设为0则为顶级
client服务器配置:(如果有多台client服务器,亦可如此配置)
其中,server 10.25.0.151 #时间同步server服务器地址
四、启动NTP服务&开机启动设置(包括server服务器和client服务器)
#启动NTP服务
systemctl start ntpd
#将NTP服务设置为开机启动
systemctl enable ntpd
#服务重启后,检查ntp服务是否加入开机自启动(如果自启动失效,详见异常情况说明)
systemctl status ntpd
重启后执行 systemctl status ntpd 命令后的效果,如下图所示:
表示加入开机自启动成功
五、server服务器防火墙配置
#开放NTP端口
firewall-cmd --add-port=123/udp --permanent
#重载防火墙规则
firewall-cmd --reload
六、client服务器手动从server服务器进行时间同步
在server服务器上执行date命令,查看时间
首先client随意设置一个时间:如date -s "20190315 15:12:23" 执行date命令显示时间
如果时区不对,设置时区
timedatectl set-timezone Asia/Shanghai
client服务器执行命令进行时间同步
ntpdate -u 10.25.0.151
七、client服务器设置定时同步时间任务
在client上执行crontab命令,设置间隔时间,这里设置的每五分钟同步一次
crontab -e
此处10.25.0.151为server服务器ip地址
此时,可在client设置任意时间,如:date -s "20190315 15:12:23",隔五分钟查看时间是否与server服务器时间一致
查看ntp服务信息
ntpq –p
以上server服务器和client服务器均为centos系统的情况,如果client为window系统,采用以下设置
八、window 客户端:server服务器配置不变,只需设置window
首先在控制面板->时钟和区域->日期和时间(设置日期和时间)->Internet时间->更改设置
输入server服务器ip地址,10.25.0.151
点击 “立即更新”,有可能会同步失败,多试几次,点击“确定”按钮后,如下
时间同步成功后,系统默认设置为自动同步,并显示下次同步的时间
九、安装可能遇到的异常情况:
1)如果安装提示:
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
执行以下命令:
groupadd mockbuild
useradd mockbuild -g mockbuild
接着再次执行
rpm -ivh ntp-4.2.6p5-12.el6.centos.2.x86_64.rpm
2)如果安装提示,缺少libedit.so.0()(64bit)依赖。下载合适的libedit.rpm安装包:
libedit-3.0-12.20121213cvs.el7.src.rpm
执行libedit安装命令:
rpm -ivh libedit-3.0-12.20121213cvs.el7.src.rpm
接着再次执行
rpm -ivh ntp-4.2.6p5-12.el6.centos.2.x86_64.rpm
3) 如果ntp开机启动失效:
存在服务和ntp冲突导致开机启动未生效,这个服务是chrony,使用systemctl is-enabled chronyd 查看
chrony的启动状态设置,果然也是开机启动,使用 systemctl disable chronyd 将chrony服务的自启动关闭。
重启服务器后发现ntp服务已启动,ntpd状态running
参考文章:https://blog.csdn.net/I_Demo/article/details/99673094
十、附加说明
systemctl start ntpd #启动ntp服务器
systemctl stop ntpd #停止ntp服务器
crontab -l 查看 定时任务
# 将硬件时间同步到系统时间:
hwclock --hctosys
# 将系统时间同步到硬件时间
hwclock --systohc
# 强制把系统时间写入CMOS
clock -w
# 显示硬件时间
hwclock --show
# 设置硬件时间
hwclock --set --date ‘08/02/2012 12:00:00’
# 更改时区
ln -sf /usr/share/zoneinfor/Asia/Shanghai /etc/localtime
如果服务器可以连接外网或本地资源库有ntp包,可使用
yum install ntp –y #命令直接安装
其他crontab命令相关阅读:
https://www.cnblogs.com/zmdComeOn/p/10330541.html
参考资料:
https://www.cnblogs.com/su-root/p/11380198.html
https://cloud.tencent.com/developer/article/1333862
https://blog.csdn.net/apache2tomcat/article/details/89477732
https://www.cnblogs.com/actively/p/12988713.html