【date】Linux date命令修改时间重启后失效的问题

date命令修改时间重启后失效的问题

问题

使用date命令修改时间成功,但是重启后失效

date命令
=> date MMDDhhmmYYYY.ss set

原因

  Linux中有硬件时钟系统时钟两种。硬件时钟:存储在主板上CMOS里,关机后该时钟依然运行,主板的电池为它供电,嵌入式设备有一个RTC模块,硬件时钟即RTC时钟。系统时钟是软件时钟,软件启动后去读取硬件时钟,然后独立运行。

  date命令修改的是系统时钟,所以重启后会失效

解决

  首先了解下hwclock命令

usage: hwclock [-rswtluf]

-f FILE Use specified device file instead of /dev/rtc (--rtc)
-l      Hardware clock uses localtime (--localtime)
-r      Show hardware clock time (--show)
-s      Set system time from hardware clock (--hctosys)
-t      Set the system time based on the current timezone (--systz)
-u      Hardware clock uses UTC (--utc)
-w      Set hardware clock from system time (--systohc)

  在用date修改完系统时间后,通过hwclock命令将系统时间同步到硬件时间
=> hwclock -uw
  其中“-w”是将系统时间同步到硬件时间,但是当参数只有“-w”,重启后会发现时间和我们设置的并不一样;这是因为硬件时间是以UTC时间来存取的,所以我们要加个“-u” 来进行时区转换。

总结

date命令修改时间后,将系统时间同步给硬件时间,这样重启后就不会失效了
=> date MMDDhhmmYYYY.ss set
=> hwclock -uw

    原文作者:永暮十三
    原文地址: https://blog.csdn.net/weixin_44904296/article/details/113520799
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