`

我使用过的Linux命令之hwclock - 查询和设置硬件时钟

阅读更多

我使用过的Linux命令之hwclock - 查询和设置硬件时钟

本文链接:http://codingstandards.iteye.com/blog/804830   (转载请注明出处)

 

用途说明

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

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

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

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

到底那一种才是正确的呢?执行一下man hwclock可以看到里面有一段:

man hwclock 写道
The System Time is the time that matters. The Hardware Clock’s basic purpose in a Linux system is to keep time
when Linux is not running. You initialize the System Time to the time from the Hardware Clock when Linux
starts up, and then never use the Hardware Clock again. Note that in DOS, for which ISA was designed, the
Hardware Clock is the only real time clock.

这段文字说明,第二种说法是正确的,第一种说法是错误的。但网上大部分文章都是第一种说法,所以说,网络虽好,要注意甄别。

man hwclock 写道
It is important that the System Time not have any discontinuities such as would happen if you used the date(1L)
program to set it while the system is running. You can, however, do whatever you want to the Hardware Clock
while the system is running, and the next time Linux starts up, it will do so with the adjusted time from the
Hardware Clock.

如果使用date命令修改了系统时间,并不会自动去修改硬件时钟,因此,当系统下次重启时,系统时钟还会从硬件时钟去取,date设置的时间就无效了。这大概就是为什么需要hwclock命令的原因吧。

常用参数

  -r, --show         读取并打印硬件时钟(read hardware clock and print result )
  -s, --hctosys      将硬件时钟同步到系统时钟(set the system time from the hardware clock )
  -w, --systohc     将系统时钟同步到硬件时钟(set the hardware clock to the current system time )

使用示例

示例一 hwclock命令与clock命令是一个东西

[root@new55 ~]# type -a hwclock
hwclock is /sbin/hwclock
hwclock is /usr/sbin/hwclock
[root@new55 ~]# ls -l /sbin/hwclock /usr/sbin/hwclock
-rwxr-xr-x 1 root root 34096 2010-01-07 /sbin/hwclock
lrwxrwxrwx 1 root root    18 08-13 00:14 /usr/sbin/hwclock -> ../../sbin/hwclock

[root@new55 ~]# type -a clock
clock is /sbin/clock
[root@new55 ~]# ls -l /sbin/clock
lrwxrwxrwx 1 root root 7 08-13 00:14 /sbin/clock -> hwclock
[root@new55 ~]#

示例二 显示硬件时钟

[root@new55 ~]# hwclock
2010年11月06日 星期六 21时09分28秒  -0.134840 seconds
[root@new55 ~]# hwclock -r
2010年11月06日 星期六 21时09分33秒  -0.469123 seconds
[root@new55 ~]# hwclock --show
2010年11月06日 星期六 21时09分45秒  -0.127548 seconds
[root@new55 ~]#

 

示例三 修改日期并同步到硬件时钟

[root@new55 ~]# date
2010年 11月 06日 星期六 21:11:57 CST
[root@new55 ~]# date 11062112     <== 格式 mmddHHMM,即 月日时分
2010年 11月 06日 星期六 21:12:00 CST
[root@new55 ~]# hwclock -w
[root@new55 ~]# hwclock
2010年11月06日 星期六 21时12分13秒  -0.648818 seconds
[root@new55 ~]#

 

注:要使系统时间准确,最好还是使用ntp方式。

示例四 使用ntpdate命令从网络同步时间,再同步到硬件时钟

ntpdate命令是使用NTP协议来从网络同步时间的命令。NTP=Network Time Protocol 网络时间协议。

[root@new55 ~]# ntpdate 0.rhel.pool.ntp.org
 6 Nov 21:17:55 ntpdate[4829]: step time server 123.146.124.28 offset -1.025258 sec
[root@new55 ~]# date
2010年 11月 06日 星期六 21:17:59 CST
[root@new55 ~]# hwclock -w
[root@new55 ~]#

问题思考

1. 为什么Linux要将时钟分为系统时钟和硬件时钟,这样做有什么好处?

相关资料

【1】91linux.com Linux hwclock 命令 其他资料对硬件时钟与系统时钟的关系的说法有问题,所以此处不列出。

 

 

返回 我使用过的Linux命令系列总目录

 

3
4
分享到:
评论
3 楼 codingstandards 2011-09-06  
waiting 写道
开机可以ntpdate,平时还是ntpd比较稳妥。

2 楼 kandari 2011-09-06  
不错
1 楼 waiting 2010-11-07  
开机可以ntpdate,平时还是ntpd比较稳妥。

相关推荐

    linux系统时间和硬件时钟问题(date和hwclock)

    ### Linux系统时间和硬件时钟问题...正确理解和使用`date`和`hwclock`命令,结合`/etc/sysconfig/clock`文件的配置,可以帮助我们有效地管理Linux系统中的时间设置,避免因时间同步问题导致的数据错误和其他系统故障。

    Linux hwclock显示与设定硬件时钟命令详解.pdf

    Linux hwclock显示与设定硬件时钟命令详解.pdf

    Linux hwclock显示与设定硬件时钟命令详解.docx

    hwclock 命令是 Linux 中的一个重要命令,用于显示和设定硬件时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在 BIOS 画面设定的时钟。在 Linux 中,硬件时钟和系统时钟是两个独立的概念。系统时钟是指 kernel ...

    Linux设置时间与同步的方法.docx

    可以使用 hwclock 或 clock 命令来查看和设置硬件时钟。例如: ``` # hwclock --show # clock --show # hwclock --set --date=09/17/2021 13:26:00 # clock --set --date=09/17/2021 13:26:00 ``` 同步系统时钟和...

    修改linux系统和硬件时间

    通过了解系统时钟和硬件时钟的区别以及如何使用`date`、`hwclock`等命令进行设置,可以帮助系统管理员有效地管理时间同步问题。此外,利用图形化工具和Internet时间同步功能,也可以进一步提高时钟设置的便利性和...

    Linux hwclock命令用法详解

    Linux hwclock命令用于显示与设定硬件时钟。 在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统...

    ARM2440平台LINUX系统时间的设置修改方法

    2. **同步硬件时钟**:一旦系统时间被设置,使用`hwclock -w`命令将系统时间同步到硬件时钟上。 3. **开机自动同步**:为了确保每次开机都能获取到准确的时间,可以在`/etc/init.d/rcS`文件中添加`hwclock -s`命令...

    在虚拟终端中使用date命令来查看和设置系统时间

    本文将深入解析`date`命令的功能、语法及其应用场景,同时探讨与硬件时钟交互的`hwclock`及`clock`命令的使用方法。 ### 一、`date`命令概述 `date`命令是Unix/Linux系统中用于显示和修改系统当前日期和时间的强大...

    Linux时间同步_ntpd_ntpdate-简单设置.docx

    同步系统时间与硬件时间,可以使用`hwclock --systohc`将系统时间写入硬件时钟,反之使用`hwclock --hctosys`。 当需要多台机器之间的时间同步时,可以使用Network Time Protocol (NTP)。NTPd服务是标准的解决方案...

    linux硬件管理命令

    `hwclock`是一个与系统时钟交互的命令,用于读取和设置BIOS(基本输入输出系统)中的硬件时钟。硬件时钟在系统关闭时仍然保持时间,`hwclock -r`用于读取硬件时钟的时间,`hwclock -w`则用于将系统时间写入硬件时钟...

    linux系统时间设置,和大家分享分享linux

    同步系统时钟和硬件时钟可以使用`hwclock --hctosys`或`clock --hctosys`命令,反之则使用`hwclock --systohc`或`clock --systohc`。 此外,Linux发行版通常提供图形界面工具来设置时间,如Red Hat 8.0中的日期与...

    linux的date命令及系统时间设置.pdf

    除了`date`命令,Linux还提供了`hwclock`命令来查看和设置硬件时钟。`hwclock`通常需要root权限才能操作,因为它直接影响到主板上的RTC。你可以使用`hwclock -r`来读取硬件时钟的时间,或者使用`hwclock -w`将系统...

    Linux 中util-linux 工具包的源码

    首先,`util-linux`包中包含了多个日常使用的命令,例如`hwclock`,这是一个用于与系统实时时钟交互的工具,可以读取和设置硬件时钟的时间。了解`hwclock`的源码,我们可以学习到如何通过系统调用与硬件进行通信,...

    Linux命令大全完整版.pdf

    - 硬件时钟命令:如clock(设置系统时间)和hwclock(设置硬件时钟)等,用于管理系统的时间设置。 - 模块管理命令:如insmod(安装模块)、rmmod(移除模块)、modprobe(自动处理模块依赖关系)等,用于内核模块的...

    Linux系统基本命令-学员笔记.docx

    - `#hwclock --set --date="10/20/11 14:56:00"`:设置硬件时钟的时间。 - `#hwclock --hctosys`:将硬件时钟的时间同步到系统时钟。 #### 五、Linux如何获得帮助 - **man手册**:查看命令的手册页面,提供详细的...

    Linux系统时间设置.docx

    对于硬件时钟的查看和设置,可以使用`hwclock`或`clock`命令。这两个命令功能相似,但`clock`命令在支持x86架构的基础上,还支持Alpha硬件体系。要显示硬件时钟时间,执行`hwclock -r`或`clock -r`,设置硬件时间则...

    linux-NTP时钟配置

    在Linux中,系统时钟和硬件时钟(RTC)是两个独立的概念。系统时钟是操作系统中的时间,而硬件时钟是在BIOS中设置的独立时钟。在启动时,系统时钟会从硬件时钟读取初始值,然后两者可能独立运行。`date`、`hwclock`...

    设置Linux时间服务器.pdf

    hwclock和clock命令则用于查看和设置硬件时钟,它们的`-show`选项用于显示硬件时钟的时间,`-set`选项可以用来更新硬件时钟。 同步系统时钟和硬件时钟通常在系统启动时自动完成,但也可以通过命令手动同步。例如,...

Global site tag (gtag.js) - Google Analytics