如何设置系统时钟与RTC (硬件时钟/ BIOS)同步。我正在编写一个脚本,它使用系统时钟来启动系统并发出警报。
为此,唯一的要求是有一个适当的RTC时钟。在我的测试系统(SLES 10 SP4)上,我使用NTP服务器来管理系统时钟。但RTC的时钟总是在前面。
例如:当前系统时钟显示14:00 26.05.2016,RTC显示16:00小时。我阅读了hwclock的手册页,它显示了以下命令
hwclock --systohc --localtime将RTC时钟同步到系统时钟。它做到了。
但是在重新启动/关机之后,当系统再次出现时,RTC再次陷入混乱。因此,当系统重新启动时,还会有更多的东西控制RTC。
有人能给我指明正确的方向吗。提前谢谢。
发布于 2016-05-26 13:08:30
您可以使用hwclock命令来设置硬件时钟。
男子hwclock page:
--set Set the Hardware Clock to the time given by the --date option.您可以将当前系统时间应用于hw时钟:
hwclock -w甚至手工操作:
hwclock --set --date "$(date)"在你的问题中添加了细节之后,我的回答是不够的,下面是更多的细节。
您可以使用timedatectl status命令检查时区。
用timedatectl list-timezones列出时区。
您可以将时区设置为UTC,例如使用timedatectl set-timezone UTC。
您将发现有关时区设置这里的更多详细信息。
发布于 2018-04-07 07:46:58
这是虚拟机吗?还是刀片硬件上的物理系统?
一些制造商的刀片硬件可以选择将每个刀片的硬件时钟同步到刀片外壳的管理处理器的时钟。至少在富士通的刀片硬件(某些型号)上,默认情况下启用了这个同步选项。要关闭它,您必须访问刀片的BIOS设置。
虚拟机通常在VM初始化时根据物理主机系统的时钟同步它们的虚拟硬件时钟,因为虚拟机不能有真正的物理硬件时钟。如果您的主机提供商主要是Windows系统,则同步可能已配置为使用本地时间而不是UTC。
还有一个问题可以同时影响物理系统和虚拟系统,特别是在运行企业Linux发行版时:
在hwclock工具和指示在/etc/adjtime中将RTC设置为UTC或本地时间的约定之前,有几种特定于发行版的方法来存储此设置。为了向后兼容,这些方法可能仍然存在。企业发行版特别热衷于向后兼容性。
当/etc/adjtime中的UTC/local设置与/etc/sysconfig/clock、/etc/default/rcS或类似的相应遗留设置发生冲突时,这可能会导致问题:发行版的initramfs可能尊重遗留方法,而由sysadmin交互运行的hwclock命令遵循/etc/adjtime,除非被重写--并且只有在使用--utc或--local选项时,才会自动将新设置存储到/etc/adjtime。
要解决这个问题:
/etc/adjtime和/etc/sysconfig/clock、/etc/default/rcS或类似的任何遗留设置对于硬件时钟是在协调世界时还是在本地时间运行是一致的,以避免不同的工具做出不同的解释。如果不这样做,您可能会得到一个系统,它的时钟在每次引导时都会以当前UTC偏移量的精确变化。
如果您需要将再次发生这种情况的风险降到最低,您可能会研究您的发行版是否支持以某种方式将遗留的UTC/localtime配置设置为“中性的”,这样/etc/adjtime将是这件事的唯一真相来源。因为启动脚本通常只通过hwclock访问硬件时钟,因此遗留配置实际上可能是不必要的。
发布于 2019-09-16 09:32:02
在基于systemd的系统上,如果时钟没有最佳设置,运行timedatectl将发出警告:
Warning: The system is configured to read the RTC time in the local time zone.
This mode can not be fully supported. It will create various problems
with time zone changes and daylight saving time adjustments. The RTC
time is never updated, it relies on external facilities to maintain it.这个问题可以通过以下方式加以解决:
timedatectl set-local-rtc 0
https://unix.stackexchange.com/questions/285674
复制相似问题