服务端脚本:

#!/bin/bash
# Maintainer: zhengmingyue
# Email: 348063831@qq.com 
echo "The script is used to set Chronyd service."

timedatectl set-timezone Asia/Shanghai

read -ep "Please input server Ip: " serverIp

cat > /etc/chrony.conf << EOF
# 使用同步的远程时钟源,理论上可以同步无限个
server $serverIp iburst

# 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整
driftfile /var/lib/chrony/drift

# 如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进
makestep 1.0 3

# 启用实时时钟(RTC)的内核同步
rtcsync

# 通过使用 hwtimestamp 指令启用硬件时间戳
#hwtimestamp *

#增加调整所需的可选择源的最小数量
#minsources 2

#  允许指定网络的主机同步时间,不指定就是允许所有,默认不开启。
allow all

# 默认情况下本地服务器无法同步互联网时间时,可能会出现不精确,所以会拒绝提供授时服务;
# 开启此选项,则表示允许接受不精确时间,继续为客户端提供授时服务;
local stratum 10

# 指定包含 NTP 身份验证密钥的文件
keyfile /etc/chrony.keys

# 从system tz数据库中获取TAI-UTC偏移量和闰秒。
leapsectz right/UTC

# 指定日志文件
logdir /var/log/chrony

# 选择日志文件要记录的信息
log measurements statistics tracking
EOF

systemctl enable chronyd.service --now
systemctl restart chronyd.service
systemctl status chronyd.service

客户端脚本:

#!/bin/bash
# Maintainer: zhengmingyue
# Email: 348063831@qq.com 
echo "The script is used to set Chronyd service."

timedatectl set-timezone Asia/Shanghai

read -ep "Please input server Ip: " serverIp

cat > /etc/chrony.conf << EOF
# 使用同步的远程时钟源,理论上可以同步无限个
server $serverIp iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony
log measurements statistics tracking
EOF

systemctl enable chronyd.service --now
systemctl restart chronyd.service
systemctl status chronyd.service

防火墙打开时:

## firewall的配置
# 方法一:
firewall-cmd --zone=public --add-port=123/udp --permanent
# 方法二:
firewall-cmd --add-service=ntp  --permanent
# reload firewalld
firewall-cmd --reload

## ufw的配置
# 方法一:
ufw allow 123/udp
# 方法二:
ufw allow ntp

标签: SHELL, Centos Linux 7, Centos Linux 8