在Linux計(jì)算機(jī)上,有兩個(gè)時(shí)間,一個(gè)是硬件時(shí)間(BIOS中記錄的時(shí)間,稱為hwclock),另一個(gè)是操作系統(tǒng)時(shí)間(osclock)。硬件時(shí)鐘由BIOS電池供電,
當(dāng)計(jì)算機(jī)關(guān)機(jī)后,會(huì)繼續(xù)運(yùn)行,BIOS電池一般可使用幾年,如果沒電了,那BIOS中的數(shù)據(jù)會(huì)恢復(fù)出廠設(shè)置。
硬件時(shí)間與操作系統(tǒng)時(shí)間的交互流程
1、開機(jī)時(shí),操作系統(tǒng)從BIOS中讀取硬件時(shí)間+時(shí)區(qū),然后根據(jù)osclock的時(shí)區(qū),轉(zhuǎn)換為對應(yīng)的時(shí)間。然后操作系統(tǒng)時(shí)間與硬件時(shí)間就獨(dú)立運(yùn)行,相互不影響,我們
通過應(yīng)用程序獲取的時(shí)間用的都是操作系統(tǒng)時(shí)間。這一步是開機(jī)時(shí)os自動(dòng)完成的。
2、主機(jī)運(yùn)行過程中,通過ntp保證osclock與國際原子時(shí)同步,再將osclock同步到hwclock。這一步需要自己配置實(shí)現(xiàn)
3、關(guān)機(jī)時(shí),osclock寫入hwclock。這一步是關(guān)機(jī)時(shí)os自動(dòng)完成的。不過我們要考慮異常關(guān)機(jī)的情況,當(dāng)異常關(guān)機(jī)時(shí),osclock可能沒有寫入hwclock,這就是為什
么在第2步中將osclock定時(shí)刷入hwclock的原因。如果不定時(shí)刷入,那osclock與hwclock差距比較大時(shí),若異常關(guān)機(jī),osclock就丟掉了,再開機(jī)時(shí),osclock就是
錯(cuò)誤的,在第一個(gè)ntp同步到來時(shí),osclock就一直是錯(cuò)誤的。而且如果使用的是ntpd,ntpd是漸進(jìn)調(diào)整,要經(jīng)過多個(gè)ntp同步周期后才會(huì)將osclock調(diào)整為國際原子
時(shí),另外,如果osclock與ntp server的時(shí)間差超過1000秒,那ntp server就不會(huì)更新osclock了。
ubuntu修改時(shí)區(qū)和時(shí)間的方法
1.首先查看時(shí)區(qū):
codetc@webubuntu:~$ date -R
Tue, 17 Dec 2013 18:23:01 +0800
如果要修改時(shí)區(qū),執(zhí)行sudo tzselect
2.選擇區(qū)域:亞洲
codetc@webubuntu:~$ sudo tzselect
[sudo] password for codetc:
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 5
3.選擇國家:中國
Please select a country.
1) Afghanistan 18) Israel 35) Palestine
2) Armenia 19) Japan 36) Philippines
3) Azerbaijan 20) Jordan 37) Qatar
4) Bahrain 21) Kazakhstan 38) Russia
5) Bangladesh 22) Korea (North) 39) Saudi Arabia
6) Bhutan 23) Korea (South) 40) Singapore
7) Brunei 24) Kuwait 41) Sri Lanka
8) Cambodia 25) Kyrgyzstan 42) Syria
9) China 26) Laos 43) Taiwan
10) Cyprus 27) Lebanon 44) Tajikistan
11) East Timor 28) Macau 45) Thailand
12) Georgia 29) Malaysia 46) Turkmenistan
13) Hong Kong 30) Mongolia 47) United Arab Emirates
14) India 31) Myanmar (Burma) 48) Uzbekistan
15) Indonesia 32) Nepal 49) Vietnam
16) Iran 33) Oman 50) Yemen
17) Iraq 34) Pakistan
#? 9
4.選擇時(shí)區(qū):北京時(shí)間
Please select one of the following time zone regions.
1) east China - Beijing, Guangdong, Shanghai, etc.
2) Heilongjiang (except Mohe), Jilin
3) central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.
4) most of Tibet & Xinjiang
5) west Tibet & Xinjiang
#? 1
5.確認(rèn)驗(yàn)證:
The following information has been given:
China
east China - Beijing, Guangdong, Shanghai, etc.
Therefore TZ='Asia/Shanghai' will be used.
Local time is now: Tue Dec 17 18:22:10 CST 2013.
Universal Time is now: Tue Dec 17 10:22:10 UTC 2013.
Is the above information OK?
1) Yes
2) No
#? 1
You can make this change permanent for yourself by appending the line
TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai
6.復(fù)制文件到/etc目錄下
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
7.更新時(shí)間
sudo ntpdate time.windows.com
8.修改時(shí)間以后,修改硬件CMOS的時(shí)間
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接