在使用linux的过程中,可能遇到系统时候和硬件时钟不一致,即date,hwclock --show看到的时钟不一致。
Linux时钟分为系统时钟(System Clock)和(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。
Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。如果调整BIOS的时间 ,也就是硬件时钟。不用重启机器,在linux系统中就能完成。
1. 在同步时间前需要先检查时区是否是china的CTS时区
必须确保时区准确,否则时间同步后显示不正常
![2363252-a1d0c46853cdb7e0.png](https://i-blog.csdnimg.cn/blog_migrate/42ebbe486d0ac156525291f957434506.png)
2. 如果时区不正确,如,在中国,时区是CTS,若不是,修改方式:
执行命令: tzselect
![2363252-bcca26d78eb39f0f.png](https://i-blog.csdnimg.cn/blog_migrate/d13a8d1df49002a0714c3cf52b05f43a.png)
![2363252-36128dcddfbb918e.png](https://i-blog.csdnimg.cn/blog_migrate/537c8eed2296eced4cdde2e591c276fc.png)
将时区信息拷贝,并覆盖原来的时区信息,操作命令路图3所示:
![2363252-5d35d93c226e3e62.png](https://i-blog.csdnimg.cn/blog_migrate/7fd510edcd7d58dc044a12f9445dceae.png)
2. 操作系统有两个时间: 软件时间和硬件时间
软件时间: 查看方式 date,是是距离1970.1.1的时间差;
硬件时间: sudo hwclock -r,硬件时间是BIOS的时间。
-w : 将软件时间写入到硬件时间;
-r : 读取硬件时间。
查看并同步软件时间和硬件时间:
执行命令: sudo hwclock -w; hwclock -r ; date
或者 sudo hwclock --systohc
# hwclock --set --date="4/28/05 11:10:05"(月/日/年 时:分:秒)
# clock --set --date="07/07/06 10:19" (月/日/年 时:分:秒)
如果让系统时间与硬件时钟同步,则用
# hwclock --hctosys (hc代表硬件时间,sys代表系统时间)
# clock --systohc 系统时钟和硬件时钟同步:
参考文献: