Linux時間同步

ntpdate time.nist.gov #同步時間
hwclock -w #寫入CMOS


 功能說明:顯示與設定硬件時鐘。
 
 
 
語  法:hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test]
 
[--utc][--version][--set --date=<日期與時間>]
 
 
 
補充說明:在Linux中有硬件時鐘與系統時鐘等兩種時鐘。硬件時鐘是指主機板上的時鐘設備,也就是通常可在BIOS畫面設定的時鐘。系統時鐘則是指kernel中的時鐘。當Linux啓動時,系統時鐘會去讀
 
 
 
取硬件時鐘的設定,之後系統時鐘即獨立運作。所有Linux相關指令與函數都是讀取系統時鐘的設定。
 
 
 
參  數:
 
  --adjust  hwclock每次更改硬件時鐘時,都會記錄在/etc/adjtime文件中。使用--adjust參數,可使hwclock根據先前的記錄來估算硬件時鐘的偏差,並用來校正目前的硬件時鐘。 
 
  --debug  顯示hwclock執行時詳細的信息。 
 
  --directisa  hwclock預設從/dev/rtc設備來存取硬件時鐘。若無法存取時,可用此參數直接以I/O指令來存取硬件時鐘。 
 
  --hctosys  將系統時鐘調整爲與目前的硬件時鐘一致。 
 
  --set --date=<日期與時間>  設定硬件時鐘。 
 
  --show  顯示硬件時鐘的時間與日期。 
 
  --systohc  將硬件時鐘調整爲與目前的系統時鐘一致。 
 
  --test  僅測試程序,而不會實際更改硬件時鐘。 
 
  --utc  若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作。 
 
  --version  顯示版本信息。
 
 
 
 
 
注:要使系統時間準確,最好還是使用ntp方式。
 
 
 
示例:使用ntpdate命令從網絡同步時間,再同步到硬件時鐘
 
ntpdate命令是使用NTP協議來從網絡同步時間的命令。NTP=Network Time Protocol 網絡時間協議。
 
 
 
[[email protected]~]# ntpdate 0.rhel.pool.ntp.org
 
 6 Nov 21:17:55 ntpdate[4829]: step time server 123.146.124.28 offset -1.025258 sec
 
[[email protected]~]# date
 
2010年 11月 06日 星期六 21:17:59 CST
 
[[email protected]~]# hwclock -w
 
 
 
擴展閱讀一:hwclock 使用
 
 
 
Linux機器上的時間比較複雜,有各式各樣的時鐘和選項等等。
 
 
 
一:
 
機器裏有兩個時鐘:硬件時鐘和系統時鐘
 
硬件時鐘從根本上講是CMOS時鐘;
 
系統時鐘是由內核維護的,它是從1969年末(即傳說中的標誌Unix時代開端的那個拂曉)開始算起的累積秒數。
 
 
 
在DOS或Mac系統中,起作用的是硬件時鐘。遺憾的是,你可能已經發現了,絕大多數電腦時鐘都是很不準確的。它們從根本上講是由小型電池供電的警報器時鐘,這種鋰電池一般可持續供電三年左右,
 
 
 
那時候你係統各大塊差不多都已經過時了。
 
 
 
而在Linux系統中,起作用的是系統時鐘。在啓動時,它靠讀取硬件時鐘獲得計時起點,而不是靠記憶計時。
 
 
 
 
 
你可以通過BIOS修改系統硬件時鐘,或者如果你不想重起機器,那就用clock -w命令。
 
 
 
當你使用hwclock命令調整硬件時間很多次以後,hwclock就會獲取你的時鐘推移速率,然後就會把這個信息存在/etc/adjtime裏邊。以後,你就可以用它來隨時更新你的硬件時間,用一條下面的命令:
 
 
 
hwclock --adjust
 
 
 
硬件時鐘通常被設置成全球標準時間(UTC),而將時區信息保存在/usr/share/lib/timezone (或者在某些系統中可能是/usr/local/timezone)目錄下某個適當的文件中,然後用一個符號鏈接文
 
 
 
件/etc/localtime指向它。
 
 
 
查看硬件時鐘用命令:
 
 
 
hwclock --show 或者 hwclock -r
 
 
 
重置硬件時鐘用:
 
#date 042817252009.00 //設置系統時鐘 2009 年 04 月 28 日 星期四 17:25:00 CST
 
#hwclock -w
 
 
 
如果需要修改你的時區信息,可以使用tzset命令,如果你係統中沒有這條命令,那可以用類似下面的操作:
 
 
 
ln -s /etc/localtime /usr/share/zoneinfo/US/Pacific
 
 
 
二:
 
實例:
 
板子上電
 
#date 042817252009.00 //設置系統時鐘 2009 年 04 月 28 日 星期四 17:25:00 CST
 
#hwclock -w //將系統時鐘寫入硬件時鐘
 
#hwclock -r //看時間是否在變化
 
如果沒有出錯, 就已經把2009 年 04 月 28 日 星期四 17:25:00 CST 寫入RTC chip了
 
 
 
爲了使系統時間和RTC時間同步,可以在初始化文件中添加命令
 
hwclock –s
 
使每次開機時讀取RTC時間,並同步給系統時間。
 
在根文件系統:usr/etc/rc.local中添加
 
/sbin/hwclock -s
 
 
 
斷電
 
等2分鐘在上電
 
#hwclock -r //看時間是否同步,即使與2分鐘後的時間相同
 
 
 
擴展閱讀二:linux中時間設置date、hwclock、clock
 
 
 
Windows時鐘大家可能十分熟悉了,Linux時鐘在概念上類似Windows時鐘顯示當前系統時間,但在時鐘分類和設置上卻和Windows大相徑庭。和Windows不同的是,Linux將時鐘分爲系統時鐘(System 
 
 
 
Clock)和硬件(Real Time Clock,簡稱RTC)時鐘兩種。系統時間是指當前Linux Kernel中的時鐘,而硬件時鐘則是主板上由電池供電的那個主板硬件時鐘,這個時鐘可以在BIOS的"Standard BIOS 
 
 
 
Feture"項中進行設置。
 
 
 
既然Linux有兩個時鐘系統,那麼大家所使用的Linux默認使用哪種時鐘系統呢?會不回出現兩種系統時鐘衝突的情況呢?這些疑問和擔心不無道理。首先,Linux並沒有默認哪個時鐘系統。當Linux啓動
 
 
 
時,系統時鐘會去讀取硬件時鐘的設置,然後系統時鐘就會獨立於硬件運作。
 
 
 
從Linux啓動過程來看,系統時鐘和硬件時鐘不會發生衝突,但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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章