hwclock命令,与clock命令是同一个命令,主要用来查询和设置硬件时钟query and set the hardware clock (RTC))。RTC=Real Time Clock,也就是硬件时钟。在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。根据不同参数设置,hwclock命令既可以将硬件时钟同步到系统时钟,也可以将系统时钟同步到硬件时钟


关于系统时钟与硬件时钟的关系的说法,网上分成了两种:

第一种:当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。(错误说法)

第二种:Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。


到底那一种才是正确的呢?

执行一下man hwclock可以看到里面有一段:

hwclock命令详解_第1张图片

这段文字说明,第二种说法是正确的,第一种说法是错误的。

hwclock命令详解_第2张图片

如果使用date命令修改了系统时间,并不会自动去修改硬件时钟,这大概就是为什么需要hwclock命令的原因吧。(在虚拟机测试得出,不管是修改了系统时间还是修改了硬件时钟,重启后,系统时间修改成啥样就啥样,若没修改就不变,硬件时钟更新为系统时钟)

硬件时钟与系统时钟同步:

# hwclock --hctosyshc代表硬件时间,sys代表系统时间)

系统时钟和硬件时钟同步:(让系统的时间同步到硬件时钟)

# hwclock --systohc


查看硬件时钟用命令:

hwclock --show 或者 hwclock –r

使用hwclockclock命令查看和设置硬件时钟

# hwclock --show

# clock --show


设置系统时钟的操作:通用的设置格式:date 月日时分年.


设置硬件时钟的操作:通用的设置格式:hwclock/clock --set --date=//时:分:秒