Linux服务器运行久时,系统时间就会存在一定的误差,一般情况下可以使用date命令进行时间设置,但在做数据库集群分片等操作时对多台机器的时间差是有要求的,此时就需要使用ntpdate进行时间同步
ntpdate同步时间
首先可以输入命令 ntpdata 看有没有输出东西,只要有输出说明已经有安装,如果没有则需要安装
1.安装ntpdate
yum install ntpdate -y
2.date命令
使用date可以看当前的时间-最简单的方法就是使用 date -s +时间
date :查看当前时间,结果如下:Tue Mar 4 01:36:45 CST 2014
date -s 09:38:40 :设置当前时间,结果如下:Tue Mar 4 09:38:40 CST 2014
但是这样的方式并不好用因为1个是要手动填写时间有误差,二是重启后就会恢复原样
3.ntpdate命令
使用ntpdate命令进行时间同步
ntpdate ntp1.aliyun.com
ntp1.aliyun.com 是时间同步服务器
可以加餐宿 -u
-u:从man ntpdate中可以看出-u参数可以越过防火墙与主机同步;
国内:
cn.pool.ntp.org 中国开源免费NTP服务器
ntp1.aliyun.com 阿里云NTP服务器
ntp2.aliyun.com 阿里云NTP服务器
time1.aliyun.com 阿里云NTP服务器
time2.aliyun.com 阿里云NTP服务器
国外:
time1.apple.com 苹果NTP服务器
time2.apple.com 苹果NTP服务器
time3.apple.com 苹果NTP服务器
time4.apple.com 苹果NTP服务器
time5.apple.com 苹果NTP服务器
time1.google.com 谷歌NTP服务器
time2.google.com 谷歌NTP服务器
time3.google.com 谷歌NTP服务器
time4.google.com 谷歌NTP服务器
pool.ntp.org 开源免费NTP服务器
其他地区需要自己去找哟
常见错误处理
ntpdate[27925]: no servers can be used, exiting
出现这个错误,一般都是ntp已经在运行了,我们只需要杀掉他的进程即可
先查看ntp状态:
service ntpd status
得到这样一个输出,前提是安装了ntp,active说明正在运行
找ntp的pid
ps -ef|grep xntpd
然后 杀掉这个进程的父进程
kill -9 PID
如果说不会找父进程-我们可以找ntp的默认端口-默认端口为123
lsof -i:123
没有lsof就安装
yum install lsof -y
然后在执行kill杀掉进程
或者说执行守护进程命令:
systemctl status ntpd
最后执行ntp命令同步时间:
ntpdate ntp1.aliyun.com
no server suitable for synchronization found
这个报错一般是此机器无法链接到这个ntp服务器
我们可以ping一下域名看能否ping通,换一个也可以
如果可以ping通,但是还是报此错误,我们就需要加上 -u 参数
-u:从man ntpdate中可以看出-u参数可以越过防火墙与主机同步;
ntpdate -u ntp1.aliyun.com
注意空格
评论