TIMEDATECTL(1) timedatectl TIMEDATECTL(1)

timedatectl - 控制系統的時間與日期

timedatectl [OPTIONS...]{COMMAND}

描述

timedatectl 可用於查詢與修改 系統時鐘的各項設定。

可以使用 systemd-firstboot(1) 初始化已掛載(但未啟動)的系統映象的時區設定。

選項

能夠識別的命令列選項如下:

--no-ask-password

在執行特權操作時不向使用者索要密碼。

--adjust-system-clock

當使用 set-local-rtc 命令時, 若使用了此選項, 則表示根據RTC時間來更新系統時鐘。 若未使用此選項,則表示根據系統時鐘來更新RTC時間。

-H, --host=

操作指定的遠端主機。可以僅指定一個主機名(hostname), 也可以使用 "username@hostname" 格式。 hostname 後面還可以加上容器名(以冒號分隔), 也就是形如 "hostname:container" 的格式, 以表示直接連線到指定主機的指定容器內。 操作將透過SSH協議進行,以確保安全。 可以透過 machinectl -H HOST 命令列出遠端主機上的所有容器名稱。

-M, --machine=

在本地容器內執行操作。 必須明確指定容器的名稱。

-h, --help

顯示簡短的幫助資訊並退出。

--version

顯示簡短的版本資訊並退出。

--no-pager

不將程式的輸出內容管道(pipe)給分頁程式。

能夠識別的命令如下:

status

顯示系統時鐘與RTC的當前狀態, 包括時區設定與網路時間同步服務的狀態。 注意,所謂"網路時間同步服務的狀態"實際上只是 systemd-timesyncd.service 服務的狀態, 並不檢查是否存在其他時間同步服務。 這是預設命令。

set-time [TIME]

將系統時鐘設為指定的時間, 並同時更新RTC時間。 [TIME] 是一個形如 "2012-10-30 18:17:16"的時間字串。

set-timezone [TIMEZONE]

設定系統時區,也就是更新 /etc/localtime 軟連線的指向。 可以用下面的 list-timezones 命令列出所有可用時區。 如果RTC被設為本地時間, 此命令還會同時更新RTC時間。 詳見 localtime(5) 手冊。

list-timezones

列出所有可用時區,每行一個。 列出的值可以用作前述 set-timezone 命令的引數。

set-local-rtc [BOOL]

設為 "no" 表示在RTC中儲存UTC時間; 設為 "yes" 表示在RTC中儲存本地時間。 應該盡一切可能在RTC中儲存UTC時間。 儘量不要在RTC中儲存本地時間, 因為這會造成一系列麻煩, 尤其是在切換時區以及調整夏令時或冬令時的時候。 注意,除非明確使用了 --adjust-system-clock 選項, 否則此命令還會同時用系統時鐘更新RTC時間。 此命令還會改變 /etc/adjtime 檔案第三行的內容,詳見 hwclock(8) 手冊。

set-ntp [BOOL]

是否開啟網路時間同步。 設為 "yes" 則啟用並啟動 systemd-timesyncd.service 服務, 設為 "no" 則停止並停用它。 該命令除了控制 systemd-timesyncd.service 服務的狀態,不做任何其他操作。 也就是說,設為 "yes" 相當於執行 systemctl enable --now systemd-timesyncd.service 命令; 而設為 "no" 則相當於執行 systemctl disable --now systemd-timesyncd.service 命令;

注意,即使使用此命令關閉了 systemd-timesyncd.service 服務, 仍然有可能存在其他時間同步服務。 另外,嚴格來說, systemd-timesyncd.service 除了同步時間之外,還同時兼有其他功能, 例如在無網路且無RTC的系統上維持系統的"單調時鐘"。 詳見 systemd-timesyncd.service(8) 手冊。

退出狀態

返回值為 0 表示成功, 非零返回值表示失敗程式碼。

環境變數

$SYSTEMD_PAGER

指定分頁程式。僅在未指定 --no-pager 選項時有意義。 此變數會覆蓋 $PAGER 的值。 將此變數設為空字串或 "cat" 等價於使用 --no-pager 選項。

$SYSTEMD_LESS

用於覆蓋 預設傳遞給 less 程式的命令列選項 ("FRSXMK")。

例子

顯示當前的時間設定

$ timedatectl
      Local time: Di 2015-04-07 16:26:56 CEST
  Universal time: Di 2015-04-07 14:26:56 UTC
        RTC time: Di 2015-04-07 14:26:56
       Time zone: Europe/Berlin (CEST, +0200)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

開啟網路時間同步服務

$ timedatectl set-ntp true
==== AUTHENTICATING FOR org.freedesktop.timedate1.set-ntp ===
Authentication is required to control whether network time synchronization shall be enabled.
Authenticating as: user
Password: ********
==== AUTHENTICATION COMPLETE ===
$ systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
   Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled)
   Active: active (running) since Mo 2015-03-30 14:20:38 CEST; 5s ago
     Docs: man:systemd-timesyncd.service(8)
 Main PID: 595 (systemd-timesyn)
   Status: "Using Time Server 216.239.38.15:123 (time4.google.com)."
   CGroup: /system.slice/systemd-timesyncd.service
           └─595 /usr/lib/systemd/systemd-timesyncd
...

參見

systemd(1), hwclock(8), date(1), localtime(5), systemctl(1), systemd-timedated.service(8), systemd-timesyncd.service(8), systemd-firstboot(1)

本頁面中文版由中文 man 手冊頁計劃提供。

翻譯人員:金步國
金步國作品集:http://www.jinbuguo.com
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh

systemd 231