本节将会讨论如何配置 systemd-timedated 系统服务,包括配置系统时间和时区。
如果你不确定是否将硬件时钟设置为 UTC,可以通过 hwclock --localtime --show 来查看。这将根据硬件时钟显示当前的时间。如果实现和手表的时间相同,应该是设置为本地时间了;如果时间不一致,应该是设置为 UTC 了。通过增减数小时,可以确定你所在时区。
systemd-timedated 读取 /etc/adjtime,且取决于该文件的内容是本地时间还是 UTC。
如果想要将硬件时钟设置为本地时间,使用以下命令建立 /etc/adjtime :
代码语言:javascript复制cat > /etc/adjtime << "EOF"
0.0 0 0.0
0
LOCAL
EOF
如果第一次启动时 /etc/adjtime 文件不存在,systemd-timedated 会认为硬件时钟设置成 UTC 并且以此调整该文件。
你也可以使用 timedatectl 程序来告诉 systemd-timedated 你的硬件时钟是 UTC 还是本地时间:
代码语言:javascript复制timedatectl set-local-rtc 1
timedatectl 也可以用来更改系统时间和时区。
要更改当前系统时间,使用下面的命令:
代码语言:javascript复制timedatectl set-time YYYY-MM-DD HH:MM:SS
硬件时钟也会相应更新。
要更改当前时区,使用下面命令:
代码语言:javascript复制timedatectl set-timezone TIMEZONE
你可以通过运行下面命令查看可用时区列表:
代码语言:javascript复制timedatectl list-timezones
[Note] 注意 请注意 timedatectl 命令只能用于通过 systemd 引导的系统。
网络时间同步
从版本号 213 的 systemd 开始,包括了一个名为systemd-timesyncd 的守护进程,将能够和远程的 NTP 服务器同步时间。
此守护进程并不是为了取代已有的 NTP 服务,而是作为 SNTP 协议的实现客户端,它可用于更高级的任务和资源有限的系统。
从版本号 216 的 systemd 开始,systemd-timesyncd 守护进程默认启用,如果需要禁用,执行以下命令:
代码语言:javascript复制systemctl disable systemd-timesyncd
/etc/systemd/timesyncd.conf 文件也可以通过 systemd-timesyncd 同步来更改 NTP 服务。
需要注意的是,当使用本地时间作为系统时间时,systemd-timesyncd 无法更新硬件时钟。
本次分享到此结束啦~
如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️