我使用過的Linux命令之hwclock - 查詢和設置硬件時鐘

我使用過的Linux命令之hwclock - 查詢和設置硬件時鐘

本文鏈接:http://codingstandards.iteye.com/blog/804830?? (轉載請注明出處)

?

用途說明

hwclock命令,與clock命令是同一個命令,主要用來查詢和設置硬件時鐘(query and set the hardware clock (RTC))。RTC=Real Time Clock,也就是硬件時鐘。在Linux中有硬件時鐘與系統時鐘等兩種時鐘。硬件時鐘是指主機板上的時鐘設備,也就是通常可在BIOS畫面設定的時鐘。系統時鐘則是指kernel中 的時鐘。所有Linux相關指令與函數都是讀取系統時鐘的設定。因為存在兩種不同的時鐘,那么它們之間就會存在差異。根據不同參數設置,hwclock命令既可以將硬件時鐘同步到系統時鐘,也可以將系統時鐘同步到硬件時鐘。

關于系統時鐘與硬件時鐘的關系的說法,網上分成了兩種:

第一種:當Linux啟動時,硬件時鐘會去讀取系統時鐘的設置,然后系統時鐘就會獨立于硬件運作。

第二種:當Linux啟動時,系統時鐘會去讀取硬件時鐘的設定,之后系統時鐘即獨立運作。

到底那一種才是正確的呢?執行一下man hwclock可以看到里面有一段:

man hwclock 寫道
The System Time is the time that matters. The Hardware Clock’s basic purpose in a Linux system is to keep time
when Linux is not running. You initialize the System Time to the time from the Hardware Clock when Linux
starts up, and then never use the Hardware Clock again. Note that in DOS, for which ISA was designed, the
Hardware Clock is the only real time clock.

這段文字說明,第二種說法是正確的,第一種說法是錯誤的。但網上大部分文章都是第一種說法,所以說,網絡雖好,要注意甄別。

man hwclock 寫道
It is important that the System Time not have any discontinuities such as would happen if you used the date(1L)
program to set it while the system is running. You can, however, do whatever you want to the Hardware Clock
while the system is running, and the next time Linux starts up, it will do so with the adjusted time from the
Hardware Clock.?

如果使用date命令修改了系統時間,并不會自動去修改硬件時鐘,因此,當系統下次重啟時,系統時鐘還會從硬件時鐘去取,date設置的時間就無效了。這大概就是為什么需要hwclock命令的原因吧。

常用參數

? -r, --show???????? 讀取并打印硬件時鐘(read hardware clock and print result )
? -s, --hctosys????? 將硬件時鐘同步到系統時鐘(set the system time from the hardware clock )
? -w, --systohc???? 將系統時鐘同步到硬件時鐘(set the hardware clock to the current system time )

使用示例

示例一 hwclock命令與clock命令是一個東西

[root@new55 ~]#?type -a hwclock?
hwclock is /sbin/hwclock
hwclock is /usr/sbin/hwclock
[root@new55 ~]#?ls -l /sbin/hwclock /usr/sbin/hwclock?
-rwxr-xr-x 1 root root 34096 2010-01-07 /sbin/hwclock
lrwxrwxrwx 1 root root??? 18 08-13 00:14 /usr/sbin/hwclock -> ../../sbin/hwclock

[root@new55 ~]#?type -a clock?
clock is /sbin/clock
[root@new55 ~]#?ls -l /sbin/clock?
lrwxrwxrwx 1 root root 7 08-13 00:14 /sbin/clock -> hwclock
[root@new55 ~]#

示例二 顯示硬件時鐘

[root@new55 ~]#?hwclock?
2010年11月06日 星期六 21時09分28秒? -0.134840 seconds
[root@new55 ~]#?hwclock -r?
2010年11月06日 星期六 21時09分33秒? -0.469123 seconds
[root@new55 ~]#?hwclock --show?
2010年11月06日 星期六 21時09分45秒? -0.127548 seconds
[root@new55 ~]#?

?

示例三 修改日期并同步到硬件時鐘

[root@new55 ~]#?date?
2010年 11月 06日 星期六 21:11:57 CST
[root@new55 ~]#?date 11062112?????<== 格式 mmddHHMM,即 月日時分?
2010年 11月 06日 星期六 21:12:00 CST
[root@new55 ~]#?hwclock -w?
[root@new55 ~]#?hwclock?
2010年11月06日 星期六 21時12分13秒? -0.648818 seconds
[root@new55 ~]#

?

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

示例四 使用ntpdate命令從網絡同步時間,再同步到硬件時鐘

ntpdate命令是使用NTP協議來從網絡同步時間的命令。NTP=Network Time Protocol 網絡時間協議。

