【轉】Linux時鐘和時區

文章轉自Live空間(http://delxu.spaces.live.com/blog/cns!D04F87F9ED029F69!2583.entry)和51cto技術博客(http://delxu.blog.51cto.com)首發。轉發時務必表明出處,順便給博主做個廣告,文章寫的真的很好,深入淺出,期待看到更好的博文,再次表示對博主的感謝!!!
【轉】Linux時鐘和時區

計算機系統有兩個時鐘,一個是 BIOS,或者CMOS,或者說“硬件時鐘”,還有一個就是“系統(操作系統)時鐘”,如果這兩個時鐘的設置上有問題,或者Linux 的時鐘配置文件不正確的話,就會產生系統時鐘差 8 小時的問題。
讓我們先查看 /etc/sysconfig/clock 的內容:
[root@www /root]# cat /etc/sysconfig/clock
ZONE=Asia/Shanghai ;/usr/share/zoneinfo 下面的文件。
UTC=false ; 硬件時鐘是否爲 UTC 或者說 GMT 時鐘。
ARC=false ;如果是在 Alpha 機器上,則設置爲 true 。
把硬件時鐘設置爲 UTC 的好處就是他能自動設置夏時制,缺點時,在安裝有多重操作系統啓動的機器上,在另外的操作系統上時鐘會錯誤。
Linux 的時鐘設置文件爲:/etc/localtime ,實際上這個文件是 /usr/share/zoneinfo 目錄下對應文件的符號連接。假設我們所處的地區位於上海,那麼只要運行以下的命令就可以設置時區了。
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Linux 啓動時,其中的一個腳本(/etc/rc.d/rc.sysinit)會運行 /sbin/hwclock 程序,把當前的硬件時鐘複製爲系統時間。hwclock 假定硬件時鐘已經設置爲本地時鐘,除非帶有 --utc 參數。腳本文件會讀取 /etc/sysconfig/clock 文件的設置,因此我們不需要修改腳本,直接修改這個配置文件就可以了,根據需要把其中的 UTC 行,設置爲 true 或者 false。
設置硬件時鐘時,首先使用 date 命令("date MMDDhhmmYYYY.ss") 設置好系統時鐘,然後使用 "/sbin/hwclock --systohc" 把硬件時鐘設置爲和當前系統時間一致。
如果你在某些應用下面的時間是錯誤的,那麼你在運行 Red Hat Linux 5.0 或 5.1,解決的辦法是建立 /usr/lib/zoneinfo 到 /usr/share/zoneinfo 的符號連接:
ln -s /usr/share/zoneinfo /usr/lib/zoneinfo
小結:時鐘設置的問題本身比較簡單,但是它涉及到幾個基本的配置文件:
/etc/rc.d/rc.sysinit
/etc/sysconfig/clock
/etc/localtime
/usr/share/zoneinfo
對初學者來說,確實需要一定的基本功纔可以對以上的幾個文件瞭如指掌。但是仔細閱讀 hwclock 的 man 手冊,相信這些問題都能迎刃而解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章