美文网首页运维猫旅行·在路上
hwclock显示系统硬件时钟的日期和时间

hwclock显示系统硬件时钟的日期和时间

作者: 运维猫 | 来源:发表于2019-07-16 12:00 被阅读0次
    hwclock

    由Linux内核管理的时钟与硬件时钟不同。

    硬件时钟运行,即使您关闭您的系统。

    硬件时钟也称为BIOS时钟。您可以从BIOS更改硬件时钟的日期和时间。

    但是,当系统启动并运行时,仍然可以使用Linux hwclock命令查看和设置硬件日期和时间,如本教程所述。

    1. 显示硬件时钟日期和时间

    只需输入hwclock,它将显示系统硬件时钟的日期和时间。这是您将在BIOS屏幕上看到的相同日期和时间。您还可以使用选项-r或-show来显示日期和时间。

    [root@localhost ~]# hwclock

    2019年07月15日 星期一 22时10分57秒  -0.983165 秒

    [root@localhost ~]# hwclock -r

    2019年07月15日 星期一 22时11分13秒  -0.456334 秒

    [root@localhost ~]# hwclock --show

    2019年07月15日 星期一 22时11分32秒  -0.944544 秒

    注意:date命令的输出可能与hwclock命令的输出相同(实际上应该是相同的)。但是,date命令从Linux内核管理的时钟中获取日期和时间。在这个例子中,它们之间大约有10分钟的差异。

    [root@localhost ~]# date

    2019年 07月 15日 星期一 22:00:02 CST

    2. 将系统时间复制到硬件时间

    您确实希望确保硬件时钟具有与系统时钟相同的日期和时间。

    正如您目前所看到的,系统时钟和硬件时钟时间之间存在差异。

    [root@localhost ~]# date

    2019年 07月 15日 星期一 22:00:28 CST

    [root@localhost ~]# hwclock

    2019年07月15日 星期一 22时14分38秒  -0.957394 秒

    因此,使用如下所示的hwclock命令将硬件时钟设置为与系统时钟相同。这是hwclock命令的典型用法。

    [root@localhost ~]# hwclock -w

    [root@localhost ~]# hwclock 

    2019年07月15日 星期一 22时17分47秒  -0.066152 秒

    [root@localhost ~]# date

    2019年 07月 15日 星期一 22:17:50 CST

    注意:-w和-systohc选项都执行相同的操作。我喜欢用-systohc,因为它很容易记住。systohc代表“系统到硬件时钟”,它将时间从系统复制到硬件时钟。

    [root@localhost ~]# hwclock --systohc

    3.手动设置硬件时钟日期和时间

    您还可以使用-set和-date选项手动设置值,而不是将系统日期和时间复制到硬件时钟,如下所示。

    以下日期为2019年8月11日。请注意,如果您没有指定时间,它将被设置为12:00 AM。

    [root@localhost ~]# hwclock --set --date 8/11/2019

    [root@localhost ~]# hwclock 

    2019年08月11日 星期日 00时00分09秒  -0.254716 秒

    您还可以同时设置日期和时间,如下所示。请注意,它默认使用本地时间。

    [root@localhost ~]# hwclock --set --date "8/11/2019 23:10:45"

    [root@localhost ~]# hwclock

    2019年08月11日 星期日 23时10分49秒  -0.083291 秒

    您还可以获取date命令的输出,并将其传递给-set和-date选项,如下所示。

    [root@localhost ~]# hwclock --set --date "Sat Aug 10 08:31:24 PDT 2019"

    [root@localhost ~]# hwclock

    2019年08月10日 星期六 23时31分33秒  -0.184209 秒

    4. 将硬件时间复制到系统时间

    当硬件时钟显示正确的日期和时间,而不是系统时钟时,可以使用-s选项将硬件时间复制到系统时间,如下所示。

    [root@localhost ~]# hwclock 

    2019年08月10日 星期六 23时32分12秒  -0.439396 秒

    [root@localhost ~]# date

    2019年 07月 15日 星期一 22:22:31 CST

    [root@localhost ~]# hwclock -s

    [root@localhost ~]# date

    2019年 08月 10日 星期六 23:32:36 CST

    注意:-s和-hctosys选项都是一样的。我喜欢用-hctosys,因为它很容易记住。-hctosys代表“硬件时钟到系统”,它将时间从硬件时钟复制到系统时钟。

    [root@localhost ~]# hwclock -hctosys

    用法:

     hwclock [功能] [选项...]

    在测试此功能时,如果您已经错开了系统时间,可以使用date命令示例将其设置为正确的日期和时间。

    5. hwclock调试模式

    当您将-debug选项传递给hwclock时,它会显示一些调试信息,这些信息准确地显示了hwclock命令的功能。

    下面显示了当我们将系统时间复制到硬件时间时,它会做什么。

    [root@localhost ~]# hwclock --systohc --debug

    hwclock,来自 util-linux 2.23.2

    将使用 /dev interface to clock。

    上次漂移调整完成于1969(年)后 1565451084 秒

    上次校准完成于1969(年)后 1565451084 秒

    硬件时钟为 UTC 时间

    将假设硬件时钟保持为 UTC 时间。

    正在等等时钟滴答...

    ...已获取时钟滴答

    从硬件时钟读取的时间:2019/08/10 15:33:57

    硬件时钟时间:2019/08/10 15:33:57 = 1969(年)后 1565451237 秒

    1565451237.500000 is close enough to 1565451237.500000 (0.000000 < 0.001000)

    Set RTC to 1565451237 (1565451237 + 0; refsystime = 1565451237.000000)

    正在将硬件时钟设置为 15:33:57 = 1969(年)后 1565451237 秒

    ioctl(RTC_SET_TIME) 成功。

    将不调整漂移系数,因为从上次校准还不到一天。

    下面显示了当我们将硬件时间复制到系统时间时,它会做什么。

    [root@localhost ~]# hwclock -hctosys --debug

    用法:

     hwclock [功能] [选项...]

    注意:在alpha机器上,可以使用getepoch查看历元,setepoch设置历元。当您尝试在a on Alpha机器上运行这个程序时,您将得到以下错误机器。

    [root@localhost ~]# hwclock --setepoch --epoch=1952

    hwclock: 只有在 Alpha 计算机上内核才会为硬件时钟保持一个纪元(epoch)值。

    这版 hwclock 程序不是为 Alpha 计算机编译的(因此目前也不打算在 Alpha

     计算机上运行)。未执行任何操作。

    6. 调整硬件时钟

    当系统启动时,它占用硬件时钟的时间。hwclock -adjust选项使用/etc/adjtime文件来控制调整。

    [root@localhost ~]# hwclock --adjust

    /etc/adjtime文件有以下三行。

    [root@localhost ~]# cat /etc/adjtime

    0.004102 1565451237 0.000000

    1565451237

    UTC

    *第一行的三个值表示1)系统漂移率(以秒为单位),2)自1969年UTC最近调整以来的秒数(仅0)

    *第2行与第1行相同。我。自1969年UTC调整以来的秒数

    *第3行将显示UTC或LOCAL

    7. hwclock测试模式

    当您使用hwclock(使用-test选项)更改内容时,您可以在不做任何更改的情况下执行命令。

    systz选项将相应地更改系统时区。但是,由于我们给出了-test,所以它不会真正进行更改,但是它仍然可以毫无问题地执行命令。

    [root@localhost ~]# hwclock --systz --test

    将不设置系统时钟,因为正以测试方式运行。

    测试模式的最佳用法是将其与调试选项组合使用。我。当您想要查看hwclock命令做什么,但不做任何更改时。

    [root@localhost ~]# hwclock --systz --test --debug

    hwclock,来自 util-linux 2.23.2

    上次漂移调整完成于1969(年)后 1565451237 秒

    上次校准完成于1969(年)后 1565451237 秒

    硬件时钟为 UTC 时间

    将假设硬件时钟保持为 UTC 时间。

    当前系统时间:1565451565 = 2019/08/10 15:39:25

    正在调用 settimeofday:

    UTC:2019/08/10 15:39:25

    tv.tv_sec = 1565451565, tv.tv_usec = 560400

    tz.tz_minuteswest = -480

    将不设置系统时钟,因为正以测试方式运行。

    下面显示了-adjust选项在不做任何调整的情况下所做的工作。

    [root@localhost ~]# hwclock --adjust --test --debug

    hwclock,来自 util-linux 2.23.2

    将使用 /dev interface to clock。

    上次漂移调整完成于1969(年)后 1565451237 秒

    上次校准完成于1969(年)后 1565451237 秒

    硬件时钟为 UTC 时间

    将假设硬件时钟保持为 UTC 时间。

    正在等等时钟滴答...

    ...已获取时钟滴答

    从硬件时钟读取的时间:2019/08/10 15:40:09

    硬件时钟时间:2019/08/10 15:40:09 = 1969(年)后 1565451609 秒

    时间自上次调整过去了 372 秒

    需要插入 0 秒并将时间往回指 0.000018 秒

    需要的调整不到一秒,将不设置时钟。

    关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。

    相关文章

      网友评论

        本文标题:hwclock显示系统硬件时钟的日期和时间

        本文链接:https://www.haomeiwen.com/subject/pdvzkctx.html