[root@new55 ~]#?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@new55 ~]#?date?
2010年 11月 06日 星期六 21:17:59 CST
[root@new55 ~]#?hwclock -w?
[root@new55 ~]#

問題思考

1. 為什么Linux要將時鐘分為系統時鐘和硬件時鐘,這樣做有什么好處?

相關資料

【1】91linux.com?Linux hwclock 命令?其他資料對硬件時鐘與系統時鐘的關系的說法有問題,所以此處不列出。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/383410.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/383410.shtml
英文地址,請注明出處:http://en.pswp.cn/news/383410.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

二叉樹的操作(前,中,后序遍歷也叫深度優先遍歷,非空結點的個數)遞歸實現

定義一個二叉樹的結點 二叉樹的前序遍歷&#xff0c; 先訪問根結點&#xff0c;再訪問左&#xff0c;再訪問右。 每次訪問都要先看根結點是否為空&#xff0c;然后打印根結點&#xff0c;把此時根結點的左結點作為下一次遞歸的根結點&#xff0c;當把左結點遍歷完后&#xff0…

makefile編譯問題記錄

1.-c選項和-C選項&#xff1a; -c&#xff08;gcc選項&#xff09;&#xff1a;編譯.c或匯編源文件&#xff0c;但是不作連接. 編譯器輸出對應于源文件的目標文件. 如&#xff1a;$(CC) -c ${CFLAGS} ${SRCS} -C&#xff08;makefile選項&#xff09;&#xff1a;-C的是make…

二叉樹的相關題(葉子結點個數,最大深度,找特殊值結點(值不重復),判斷兩個樹是否相同,判斷兩個數是否為鏡像樹,是否為子樹,)

葉子結點就是沒有孩子結點&#xff0c;所以當當前根結點沒有孩子結點的時候&#xff0c;就返回1&#xff0c;就是找到一個葉子結點&#xff0c;然后訪問完每個不為空的結點就行&#xff0c;每次訪問都是把當前結點的左/右結點作為新的結點&#xff0c;來判斷。 求最大深度&…

為何線程有PID?

在linux下用 top -H -p <pid> 查詢某個進程的線程 按理說&#xff0c;都是某個進程下的線程&#xff0c; 應該進程id PID一樣啊&#xff0c;但實際卻都不一樣 實際是被PID的名字給弄混了&#xff0c;線程進程都會有自己的ID&#xff0c;這個ID就叫做PID&#xff0c;P…

關于樹和二叉樹的一些基本概念,基本名詞解釋。

二叉樹的概念 概念 一棵二叉樹是結點的一個有限集合&#xff0c;該集合或者為空&#xff0c;或者是由一個根節點加上兩棵別稱為左子樹和右子樹 的二叉樹組成。 二叉樹的特點&#xff1a; 每個結點最多有兩棵子樹&#xff0c;即二叉樹不存在度大于2的結點。二叉樹的子樹有左右…

在VI中刪除行尾的換行符

在vi中&#xff0c;如果要刪除行尾的換行符&#xff0c;可以用如下方法 第一種情況&#xff1a;只刪除單行 如有文件如下&#xff1a; [fanzfSWserver ~/tmp]$ cat names.tmp 101 Nate H. 102 John M. 104 Cassy T. 106 Mary L. 107 Isaac …

用c語言構建二叉樹(重點)

結點創建 二叉樹創建 我們以‘#’為NULL&#xff0c;我們要把輸入進來的一個字符串轉變為二叉樹&#xff0c;所以我們要記住遞歸的每一步走到數組了哪個位置 所以我們要記住創建過程中用掉的前序個數&#xff0c;并返回&#xff0c;除此之外&#xff0c;還要加上當時的那個結點…

linux 同步IO: sync msync、fsync、fdatasync與 fflush

最近閱讀leveldb源碼&#xff0c;作為一個保證可靠性的kv數據庫其數據與磁盤的交互可謂是極其關鍵&#xff0c;其中涉及到了不少內存和磁盤同步的操作和策略。為了加深理解&#xff0c;從網上整理了linux池畔同步IO相關的函數&#xff0c;這里做一個羅列和對比。大部分為copy&a…

二叉樹的廣度優先遍歷(層序遍歷)

先定義一個二叉樹的結點 再創建二叉樹&#xff0c;這里就不寫了&#xff0c;之前的有創建二叉樹的博客。 層序遍歷 用到棧的思想&#xff0c; 1 先讓根 節點進隊列&#xff0c;2 然后讀隊頂元素&#xff0c;3 讓他出隊列4 打印它的值5 讓隊頂元素的左右子樹進棧&#xff0…

