掌握timedatectl命令:Ubuntu 系统时间管理指南
掌握timedatectl命令:Ubuntu 系统时间管理指南
- 一、timedatectl 是什么?
- 二、 查看当前时间和日期设置
- 三、 查看和设置时区
- 3.1 列出所有可用时区
- 3.2 设置系统时区
- 四、设置系统时间和日期
- 4.1 同时设置日期和时间
- 4.2 仅设置时间
- 4.3 仅设置日期
- 五、 配置 NTP 网络时间同步
- 5.1 启用 NTP 同步
- 5.2 禁用 NTP 同步
- 5.3 检查 NTP 同步状态
- 六、配置硬件时钟 (RTC)
- 6.1 检查 RTC 当前模式
- 6.2 设置 RTC 使用 UTC(推荐)
- 6.2 设置 RTC 使用本地时间(不推荐)
- 七、注意事项
一、timedatectl 是什么?
timedatectl
是一个用于查询和修改系统时间与日期配置的命令行工具,它是systemd
系统和服务管理器的一部分。通过timedatectl
,你可以轻松地设置系统时间、日期、时区,并配置网络时间协议(NTP)同步,确保系统时间的准确性。
二、 查看当前时间和日期设置
使用 timedatectl status
或直接输入 timedatectl
可以显示系统的当前时间、日期、时区以及 NTP 同步状态等详细信息。
root@jeven:~# timedatectl statusLocal time: 三 2025-09-17 12:05:28 CSTUniversal time: 三 2025-09-17 04:05:28 UTCRTC time: 三 2025-09-17 04:05:28Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yesNTP service: activeRTC in local TZ: no
输出信息解读:
- Local time: 本地时间,取决于你设置的时区。
- Universal time: UTC 时间【UTC时间(协调世界时)是基于原子钟的国际标准时间,不实行夏令时,作为全球时区计算的基准。】
- RTC time: 硬件时钟的时间。
- Time zone: 当前系统时区。
- System clock synchronized: 系统时钟是否已与 NTP 服务器同步。
- NTP service: NTP 服务是否激活。
- RTC in local TZ: 硬件时钟是否设置为本地时区(通常建议设置为
no
,即使用 UTC)。
三、 查看和设置时区
3.1 列出所有可用时区
正确的时区设置对于系统日志、计划任务和应用程序的时间显示至关重要。使用以下命令,可列出所有可用时区。
timedatectl list-timezones
这个命令会列出所有已知的时区。列表可能很长,我们可以使用
grep
来过滤查找你想要的时区(例如查找亚洲的时区):
root@jeven:~# timedatectl list-timezones | grep Asia/Shanghai
Asia/Shanghai
3.2 设置系统时区
找到所需的时区后,可以使用 set-timezone
命令来设置。设置完成后,再次运行 timedatectl status
确认时区已更改。
sudo timedatectl set-timezone "Asia/Shanghai" # 设置为中国上海时区
sudo timedatectl set-timezone "Europe/Amsterdam" # 设置为阿姆斯特丹时区
sudo timedatectl set-timezone UTC # 设置为协调世界时 (UTC)
四、设置系统时间和日期
4.1 同时设置日期和时间
我们可以手动设置系统的日期和时间。请注意,如果启用了 NTP 同步,手动设置的时间可能会被网络时间同步覆盖。时间的格式为
YYYY-MM-DD HH:MM:SS
。
timedatectl set-time "2025-09-17 11:30:00"
4.2 仅设置时间
仅设置时间:格式为
HH:MM:SS
。
timedatectl set-time "11:30:00"
4.3 仅设置日期
仅设置日期:格式为
YYYY-MM-DD
。如果只设置日期,时间会默认为00:00:00
。
sudo timedatectl set-time "2025-09-17"
五、 配置 NTP 网络时间同步
5.1 启用 NTP 同步
启用 NTP 同步可以让系统自动与互联网上的时间服务器同步,确保时间准确。此命令会启用并启动
systemd-timesyncd.service
服务。
timedatectl set-ntp true
5.2 禁用 NTP 同步
如果需要手动维护时间,可以先禁用 NTP 同步。
sudo timedatectl set-ntp false
5.3 检查 NTP 同步状态
要查看详细的同步状态信息,以下命令会显示 NTP 服务器地址、同步状态、偏移量等详细信息。
root@jeven:~# timedatectl timesync-statusServer: 185.125.190.58 (ntp.ubuntu.com)
Poll interval: 34min 8s (min: 32s; max 34min 8s)Leap: normalVersion: 4Stratum: 2Reference: B7A08584Precision: 1us (-25)
Root distance: 838us (max: 5s)Offset: +4.298msDelay: 304.581msJitter: 35.645msPacket count: 180Frequency: +29.141ppm
root@jeven:~#
六、配置硬件时钟 (RTC)
6.1 检查 RTC 当前模式
硬件时钟(Real-Time Clock, RTC)是主板上的一块芯片,即使在计算机关闭后也能保持时间运行。查看
RTC in local TZ
项的值:
timedatectl status | grep "RTC in local TZ"
6.2 设置 RTC 使用 UTC(推荐)
强烈建议将硬件时钟设置为 UTC,这样可以避免时区切换或夏令时调整带来的问题。
timedatectl set-local-rtc 0
- 或者设置
false
timedatectl set-local-rtc false
6.2 设置 RTC 使用本地时间(不推荐)
除非有特殊需求(如双系统引导 Windows),否则不建议这样做。
sudo timedatectl set-local-rtc 1
# 或者使用 true
sudo timedatectl set-local-rtc true
七、注意事项
- 双系统用户注意RTC模式:若与Windows双系统,需将RTC设为本地时间(
set-local-rtc 1
),否则可能导致时间混乱。 - 时区设置后需验证:修改时区后,使用
date
或timedatectl
确认显示是否符合预期。 - 优先启用NTP同步:生产环境建议启用NTP自动同步(
set-ntp true
),确保时间精准。 - 手动设置时间需同步硬件时钟:修改系统时间后,用
hwclock --systohc
更新RTC,避免重启后丢失。 - 时区名称区分大小写:设置时区时需严格使用标准名称(如
Asia/Shanghai
),否则可能失败。 - 避免频繁切换RTC模式:频繁更改RTC模式(UTC/本地时间)可能导致系统时间与硬件时间不一致。
- 权限问题:修改时间或时区需使用
sudo
,否则会因权限不足失败。 - NTP服务冲突:若同时安装
chrony
或ntp
,需检查服务状态,避免与systemd-timesyncd
冲突。