hwclock
是 Linux 系统中用于读取或设置硬件时钟(RTC,Real-Time Clock)的命令行工具。硬件时钟是主板上的独立计时芯片,即使系统关机仍能保持时间。以下是 hwclock
命令的详细解析:
显示硬件时钟时间
sudo hwclock
输出示例:
2023-10-25 14:30:00.123456-05:00
同步硬件时钟与系统时钟
sudo hwclock --systohc
sudo hwclock --hctosys
选项 | 说明 |
---|---|
-r 或 --show |
显示硬件时钟时间(默认行为)。 |
-w 或 --systohc |
将系统时间同步到硬件时钟。 |
-s 或 --hctosys |
将硬件时钟时间同步到系统时间(常用于开机脚本)。 |
--set |
手动设置硬件时钟时间(需配合 --date )。 |
--date=<时间> |
指定要设置的时间(格式:"YYYY-MM-DD HH:MM:SS" )。 |
--utc |
硬件时钟使用 UTC 时间(默认行为,与 BIOS 设置相关)。 |
--localtime |
硬件时钟使用本地时间(需与系统时区一致)。 |
--test |
模拟操作(不实际修改硬件时钟)。 |
--debug |
显示调试信息。 |
sudo hwclock --set --date="2023-10-25 15:00:00" --utc
bash
sudo hwclock --utc
bash
sudo hwclock --localtime
# 先同步网络时间(需安装 ntp/chrony)
sudo ntpdate pool.ntp.org
# 将校准后的系统时间写入硬件时钟
sudo hwclock --systohc
权限要求
root
权限(使用 sudo
)。时区一致性
bash
timedatectl
虚拟化环境
NTP 服务冲突
chronyd
或 ntpd
),频繁手动修改时间可能导致服务异常。hwclock
与 timedatectl
的区别?timedatectl
(systemd 工具)提供更高级的时间管理(时区、NTP 等),底层仍可能调用 hwclock
。sudo hwclock --debug | grep "Hardware clock is on"
硬件时钟与系统时钟
系统启动流程
Linux 开机时通常通过 /etc/adjtime
文件校准硬件时钟与系统时钟的关系。
通过合理使用 hwclock
,可以确保系统时间的准确性和一致性。如需自动化时间同步,建议结合 NTP 服务(如 chrony
)。