时间同步服务器
- 准备
外网服务器一台 192.168.1.198 szcta
内网服务器两台 192.168.1.139 szct
192.168.1.131 szctb
- 原因
因为内网服务器是没办法同步时间,所以只能拿一台外网服务器做为时间同步,保证三台服务器在同一个网络内。
- 环境部署
- 安装ntp(192.168.1.198)
sudo apt-get install ntp
安装过程可能会报需要安装apt-get update,对应安装下。
如果安装更新源也报错,那可能是解析出了问题。
对应改下 vi /etc/resolv.conf
nameserver 8.8.8.8
/etc/ntp.conf配置
注意其他机器的ntpd必须关闭:
service ntpd stop
修改ntp服务器上的/etc/ntp.conf,加上以下的配置:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
后面哪个数字在0-15之间都可以,这样就将这台机器的本地时间作为ntp服务提供给客户端
重启ntpd:
service
ntpd restart
等五六分钟,让ntpd完成自身的时间同步,这期间可以用:
watch
ntpq -p
-
- ntpdate 配置
然后其他的机器上执行:
ntpdate xxxx
xxxx是ntp服务器的ip地址或者主机名
提示:
The program 'ntpdate' is currently not installed. You can install it by typing:
apt install ntpdate
需要安装ntpdate
apt-get install ntpdate
定时任务配置: crontab -e
*/1 * * * * /home/szctb/java/test_cron.sh
方便测试,这个表达式的意思是1分钟一次
创建shell脚本
#!/bin/bash
echo "====`date`====" >> /home/szctb/java/test_cron.log
sudo -S ntpdate szcta << EOF
admin
EOF
注意:有一个坑就是,shell里面写sudo,无法自动获取密码,所以需要通过这种方式手动设置密码
报错:
问题1.ntpdate同步服务器时间时报:ntpdate[xxx]: the NTP socket is in use, exiting
原因:启动ntpd服务后就不可以用netpdata 同步时间了
解决:关闭ntpd服务
service ntpd stop
chkconfig ntpd off