hwclock命令參數及用法詳解

hwclock(hardware clock)linux

功能說明:顯示與設定硬件時鐘。服務器

語  法: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  顯示版本信息。ide

使用示例
示例一 hwclock命令與clock命令是一個東西
[root@linuxidc.com~]# type -a hwclock
hwclock is /sbin/hwclock
hwclock is /usr/sbin/hwclock
[root@linuxidc.com~]# ls -l /sbin/hwclock /usr/sbin/hwclock 
-rwxr-xr-x 1 root root 34096 2012-01-07 /sbin/hwclock
lrwxrwxrwx 1 root root    18 08-13 00:14 /usr/sbin/hwclock -> ../../sbin/hwclock函數

[root@linuxidc.com~]# type -a clock
clock is /sbin/clock
[root@linuxidc.com~]# ls -l /sbin/clock
lrwxrwxrwx 1 root root 7 08-13 00:14 /sbin/clock -> hwclock
[root@linuxidc.com~]#學習

示例二 顯示硬件時鐘
[root@linuxidc.com~]# hwclock
2011年11月06日 星期日 21時09分28秒  -0.134840 seconds
[root@linuxidc.com~]# hwclock -r
2011年11月06日 星期日 21時09分33秒  -0.469123 seconds
[root@linuxidc.com~]# hwclock --show
2011年11月06日 星期日 21時09分45秒  -0.127548 seconds
[root@linuxidc.com~]#測試

示例三 修改日期並同步到硬件時鐘
[root@linuxidc.com~]# date
2011年 11月 06日 星期日 21:11:57 CST
[root@linuxidc.com~]# date 11062112     <== 格式 mmddHHMM,即 月日時分
2011年 11月 06日 星期日 21:12:00 CST
[root@linuxidc.com~]# hwclock -w
[root@linuxidc.com~]# hwclock
2011年11月06日 星期日 21時12分13秒  -0.648818 seconds
[root@linuxidc.com~]#spa

注:要使系統時間準確,最好仍是使用ntp方式。debug

示例四 使用ntpdate命令從網絡同步時間,再同步到硬件時鐘
ntpdate命令是使用NTP協議來從網絡同步時間的命令。NTP=Network Time Protocol 網絡時間協議。

[root@linuxidc.com~]# ntpdate 0.rhel.pool.ntp.org
 6 Nov 21:17:55 ntpdate[4829]: step time server 123.146.124.28 offset -1.025258 sec
[root@linuxidc.com~]# date
2011年 11月 06日 星期日 21:17:59 CST
[root@linuxidc.com~]# hwclock -w

擴展閱讀一:hwclock 使用

Linux機器上的時間比較複雜,有各式各樣的時鐘和選項等等。

一:
機器裏有兩個時鐘:硬件時鐘和系統時鐘
硬件時鐘從根本上講是CMOS時鐘;
系統時鐘是由內核維護的,它是從1969年底(即傳說中的標誌Unix時×××端的那個拂曉)開始算起的累積秒數。

在DOS或Mac系統中,起做用的是硬件時鐘。遺憾的是,你可能已經發現了,絕大多數電腦時鐘都是很不許確的。它們從根本上講是由小型電池供電的警報器時鐘,這種鋰電池通常可持續供電三年左右,那時候你係統各大塊差很少都已通過時了。

而在Linux系統中,起做用的是系統時鐘。在啓動時,它靠讀取硬件時鐘得到計時起點,而不是靠記憶計時。

你能夠經過BIOS修改系統硬件時鐘,或者若是你不想重起機器,那就用hwclock命令。

當你使用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

相關文章
相關標籤/搜索