Linux:設定時間與同步的方法

xsdan發表於2009-12-21
如何設定Linux Time Zone
  ls -F /usr/share/zoneinfo/

  ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime
  date
  由於Linux時鐘和Windows時鐘從概念的分類、使用到設定都有很大的不同,所以,搞清楚Linux時鐘的工作方式與設定操作,不僅對於Linux初學者有著重大意義,而且對於使用Linux伺服器的使用者來說尤為重要。[@more@]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 系統時鐘。選中該項後,其下面的伺服器下拉選單框就變為可用狀態,可從中選擇一個時間伺服器作為遠端時間伺服器。然後單擊確定按鈕,便可連線所設定的時間伺服器,並與之同步時間。

補充:Linux與其他伺服器同步時間方法

1.linux向windows時間同步
net time -S 192.168.0.84 set

2.linux與linux時間同步
先建立一臺NTP伺服器,如192.168.0.1
檢查所需安裝的rpm包
rpm -qa | grep ntp
ntp-4.2.0.a.20040617-4.EL4.1

vi /etc/ntpd.conf
加入此行
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

啟動服務
service ntpd start

檢查ntpd服務狀態
pgrep ntpd
netstat -an | grep 123
另一臺與這臺對時即可(也需安裝rpm包),只需執行

[root@test2 etc]# ntpdate 192.168.0.1
28 Jun 11:49:15 ntpdate[3790]: adjust time server 192.168.0.1 offset -0.040774 sec

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/262387/viewspace-1029839/,如需轉載,請註明出處,否則將追究法律責任。

相關文章