用前序中序創建二叉樹(用中序后序創建二叉樹)

定義二叉樹結點 比如就拿這個二叉樹 前序中序創建 因為前序遍歷的順序是 根 &#xff0c; 左 &#xff0c;右。 中序的遍歷是 左 根 右。 我們會很不好想&#xff0c;但我們可以用前序和中序把上面那個二叉樹的遍歷一邊 前序遍歷&#xff1a;ABDEHCFG中序遍歷&#xff1a;D…

Epoll詳解及源碼分析

文章來源&#xff1a;http://blog.csdn.net/chen19870707/article/details/42525887 Author&#xff1a;Echo Chen&#xff08;陳斌&#xff09; Email&#xff1a;chenb19870707gmail.com Blog&#xff1a;Blog.csdn.net/chen19870707 Date&#xff1a;Jan.7th, 2015 1…

非遞歸實現二叉樹(前序,中序,后序)c/c++實現

這里還是用到棧的思想&#xff0c;為了方便用了c的一些內容&#xff0c;把出棧&#xff0c;進棧&#xff0c;讀棧頂元素用一個個函數封裝起來了&#xff0c;前面做了一些處理來使用這些函數。 前序非遞歸 思想&#xff1a;一直走左邊&#xff0c;依次進棧。等左邊為空的時候&…

Linux 中統計一個進程的線程數

如果你想看到 Linux 中每個進程的線程數&#xff0c;有以下幾種方法可以做到這一點。 方法一: /proc proc 偽文件系統&#xff0c;它駐留在 /proc 目錄&#xff0c;這是最簡單的方法來查看任何活動進程的線程數。 /proc 目錄以可讀文本文件形式輸出&#xff0c;提供現有進程和系…

Linux_linux基礎命令(增刪查,權限,Linux下的重要目錄,重要命令(. du, df, top, free, pstack, su, sudo).安裝gcc/g++, gdb, vim )

r&#xff1a;表示可讀w&#xff1a;表示可寫x&#xff1a;表示可執行也可以用數字表示這一點我們會在修改文件權限說明。對于文件夾的rwx表示&#xff1a;r表示可讀及可以查看文件夾內容可以ls查看w表示可寫及可以向文件夾中傳送內容如文件x表示可執行及可以向文件夾中可以cd進…

pthread_create會導致內存泄露

這幾天一直在調試一個系統&#xff0c;系統的功能就是定時發送數據、接收數據然后解析收到的數據&#xff0c;轉換成一定的格式存入數據庫中。我為了并發操作&#xff0c;所以每接收到一個數據包&#xff0c;就調用pthread_create函數創建一個默認屬性的線程進行處理。 系統…

Linux_linux常用工具之make/makefile詳解

make/makefile make/makefile: 項目自動化構建工具 makefile:普通文本文件&#xff0c;記錄了項目的構建流程規則。 make: 一個解釋程序&#xff0c;到當前執行make命令的目錄下尋找makefile文件&#xff0c;并且對makefile 中記錄的項目構建規則進行解釋執行。makefile: 編寫…

Linux_linux常用工具(git,vim ,gcc ,gdb,權限)超詳解

git :項目版本控制工具 項目克隆&#xff1a;git clone項目提交&#xff1a;git add&#xff08;本地倉庫提交&#xff09; git commit -m “bak msg”&#xff08;-m 備注信息&#xff09;同步到服務器&#xff1a;git push origin master&#xff08;提交到主分支&…

T20調試札記

最近在調試T20的內存&#xff0c;使用的指令在此記錄一下 1. pmap指令查看指定進程中的內存分布。該指令需要在busybox中開啟 pmap -x 111 2.應用與so需要執行strip操作&#xff0c;可以減小存儲空間的大小 mips-linux-gnu-strip libsysutils.so 3.nm指令和file指令可以查…

samba 2.2.7a 編譯

今天在君正T20上編譯samba 2.2.7a 遇到了一些問題&#xff0c;特此記錄一下 1.自己寫一個build.sh腳本&#xff0c;方便后續的再次編譯 #!/bin/sh # export CFLAGS"-O2 -muclibc" export CPPFLAGS"-O2 -muclibc" export CXXFLAGS"-O2 -muclibc&qu…

Linux_linux常用工具------進度條程序

緩沖區對文件讀寫的影響&#xff1a;數據并沒有直接寫入文件&#xff0c;而是寫入到緩沖區&#xff08;內存&#xff09;中&#xff0c;等到緩沖區中數據寫滿或者刷新緩沖區的時候&#xff0c;才會將數據真正的寫入文件 fflush&#xff08;stdout&#xff09;刷新。 回車與換行…