`

我使用过的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 hwclock显示与设定硬件时钟命令详解.pdf

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

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

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

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

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

    Linux hwclock命令用法详解

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

    hwclock linux 时钟

    hwclock linux 时钟hwclock linux 时钟

    hwclock命令 系统设置

    hwclock命令是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。 在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的...

    util-linux-ng-2.17源码(含fdisk)

    util-linux-ng-2.17源码(含fdisk) Here is a list of all documented files with brief descriptions: util-linux-ng-2.17.2/disk-utils/blockdev.c [code] util-linux-ng-2.17.2/disk-utils/cramfs.h [code] ...

    明远智睿i.MX6-RTC部分的hwclock

    若明远智睿的i.MX6中linux下的hwclock命令不能用,则需替换/sbin目录下hwclock文件。

    linux修改系统时间

    修改系统时间:date -s '2023-04-27 11:06:00' 查看硬件时钟时间:hwclock --show 系统时钟和硬件时钟同步:hwclock --systohc

    Linux命令搜索工具linux-command.zip

    Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。   Linux命令分类 这里存放Linux 命令大全并不全,你可以通过linux-command来搜索,它是把 command 目录里面搜集的...

    linux硬件管理命令

    Linux硬件管理相关命令,例如lspci、lsusb、hwclock、date、bc、last等命令

    RTC-PCF8563TS 实时时钟.pdf

    The PCF8563 is a CMOS1 Real-Time Clock (RTC) and calendar optimized for low power consumption. A programmable clock output, interrupt output, and voltage-low detector are also provided....

    Linux命令笔记1

    硬件时钟命令:clock/hwclock(hardware clock) 系统时钟命令:date 按指定格式输入:硬件时间和系统时间可以单独修改查看日历 ca

    Linux 中util-linux 工具包的源码

    Linux 中util-linux 工具包的源码,可用于交叉编译,里面包含hwclock等Linux命令的完整版,busybox里面系统自带的命令是阉割版,这里的是完整版本

    LINUX alarm时钟应用简化封装

    该模块对alarm进行封装,目的是简化alarm时钟信号的应用,并且模块增加了对多次时钟设置的支持,在当前时钟结束之后,应用可以自动恢复到最近上一次时钟时间在本次时钟之后的时钟,时间在当前时钟之前的自动取消 ,当然...

    Linux操作系统时间设置方法介绍

    Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中用于时钟查看和设置的命令主要有date、hwclock和clock。本文简单介绍了这几个设置时间的命令。

    Linux命令大全(CHM格式离线版)

    Linux命令大全(CHM格式离线版) Linux命令大全(修改版) 进行重新编译的说明 文件传输 bye ftp ftpcount ftpshut ftpwho ncftp tftp uucico uucp uupick uuto 备份压缩 ar bunzip2 bzip2 bzip2recover compress cpio ...

    Linux命令大全完整版

    2. linux系统设置命令 27 alias 27 apmd(advanced power management BIOS daemon) 27 aumix(audio mixer) 27 bind 29 chkconfig(check config) 29 chroot(change root) 30 clock 30 crontab 31 declare 31 ...

    archrc:Arch Linux 配置

    一定要先设置硬件时钟 # timedatectl set-ntp true # hwclock --systohc --utc 准备磁盘,挂载分区,运行 pacstrap 和 genfstab。 作为根 chroot后,安装一些需要的包 # pacman-key --init # pacman-key --...

    Linux apmd命令用法详解

    Linux apmd命令 Linux apmd命令用于进阶电源管理服务程序。 apmd负责BIOS进阶电源管理(APM)相关的记录,警告与管理工作。 语法 apmd [-u v V W][-p ][-w ] 参数: -p或–percentage 当电力变化的幅度超出设置的...

Global site tag (gtag.js) - Google Analytics