Linux From ScratchLFS11.0构建 LFS 系统 - 配置系统时钟

本文讨论如何配置 systemd-timedated 系统服务,它的作用是配置系统时钟和时区。

如果您不确定您的硬件时钟是否设置为 UTC,运行 hwclock --localtime --show 命令,它会显示硬件时钟给出的当前时间。如果这个时间和您的手表显示的一致,则说明硬件时钟被设定为本地时间。相反,如果 hwclock 输出的时间不是本地时间,则硬件时钟很可能被设定为 UTC 时间。根据您的时区,在 hwclock 显示的时间上加减对应的小时数,进行进一步的验证。例如,如果您现在处于莫斯科时区,即 GMT -0700,在本地时间上加 7 小时,再进行比较。

systemd-timedated 读取 /etc/adjtime,并根据其内容将硬件时钟设定为 UTC 或本地时间。

如果您的硬件时钟设置为本地时间,以下列内容创建 /etc/adjtime 文件:

cat > /etc/adjtime << "EOF"
0.0 0 0.0
0
LOCAL
EOF

如果 /etc/adjtime 在初次引导时不存在,systemd-timedated 会假设硬件时钟使用 UTC,并据此调整该文件。

您也可以使用 timedatectl 工具告诉 systemd-timedated 您的硬件时钟是 UTC 还是本地时间:

timedatectl set-local-rtc 1

timedatectl 也能修改系统时间和时区。

如果要修改系统时间,执行以下命令:

timedatectl set-time YYYY-MM-DD HH:MM:SS

硬件时钟也会同时被更新。

要修改当前时区,执行以下命令:

timedatectl set-timezone TIMEZONE

您可以通过运行以下命令查看可用的时区列表:

timedatectl list-timezones

网络时钟同步

从版本 213 开始,systemd 附带了一个名为 systemd-timesyncd 的守护程序,可以用于将系统时间与远程 NTP 服务器同步。

该守护程序没有被设计为替代现有成熟的 NTP 守护程序,而是一个仅仅实现了 SNTP 协议的客户端,可以用于一些不太复杂的任务,或是资源紧张的系统。

从 systemd 版本 216 开始,systemd-timesyncd 守护进程被默认启用。如果希望禁用它,执行以下命令:

systemctl disable systemd-timesyncd
可以在 /etc/systemd/timesyncd.conf 中修改 systemd-timesyncd 使用的服务器。

注意,当系统时钟设定为本地时间时,systemd-timesyncd 不会更新硬件时钟。


本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