如何設定Linux Time Zone
ls -F /usr/share/zoneinfo/
ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime
date
由於Linux時鐘和Windows時鐘從概念的分類、使用到設定都有很大的不同,所以,搞清楚Linux時鐘的工作方式與設定操作,不僅對於Linux初學者有著重大意義,而且對於使用Linux伺服器的用戶來說尤為重要。
Linux時鐘的分類
Windows 時鐘大家可能十分熟悉了,Linux時鐘概念上類似Windows時鐘顯示目前系統時間,但在時鐘分類設定上卻和Windows大相逕庭。和Windows不同的是,Linux將時鐘分為系統時鐘(System Clock)和硬體(Real Time Clock,簡稱RTC)時鐘兩種。系統時間是指目前Linux Kernel中的時鐘,而硬體時鐘則是主機板上由電池供電的那個主機板硬體時鐘,這個時鐘可以在BIOS的「Standard BIOS Feture」項目中設定。
既然Linux有兩個時鐘系統,那麼大家所使用的Linux預設要使用哪種時鐘系統呢?會不回出現兩種系統時鐘衝突的情況呢?這些疑問和擔憂不無道理。首先,Linux並沒有預設哪個時鐘系統。當Linux啟動時,硬體時鐘會去讀取系統時鐘的設置,然後系統時鐘就會獨立於硬體運作。
從Linux啟動過程來看,系統時鐘和硬體時鐘不會發生衝突,但Linux中的所有命令(包括函數)都是採用的系統時鐘設定。不僅如此,系統時鐘和硬體時鐘還可以採用非同步方式,見圖1所示,即係統時間和硬體時間可以不同。這樣做的好處對一般使用者意義不大,但對Linux網路管理員卻有很大的用處。例如,要將一個很大的網路中(跨越若干時區)的伺服器同步,假如位於美國紐約的Linux伺服器和北京的Linux伺服器,其中一台伺服器無須改變硬體時鐘而只需臨時設定一個系統時間,如要將北京伺服器上的時間設定為紐約時間,兩台伺服器完成檔案的同步後,再與原來的時鐘同步一下即可。這樣系統和硬體時鐘就提供了更靈活的操作。
設定Linux的時鐘
在Linux中,用於時鐘檢視和設定的指令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只不過clock指令除了支援x86硬體體系外,還支援Alpha硬體體系。由於目前絕大多數使用者使用x86硬體體系,所以可以視這兩個指令為一個指令來學習。
1.在虛擬終端機中使用date指令來查看和設定係統時間
查看系統時鐘的操作:
# date
設定係統時鐘的操作:
# date 091713272003.30
通用的設定格式:
# date 月日時分年.秒
2.使用hwclock或clock指令檢視和設定硬體時鐘
查看硬體時鐘的操作:
# hwclock --show 或
# clock --show
2003年09月17日星期三13時24分11秒-0.482735 seconds
設定硬體時鐘的操作:
# hwclock --set --date="09/17/2003 13:26:00"
或者
# clock --set --date="09/17/2003 13:26:00"
通用的設定格式:hwclock/clock --set --date=「月/日/年時:分:秒」。
3.同步系統時鐘與硬體時鐘
Linux系統(筆者使用的是Red Hat 8.0,其它系統沒有做過實驗)預設重啟後,硬體時鐘和系統時鐘同步。如果不大方便重新啟動的話(伺服器通常很少重啟),使用clock或hwclock指令來同步系統時鐘和硬體時鐘。
硬體時鐘與系統時鐘同步:
# hwclock --hctosys
或者
# clock --hctosys
上面指令中,--hctosys表示Hardware Clock to SYStem clock。
系統時鐘和硬體時鐘同步:
# hwclock --systohc
或者
# clock --systohc
使用圖形化系統設定工具設定時間
對於初學者來,筆者推薦使用圖形化的時鐘設定工具,如Red Hat 8.0中的日期與時間設定工具,可以在虛擬終端中鍵“redhat-config-time”命令,或者選擇“K選單/系統設置/日期與時間」來啟動日期時間設定工具。使用此工具不必考慮系統時間和硬體時間,只需從該對話方塊設定日期時間,可同時設定、修改系統時鐘和硬體時鐘。
Internet同步時鐘設定
在Windows XP日期與時間設定中有一項與Internet同步的功能,有了這項功能只要上網便可得到十分準確的時間。 Red Hat 8.0也提供了這樣的功能,在日期與時間設定工具對話框中的下部,有一個「啟用網路時間協定」的選項,將該項選取就可以使用網路時間協定來同步Linux 系統時鐘。選取該項目後,其下方的伺服器下拉列錶框就變為可用狀態,可從中選擇一個時間伺服器作為遠端時間伺服器。然後點選確定按鈕,便可連接所設定的時間伺服器,並與之同步時間。