Linux【9】-进程管理8-2--时间同步(date/clock/ntpdate/tzselect/timedatectl)

linux系统时钟有两个:

  1. 一个是硬件时钟,即BIOS时间,就是我们进行CMOS设置时看到的时间,
  2. 另一个是系统时钟,是linux系统Kernel时间。

当Linux启动时,系统Kernel会去读取硬件时钟的设置,然后系统时钟就会独立于硬件运作。有时我们会发现系统时钟和硬件时钟不一致,因此需要执行时间同步,下面就分享一下时间设置及时钟同步的命令使用方法。

另一方面,在大数据集群环境中,要求每台集群的时间必须是同步的,这样我们就会要求每台集群的时间必须和一台服务的时间是同步的,

有几种方式可以做时间同步的:

一、直接修改时间

1.1 date命令

date :查看当前时间,结果如下: 
[root@cdh3 ~]# date 
Sat Jan 6 20:52:09 CST 2018 

#设置当前时间,结果如下: 
[root@cdh3 ~]# date -s 20:50:09 
Sat Jan 6 20:50:09 CST 2018 

[root@cdh3 ~]# date 
Sat Jan 6 20:50:10 CST 2018 

#将时间设置为2014年6月18日14点16分30秒(MMDDhhmmYYYY.ss)
date 0618141614.30

#其他例子
date -s 2019-09-12 10:00:00

当时这个只能设置一次,随着服务的运行时间差会延长,没有办法做到实时的时间同步

1.2 hwclock/clock 命令查看、设置硬件时间

查看系统硬件时钟

hwclock  --show 或者
clock  --show

设置硬件时间

hwclock --set --date="06/18/14 14:55" (月/日/年时:分:秒)或者# clock --set --date="06/18/14 14:55" (月/日/年时:分:秒)

1.3 同步系统及硬件时钟

硬件时钟与系统时钟同步:

# hwclock --hctosys 或者 # clock --hctosys  hc代表硬件时间,sys代表系统时间,即用硬件时钟同步系统时钟

系统时钟和硬件时钟同步:

# hwclock --systohc或者# clock --systohc  即用系统时钟同步硬件时钟

二、时区设置

2.1 方法1:tzselect

  1. 执行tzselect命令–>选择Asia–>选择China–>选择east China - Beijing, Guangdong, Shanghai, etc–>然后输入1。
  2. 执行完tzselect命令选择时区后,时区并没有更改,只是在命令最后提示你可以执行TZ=‘Asia/Shanghai’; export TZ 并将这行命令添加到.profile中,然后退出并重新登录。参考下图中date命令看到的结果,最终时区显示为CST,即中国标准时间。
  3. 修改配置文件来修改时区
  4. 修改/etc/sysconfig/clock ZONE=Asia/Shanghai
  5. rm /etc/localtime3、链接到上海时区文件
  6. ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  7. 执行完上述过程后,重启机器,即可看到时区已经更改。

2.2 方法2:

timedatectl set-timezone "Asia/Shanghai" 

三、同步某个服务器

3.1 ntpdate 命令

ntpdate -u 210.72.145.44 :网络时间同步命令 

我这边采用和集群中的某一台机器做时间同步

[root@cdh3 ~]# ntpdate -u cdh1 
6 Jan 20:53:59 ntpdate[4454]: step time server 192.168.18.160 offset 154.003952 sec 

[root@cdh3 ~]# date 
Sat Jan 6 20:54:01 CST 2018

注意:若不加上-u参数, 会出现以下提示:no server suitable for synchronization found

-u:从man ntpdate中可以看出-u参数可以越过防火墙与主机同步;

210.72.145.44:中国国家授时中心的官方服务器。

ntp常用服务器:
  • 中国国家授时中心:210.72.145.44
  • NTP服务器(上海) :ntp.api.bz
  • 美国:time.nist.gov
  • 复旦:ntp.fudan.edu.cn
  • 微软公司授时主机(美国) :time.windows.com
  • 台警大授时中心(台湾):asia.pool.ntp.org

经测试中国国家授时中心与NTP上海服务器可以正常同步时间,注意需要加上-u参数!

先ntpdate更新系统时间,再clock -w, 同步BIOS时间

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn