Linux 系统时间和硬件时间

一、首先要弄清几个概念:
1. “系统时间”与“硬件时间”
系统时间: 一般说来就是我们执行 date 命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间。

硬件时间: 主板上BIOS中的时间,由主板电池供电来维持运行,系统开机时要读取这个时间,并根据它来设定系统时间(注意:系统启动时根据硬件时间设定系统时间的过程可能存在时区换算,这要视具体的系统及相关设置而定)。

二、查看系统时间和硬件时间

1. 系统时间 date
直接调用 date,得到的是本地时间。如果想得到UTC时间的话,使用 date -u。

2. 硬件时间 /sbin/hwclock
直接调用 /sbin/hwclock 显示的时间就是 BIOS 中的时间吗?未必!这要看 /etc/sysconfig/clock 中是否启用了UTC,如果启用了UTC(UTC=true),显示的其实是经过时区换算的时间而不是BIOS中真正的时间,如果加上 --localtime 选项,则得到的总是 BIOS 中实际的时间.

三、系统启动和关闭时,硬件时间与系统时间之间的同步有两种方式(假设在中国,用CST代表本地时间):

方式A: 使用UTC(对linux就是 /etc/sysconfig/clock 中 UTC=true)

开机: BIOS------->UTC(将BIOS中的时间看成是UTC)------(时区变化)----->CST
关机: CST -------(时区变化)----->UTC-------存储到------>BIOS

方式B: 不使用UTC(对linux就是 /etc/sysconfig/clock 中 UTC=false)

开机: BIOS--------------------->CST(将BIOS中的时间看成是CST)
关机: CST ---------存储到------>BIOS

四、系统时间和硬件时间的同步

同步系统时间和硬件时间,可以使用hwclock命令。

//以系统时间为基准,修改硬件时间

[root@localhost ~]# hwclock --systohc <== sys(系统时间)to(写到)hc(Hard Clock)

[root@localhost ~]# hwclock -w

//以硬件时间为基准,修改系统时间

[root@localhost ~]# hwclock --hctosys

[root@localhost ~]# hwclock -s

------------------------------------------------------------------------------------

采用crontab和ntp结合进行时间同步

*/30 * * * * /usr/sbin/ntpdate puppetmaster.com.cn(时间服务器的主机名) >>/root/ntdate.log 2>&1 && /sbin/clock --systohc


如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @   Dus  阅读(6217)  评论(1编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示