#!/bin/sh #运行环境 centos6、centos7 # NTP时间同步 服务端 客户端 自动化安装配置 #Mady by Elven function setntp1() {
. /etc/init.d/functions
pkill ntpd
[[ -f /usr/sbin/ntpdate ]] || { echo "install ntp";yum install ntp -y &> /dev/null; } #若没NTP则安装
echo "时间更新……"
/usr/sbin/ntpdate ntp6.aliyun.com
#bakup
cp -f /etc/ntp.conf{,.$(date +"%F-%T")}
echo "
#默认配置部分
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
">/etc/ntp.conf
}
function setntp2() {
echo "
# 外部NTP服务
server ntp6.aliyun.com perfer
server cn.ntp.org.cn iburst
server ntp.shu.edu.cn iburst
server s2c.time.edu.cn iburst
# server s2a.time.edu.cn iburst
# server s2m.time.edu.cn iburst
# 允许上层服务主动修改本机时间
restrict ntp6.aliyun.com nomodify notrap noquery
restrict cn.ntp.org.cn nomodify notrap noquery
# 外部时间服务器不可用时,以本地时间作为时间服务
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
">>/etc/ntp.conf
}
function NTP_IP() {
##该部分可自定义#
#获取第一块网卡ip地址
IP=`ip add|grep global|awk -F'[ /]+' '{ print $3 }'|head -n 1`
#本机网段
IPS=`echo $IP|awk -F\. '{ print $1"."$2"."$3 }'`
#设置ntp server ip
IPend=99
NTPS=$IPS.$IPend
#加载自定义变量IPS,NTPS
echo >>my.sh.conf #防止没有出错#
source ./my.sh.conf >/dev/null 2>&1
}
function ntp_server() {
echo "
# 作为内网NTP服务
restrict $IPS.0 mask 255.255.255.0 nomodify notrap
">>/etc/ntp.conf
grep server /etc/ntp.conf
tail -n 3 /etc/ntp.conf
}
function ntp_client() {
echo '内网时间同步'
/usr/sbin/ntpdate $NTPS
echo "
# 使用内网NTP服务
server $NTPS perfer
server cn.ntp.org.cn iburst
restrict $NTPS nomodify notrap noquery
# 外部时间服务器不可用时,以本地时间作为时间服务
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
">>/etc/ntp.conf
grep server /etc/ntp.conf
}
function ntptest() {
# "重启NTP服务"
[[ `uname -r` == *el6* ]] && { chkconfig ntpd on;service ntpd restart; } || { systemctl enable ntpd;systemctl restart ntpd; }
/usr/sbin/hwclock -w
echo "NTP服务 状态检测"
sleep 5
ntpstat
ntpq -p
}
case "$1" in
"s")
setntp1
setntp2
NTP_IP
ntp_server
action "NTP配置" /bin/true
ntptest
exit
;;
"c")
setntp1
NTP_IP
ntp_client
action "NTP配置" /bin/true
ntptest
exit
;;
"-h")
echo "-h 帮助"
echo "c 安装NTP、使用内网时间同步服务"
echo "s 安装NTP、并作为内网时间同步服务Server"
echo "* 安装配置NTP服务 "
;;
*)
setntp1
setntp2
action "NTP配置" /bin/true
ntptest
exit
;;
esac
exit
|