計算機系統有兩個時鐘,一個是BIOS,或者CMOS,或者說“硬件時鐘”,還有一個就是“系統(操作系統)時鐘”, 如果這兩個時鐘的設置上有問題,或者Linux的時鐘配置文件不正確的話,就會產生系統時鐘差8小時的問題。 讓我們先查看/etc/sysconfig/clock的內容
計算機系統有兩個時鐘,一個是 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 手冊,相信這些
問題都能迎刃而解。