linux的系统时间和硬件时间

linux时钟概述(https://blog.csdn.net/yuki5233/article/details/82220078)
linux系统有两个时钟:一个是硬件时钟,即BIOS时间;另一个是系统时钟,是linux系统Kernel(内核)时间。
在linux系统上程序运行时读取的时间都是系统Kernel(内核)时间。Linux 内核保存为自 UTC 时间 1970 年1月1日经过的秒数
每次Linux启动时,系统Kernel(内核)会先去读取硬件时钟的设置(但是此时的硬件时间不一定是准确的),然后系统时钟就会独立于硬件继续运作。
综上所述,所以想要永久修改linux时间并使得时间准确,就需要永久修改硬件时间,不然每次重新启动linux时,系统时间又变回之前的硬件时间。

Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。

Linux中的所有命令(包括函数)都是采用的系统时钟设置。如果系统内核突然崩溃,然后直接按电源重启,则系统没有进行 系统时间到硬件时钟的 同步;但是 系统启动时,又根据 /etc/sysconfig/clock 中UTC的参数,来同步硬件时钟到系统,这时就会出现时间问题:

0)假设系统的时区为CST(UTC+8);
1)假设原 /etc/sysconfig/clock 中 UTC=true,修改成 UTC=false;
2)如果此时系统未正常关机,系统时间未按参数 UTC=false 同步时间到硬件时钟(没有+8小时);
3)但系统被按电源重启后,系统读取到 UTC=false,认为硬件时钟为CST时间,直接用于系统时间;
4)那么此时,系统时间将少了8小时。

查看时区
[root@localhost  ~]# date -R; cat /etc/sysconfig/clock    
Thu, 28 Sep 2017 00:31:54 +0800    
ZONE="Asia/Shanghai"
##我们国家的东八区(+0800)

查看系统时间
[root@localhost ~]# date
Thu Aug 30 10:05:59 CST 2018

查看硬件时间
[root@localhost ~]# hwclock --show
或者
[root@localhost ~]# clock --show
Thu 30 Aug 2018 11:06:34 AM CST  -0.360419 seconds

综上可以看出:系统时间和硬件时间并不一致,其实系统时间才是准确的。
 

 

CentOS Linux中终端命令中执行以下命令:

1、vi /etc/sysconfig/clock   #编辑时间配置文件

     ZONE="Asia/Shanghai"
     UTC=false                          #设置为false,硬件时钟不于utc时间一致
     ARC=false

2、ln -sf /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime    #linux的时区设置为上海时区

3、ntpdate 192.43.244.18    #对准时间

如果没有安装ntp服务器,刚需要先执行以下命令:

yum install ntp #安装ntp服务器

4、/sbin/hwclock --systohc   #设置硬件时间和系统时间一致并校准

好了,我们的CentOS linux系统时间和计算机硬件时间终于都是cst时间了,并且都是上海时区,终于是正常啦

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值