某些分布式集群环境需要时间同步才可以正确运行,故本文说明linux同步时间的两种方法,网络同步和手动同步并写入BIOS
环境
Centos7
[root@mym ~]# date
Sun Jul 29 01:16:14 EDT 2018
其中,EDT表示美国东部夏令时。我们也要换成东8区CST时间
同步时间可以手动设置或者网络同步
网络同步
(1)
命令:ntpdate -u ntp.api.bz
若ntpdate命令不存在则安装即可:yum -y install ntp
解释:
- ntpdate表示网络同步时间
- -u 表示可以越过防火墙与主机同步。可man ntpdate查看手册
- ntp.api.bz是NTP服务器(上海)。笔者亲测有效
如果仍然出现报错,那么有可能是ntp服务器停用了,可以上网百度其它ntp服务器。
no server suitable for synchronization found
成功后可查看时间:
[root@mym ~]# date
Sat Aug 4 13:34:17 CST 2018
- 美国:time.nist.gov
- 复旦:ntp.fudan.edu.cn
- 微软公司授时主机(美国) :time.windows.com
- 台警大授时中心(台湾):asia.pool.ntp.org
(2)修改时区
网络同步时间并不会帮助同步时区,同步时区的命令如下:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
如下执行
[root@mini3 ~]# date
Sat Aug 4 01:50:47 EDT 2018
[root@mini3 ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@mini3 ~]# date
Sat Aug 4 13:52:29 CST 2018
(3)
最后进行写入BIOS
hwclock [-rw]
– -r:查看现有BIOS时间,默认为-r参数
– -w:将现在的linux系统时间写入BIOS中
注:当我们进行完 Linux 时间的校时后,还需要以 hwclock -w 来更新 BIOS 的时间,因为每次开机的时候,系统会重新由 BIOS 将时间读出来,所以, BIOS 才是重要的时间依据。
hwclock -w
手动同步
此方法不建议使用,毕竟手动同步还是会有偏差,但是当没有网络的时候就可以使用
按照网络同步的方式先校准时区
设置时间
日期设定:
date -s 2018/08/04
时间设定:
date -s 08:40:00
- 写入BIOS