Ubuntu 內建了時間同步,預設情況下使用systemd的timesyncd服務啟用。
查詢伺服器上date最基本命令是date 。 任何使用者都可以輸入此命令來列印日期和時間:
date
Sun Oct 4 19:30:04 CST 2020
timedatectl list-timezones
時區列表將列印到您的螢幕。 您可以按SPACE向下翻頁,然後按b向上翻頁。 找到正確的時區後,記下它,然後鍵入q退出列表。
sudo timedatectl set-timezone Asia/Shanghai
您可以再次執行date來驗證更改,時區縮寫應反映新選擇的值。
Ubuntu的預設安裝現在使用timesyncd而不是ntpd。 timesyncd連線到相同的時間伺服器,並以大致相同的方式工作,但更輕量級,更整合systemd和Ubuntu的低階別工作。
我們可以通過執行沒有引數的timedatectl來查詢timesyncd的狀態。
這將列印出本地時間,通用時間(如果您沒有從UTC時區切換,可能與本地時間相同),以及一些網路時間狀態資訊。 System clock synchronized: yes表示時間已成功同步, systemd-timesyncd.service active: yes表示timesyncd已啟用並正在執行。
如果timesyncd未啟用,請使用timedatectl將其開啟:
sudo timedatectl set-ntp on
再次執行timedatectl以確認網路時間狀態。 實際同步可能需要一分鐘,但最終Network time on:和NTP synchronized:應該讀取yes 。
在使用ntp之前,我們應該關閉timesyncd:
sudo timedatectl set-ntp no
apt-get install ntp
ntpd將在安裝後自動啟動。 您可以在ntpd中查詢狀態資訊,以驗證一切正常:
ntpq -p
ntpq是ntpd的查詢工具。 -p標誌要求提供有關ntpd連線到的NTP伺服器(或頁面)的資訊。 您的輸出會略有不同,但應列出預設的Ubuntu池伺服器以及其他一些伺服器。 請記住,ntpd建立連線可能需要幾分鐘時間。
結論
sudo apt-get install ntpdate
本步驟可選的原因在於,ntpdate一般在裝系統時就已經裝好,但有些系統版本會例外。當系統不存在該安裝包時,要手動安裝。
sudo /etc/init.d/ntp stop
先關閉 ntp 服務,然後手動對時:
ntpdate 192.169.……(ntp 伺服器地址)
手動對時命令應當重複幾次,直到命令列視窗中顯示的差值幾乎為0(若能對時成功,螢幕上應當會顯示當前時間,在當前時間後有當前時間與伺服器時間的差,初次對時時,這個差應該會比較大,一直輸入對時命令直到這個差接近於0即算完成對時)
使用該方法時一定要切記一定要關閉ntp服務,即輸入第一條命令,對時一次要停止一次。ntp服務一般會隨機自動啟動。
方法一:查詢etc目錄下有無ntp.conf檔案,當該檔案存在時,在檔案中新增以下語句:
server 192.168.……(ntp伺服器地址)
儲存退出即可。
電腦中會有一個程序自動去讀取該組態檔,並跟隨伺服器間隔一定時間進行一次對時。具體間隔時間不可查,正常情況下伺服器是一臺工控機,屬性由機器本身決定。
方法二:當不存在ntp.conf檔案時,在 /etc/crontab 檔案中,輸入以下命令(注意:命令中的user和command為指代,根據實際情況而定):
***** user command
第1個 * 表示分鐘:取值範圍為1~59,當需要一分鐘執行一次時,可表示為 * /1,以下均同;
第2個 * 表示小時:取值範圍0~23
第3個 * 表示日期:取值範圍1~31
第4個 * 表示月份:取值範圍1~12
第5個 * 表示星期:取值範圍:0~6(0表示星期天)
user為需要執行該命令的使用者
command表示要執行的命令
如上所說,假如需要使用root使用者一分鐘自動對時一次,則命令為:
*/1 * * * * root ntpdate 192.168.……(ntp伺服器地址)
儲存退出即可。