Linux 系統時區與手動校時工作: date, hwclock

我們在前面說過, Linux 的時區檔案就是 /etc/localtime ,這是一個時間格式的檔案而不是 ASCII 類型的檔案喔! (file /etc/localtime 可以看出),至於所有的 Time Zone 則放置在 /usr/share/zoneinfo 這個目錄下。請注意:

當 /etc/localtime 存在時,系統的時區以該檔案代表的時區來顯示、
當 /etc/localtime 不存在時,系統的時區主要以 GMT (或 UTC) 為準;
所以,如果您想要變更您 Linux 系統的時區,那麼只要在 /usr/share/zoneinfo 裡面找到您需要的時區檔案, 然後將他複製一份成為 /etc/localtime 就可以順利的更新時區設定了!另外,同時建議修正一下 /etc/sysconfig/clock 這個檔案裡面的 ZONE 設定值!以我們台灣的 Time zone 為例,在 /etc/sysconfig/clock 這個檔案當中應該是『ZONE="Asia/Taipei"』這就表示我們的時區檔案為 /usr/share/zoneinfo/Asia/Taipei 這個檔案囉!請對應著修改成您所想要的時區吧!

例題:
假設你的主機本來在台灣,後來被搬到美國的洛杉磯 (Los_Angeles) 去了。請問你如何更改主機的時區參考檔案?
答:
時區參考檔在是 /etc/localtime ,不過這個檔案在不同的 Linux distribution 的處理方式不一樣。 以 Red Hat 系統為例,他是以複製的方式來處理這個檔案。而 SuSE 則是以 hard link 來處理的。 所以,請記得不要隨意的單純用『複製』的方式來處理,最好先移除後複製。 所以你可以這樣做:
[root@linux ~]# rm /etc/localtime
[root@linux ~]# cp -a /usr/share/zoneinfo/America/Los_Angeles \
> /etc/localtime
[root@linux ~]# vi /etc/sysconfig/clock
ZONE="America/Los_Angeles"
UTC=false
ARC=false


這樣就 OK 的啦! ^_^

好了,時區修正完畢了,那麼時間呢?如前所述,目前 Linux 系統上面有兩個時間喔,一個是 Linux 系統,另一個則是 BIOS 時間!我們可以使用 date 這個指令來手動修正目前主機的時間,不過, date 這個指令僅修正 Linux 時間而已,我們還需要以 hwclock 這個指令來將 BIOS 時間也更新才行!
[root@linux ~]# date MMDDhhmmYYYY
參數:
MM:月份
DD:日期
hh:小時
mm:分鐘
YYYY:西元年

1. 修改時間成為 1 小時後的時間該如何是好?
[root@linux ~]# date
Thu Dec 7 15:36:45 CST 2006

[root@linux ~]# date 120716362006
Thu Dec 7 16:36:00 CST 2006
# 瞧!時間立刻就修改過來了!


[root@linux ~]# hwclock [-rw]
參數:
-r :亦即 read ,讀出目前 BIOS 內的時間參數;
-w :亦即 write ,將目前的 Linux 系統時間寫入 BIOS 當中啊!

2. 查閱 BIOS 時間,並且寫入更改過的時間囉!
[root@linux ~]# hwclock -r
Thu Dec 7 15:37:44 2006 -0.627128 seconds
# 看一看,是否剛好差異約一個小時啊!這就是 BIOS 時間!

[root@linux ~]# hwclock -w
# 這樣就寫入囉~很簡單吧!


這樣可以瞭解了嗎?當我們進行完 Linux 時間的校時後,還需要以 hwclock 來更新 BIOS 的時間,因為每次開機的時候,系統會重新由 BIOS 將時間讀出來,所以, BIOS 才是重要的時間依據吶。



billtang0311 發表在 痞客邦 PIXNET 留言(0) 人氣()