使用 Timedatectl 在 Linux 中控制時間、日期等
在 Linux 中保持日期和時間設定準確對於系統任務的順利運作極為重要。 Linux 中的 timedatectl
指令可讓您查詢並變更系統時鐘及其各種相關設定。它是 systemd 的一部分,提供了一種簡單的方法來確保您的系統報告正確的日期和時間。在這裡,我們向您展示如何使用 timedatectl
控制 Linux 電腦上的時間和日期。
系統時鐘與實時時鐘 (RTC)
您的 Linux 系統使用兩個不同的時脈來追蹤時間——系統時脈和即時時脈。
系統時脈或軟體管理時脈由作業系統或 Linux 核心維護。它需要實時時鐘的幫助才能在系統啟動期間獲取初始值。
實時時鐘或 RTC 是主機板上的硬體時鐘,即使在系統關閉時也保持活動狀態。它使用電池來保持連續運行,以便在啟動期間追蹤時間並通知系統正確的時間。
timedatectl
指令可協助您管理這兩個時鐘。
使用 timedatectl 顯示系統日期和時間
timedatectl
指令是最有用的 Linux 指令之一。若要簡單檢查 Linux 系統上的目前日期和時間,請鍵入 timedatectl
指令(不含任何其他參數),然後按 Enter。輸出將顯示本地時間、世界時間、RTC 時間、時區和其他一些有用資訊。
本地時間(基於系統時區),通用時間 條目指的是系統中目前設定的時區。時區 條目是不言自明的,RTC 時間 和
其他項目通知您系統時鐘是否與 NTP 伺服器同步(用於使用網際網路進行即時更新)、NTP 服務是否處於活動狀態以及 RTC 是否使用本機時間而不是 UTC。
使用 set-timezone 更新系統時區
根據您的 Linux 系統所使用的時區,系統時鐘可能不會顯示正確的本機時間。
要檢查您的系統所使用的時區,請參閱上一節輸出中的 Time zone 行。例如,我的系統使用美國/東部時間(EST,-0500)時區。 -0500 偏移量是指與 UTC 或世界時的差異。
如果要變更時區,請先查詢系統以取得可使用的可用時區清單:
它將產生一個很長的列表,您需要很長時間才能滾動瀏覽。為了獲得更實用的輸出,您可以修改命令以將結果限制為您當地的區域或國家:
要變更系統目前的時區,您可以使用set-timezone
參數,如下所示:
系統可能會提示您輸入密碼,因為該指令需要提升的權限才能執行。完成後,您只需再次執行 timedatectl
即可驗證變更。
您可以看到輸出報告了在上一個指令中更新的新時區。如果您願意,甚至可以在 Ubuntu 和其他 Linux 發行版中設定多個時區,以便同時快速瀏覽多個時區。
使用 set-time 手動設定係統日期和時間
大多數情況下,您的系統會在啟動時將系統時鐘與NTP 伺服器同步,因此您的系統時間和日期始終正確。但是,如果您的系統無法存取互聯網,您仍然可以使用set-time
參數手動設定新的日期或時間。
若要手動設定係統日期和時間,請先停用與 NTP 伺服器的同步:
接下來,使用以下命令設定新的日期和時間:
使用 timedatectl 配置實時時鐘
您也可以設定係統的即時時鐘。預設情況下,RTC 與世界時或 UTC 同步,但也可以將其設定為您的本地時區。
需要注意的一件事是,將 RTC 維護在本地時區可能會因時區變更和夏令時調整而產生各種問題。如果您將 RTC 變更為本機時區,您的系統也可能會顯示類似的警告。
無論如何,如果您仍想將 RTC 設定為您本地時區,請執行以下命令:
如果您想再次將 RTC 設定回 UTC,只需在同一命令中將 1
替換為 0
即可。
將系統時鐘與 NTP 同步
NTP(網路時間協議)是一種網際網路協議,用於透過網際網路在廣泛的電腦網路之間進行時鐘同步。它旨在將所有參與的電腦同步到 UTC 的幾毫秒內。
為了能夠將系統時鐘與 NTP 伺服器同步,您的系統上必須安裝 NTP。您只需執行安裝命令即可:
現在,若要啟用與 NTP 伺服器的自動同步,請執行下列命令:
同樣,您可以使用以下命令停用 NTP 同步:timedatectl set-ntp false
。
管理系統時間和時間日期與 timedatectl
timedatectl
指令是一個方便的工具,可讓您調整系統時鐘和 RTC 配置,並在您搬家或旅行時設定所需的時區。如果您總是在旅途中,您將需要利用這些時區轉換器輕鬆安排任務。
所有螢幕截圖均由 Tanveer Singh 提供。
發佈留言