Linux时间同步
2021-03-14 17:00:03
如果不是北京时间先改成北京时间
1.删除自带的localtime
rm -rf /etc/localtime
2.创建软链接到localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
在同步时间
## 方法一:
使用ntpdate比较简单
安装ntpdate
yum install ntpdate
ntpdate -u ntp.api.bz
ntpdate ntp1.aliyun.com //直接用域名同步中国上海时间 是阿里云的服务器
ntp常用服务器:
中国国家授时中心:210.72.145.44
NTP服务器(上海) :ntp.api.bz
做个定时
crontab -e
0 5 * * * /usr/sbin/ntpdate -u ntp.api.bz #5点时间同步
0 12 * * * /usr/sbin/ntpdate 192.168.0.1 同步两台机器的时间(如果服务器是内网不能联网,就同步那个时间准的有的路由就自带时间同步,可以直接同步)
配置文件在 /etc/sysconfig/ntpdate 最后一行改成yes 与硬件时间同步
硬件时间 hwclock -r
把硬件同步系统时间里面 hwclock -w
直接设置硬件时间
```shell
$ hwclock --set --date="4/28/05 11:10:05"(月/日/年 时:分:秒)
$ clock --set --date="07/07/06 10:19" (月/日/年 时:分:秒)
```
如果让系统时间与硬件时钟同步,则用
```shell
$ hwclock --hctosys (hc代表硬件时间,sys代表系统时间)
$ clock --systohc 系统时钟和硬件时钟同步
```
## 方法二:
使用ntpd服务,要好于ntpdate加cron的组合。因为,ntpdate同步时间,会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且,ntpd服务可以在修正时间的同时,修正cpu tick。理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。
要注意的是,ntpd 有一个自我保护设置: 如果本机与上源时间相差太大, ntpd 不运行. 所以新设置的时间服务器一定要先 ntpdate 从上源取得时间初值, 然后启动 ntpd服务。ntpd服务 运行后, 先是每64秒与上源服务器同步一次, 根据每次同步时测得的误差值经复杂计算逐步调整自己的时间, 随着误差减小, 逐步增加同步的间隔. 每次跳动, 都会重复这个调整的过程.