Linux系统时间介绍和校时

本文介绍了Linux系统中关于时间管理的关键概念,包括Localtime(本地时间)、UTC(世界协调时)、RTC(实时时钟)以及时区设置。Localtime基于UTC加上时区偏移,RTC提供系统当前时间。文章还提到了时区的定义,如中国的CST(中国标准时间)以及如何更新时区信息。此外,讨论了Linux系统中校时方法,如NTP和chronyd,确保系统时间的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


从timedatectl 可以看到有本地时间、UTC时间、RTC时间和时区信息,如下:
Local time: Tue 2022-06-13 14:30:31 CST
Universal time: Tue 2022-06-13 06:30:31 UTC
RTC time: Tue 2022-06-13 06:30:32
Time zone: Asia/Shanghai (CST, +0800)

Local time:

Linux Local Time指的是Linux操作系统中的本地时间。同样的日期和时间,在不同的时区中可能有不同的显示结果。而本地时间则指的是计算机所在时区的日期和时间。Linux系统中,本地时间是指UTC(协调世界时,又称世界统一时间)加上该时区所对应的时间偏移量。

Universal time:

UTC,全称为世界协调时(Coordinated Universal Time),是一种时间标准,用于标记地球上不同地方的时间。UTC是以原子钟为基础,通过国际协调保持各地时间的一致性。它是航空、航海、科学研究、通讯等领域必备的时间标准,现已成为全球标准时间。不属于任意时区 ,协调世界时,又称世界统一时间,世界标准时间,国际协调时间,简称UTC。

RTC time:

RTC(Real Time Clock)定时器可以提供系统当前的日期、时间,用以支持实时操作系统和与其内核组件交互,RTC定时器在Linux操作系统中已经发挥了重要作用。

在Linux操作系统中,RTC定时器是一种实时时钟,一般由芯片或者外设支持。它在非授权的系统中可以精确的记录和提供系统的当前日期时间,在各种设备故障时可以提供故障提示信息,以便定位和排除故障。

RTC定时器的使用其实也包含各种功能,像时钟设置、闹铃等,而Linux系统中一般不需要用户进行任何配置,RTC定时器就可以工作。以下介绍一些Linux下RTC定时器常用的使用方法。

1. 启用RTC定时器:使用“hwclock –systohc”命令可以将E RTC定时器设置为系统时钟,Refet使用“hwclock –hctosys”命令从系统时钟里读取时间到RTC定时器。

2. 保存设置:使用“hwclock –w”可以将RTC定时器的设置保存在CMOS存储芯片,而在系统重启时,CMOS存储芯片又会将设置读取至RTC定时器,这样就可以保持定时器设置不变。

4. 突发时间改变:Linux系统中也允许用户手动改变RTC定时器所记录的当前时间,即使突发时间发生改变,也可以通过调用相应的函数来改变它的值,为系统时间提供一定的辅助作用。

RTC定时器对于系统的正常运行和作业处理起到了重要的作用,同时它还为Linux系统提供了额外的时间管理支持。此外,RTC定时器响应时间的相关数据也是系统调整时间的重要依据,可以及时监测和分析系统中时钟同步和变化情况,从而提供时间源。

Time zone:

时区(Time Zone)是地球上的区域使用同一个时间定义。1884年在华盛顿召开国际经度会议时,为了克服时间上的混乱,规定将全球划分为24个时区。在中国采用首都北京所在地东八区的时间为全国统一使用时间。中国首都北京位于东八区,东八区的标准时就是中国的标准时间。但中国的授时中心却建在陕西渭北。北京时间由中国科学院陕西天文台的原子钟确定,其误差率每30万年小于1秒

date:
Tue Jun 13 15:14:29 CST 2022
其中CST为中央标准时间(Central Standard Time)
Central Standard Time (USA) UT-6:00(美国cst时间:零区时减6个小时)
Central Standard Time (Australia) UT+9:30(澳大利亚cst:加9个半小时)
China Standard Time UT+8:00(中国cst:加8个小时)
Cuba Standard Time UT-4:00  (古巴cst:减4个小时)   

更新时区信息的方法和系统有关,最常用的方法是修改/etc/localtime文件:

/# ls -l /etc/timestamp 
-rw-r--r-- 1 root root 15 Jun 13 09:41 /etc/timestamp
/# ls -l /etc/localtime 
lrwxrwxrwx 1 root root 33 Jun 12 17:19 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai
 

Linux常用的校时方法:

NITZ/NTP/GPS(PPS)授时/RTC/chronyd

NITZ:网络标识和时区(英语:Network Identity and Time Zone,缩写NITZ)是一种通过无线网络向移动设备提供本地日期和时间、时区、夏时制偏移,以及网络提供商身份信息的机制,这通常用于移动电话自动更新系统时间

chronyc sources -v1 //查看时钟源

linux系统查看日历命令:

 cal -m
    January 2024
Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

REPRODUCIBLE_TIMESTAMP_ROOTFS = "0000000000"的作用是系统起来后,修改rootfs的时间,会让rootfs系统起来后的文件时间发生变化。

There are numerous other issues: file mtimes in rootfs, pre-link time... All of these will get a timestamp as specified by the variable REPRODUCIBLE_TIMESTAMP_ROOTFS. This is a catch-all timestamp, used in the final step of building an image.

参考:

Reproducible Builds - Yocto Project

修改SOURCE_DATE_EPOCH为系统起来后系统默认的时间发(比如改为SOURCE_DATE_EPOCH = "0000000000"则系统起来时间为1970),否则会是编译时间,可参考:

linux-yocto/6.6: update CVE exclusions · yoctoproject/poky@4945ca6 · GitHub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a2591748032-随心所记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值