linux系统时间有两个,一个是硬件时间,即BIOS时间,就是我们进行CMOS设置时看到的时间,另一个是系统时间,是linux系统Kernel时间。当Linux启动时,系统Kernel会去读取硬件时钟的设置,然后系统时钟就会独立于硬件运作。有时我们会发现系统时钟和硬件时钟不一致,因此需要执行时间同步。

方法一

date 查看/设置系统时间

#1、将日期设置为2022年08月21日
[root@linux-node ~]# date -s 08/21/22

#2、将时间设置为14点20分50秒
[root@linux-node ~]# date -s 14:20:50

#3、将时间设置为2022年08月21日14点16分30秒(MMDDhhmmYYYY.ss)
[root@linux-node ~]# date 0821141622.30

hwclock/clock 查看/设置硬件时间

#1、查看系统硬件时钟
[root@linux-node ~]# hwclock --show 
#或者
[root@linux-node ~]# clock --show
#2、设置硬件时间
[root@linux-node ~]# hwclock --set --date="08/21/22 14:55" (月/日/年时:分:秒) 
#或者
[root@linux-node ~]# clock --set --date="08/21/22 14:55" (月/日/年时:分:秒)

同步系统及硬件时间

[root@linux-node ~]# hwclock --hctosys 
#或者
[root@linux-node ~]# clock --hctosys  
#备注:hc代表硬件时间,sys代表系统时间,以硬件时间为基准,系统时间找硬件时间同步


[root@linux-node ~]# hwclock --systohc
#或者
[root@linux-node ~]# clock --systohc 
#备注:以系统时间为基准,硬件时间找系统时间同步

方法二

时区设置用tzselect 命令来实现。但是通过tzselect命令设置TZ这个环境变量来选择的时区,需要将变量添加到.profile文件中。

执行tzselect命令

执行tzselect命令 --> 选择Asia --> 选择China --> 选择east China - Beijing, Guangdong, Shanghai, etc-->然后输入1。

执行完tzselect命令选择时区后,时区并没有更改,只是在命令最后提示你可以执行 TZ=’Asia/Shanghai’; export TZ 并将这行命令添加到.profile中,然后退出并重新登录。

修改配置文件来修改时区

[root@linux-node ~]# echo "ZONE=Asia/Shanghai" >> /etc/sysconfig/clock         
[root@linux-node ~]# rm -f /etc/localtime
#链接到上海时区文件       
[root@linux-node ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

执行完上述过程后,重启机器,即可看到时区已经更改。

在centos7中设置时区的命令也可以通过 timedatectl 命令来实现

[root@linux-node ~]# timedatectl set-timezone Asia/Shanghai