TIMEDATECTL(1)

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

SYNOPSIS

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