Linux時(shí)鐘在概念上類(lèi)似Windows時(shí)鐘顯示當(dāng)前系統(tǒng)時(shí)間,但在時(shí)鐘分類(lèi)和設(shè)置上卻和Windows大相徑庭。和Windows不同的是,Linux將時(shí)鐘分為系統(tǒng)時(shí)鐘(System Clock)和硬件(Real Time Clock,簡(jiǎn)稱RTC)時(shí)鐘兩種。系統(tǒng)時(shí)間是指當(dāng)前Linux Kernel中的時(shí)鐘,而硬件時(shí)鐘則是主板上由電池供電的那個(gè)主板硬件時(shí)鐘,這個(gè)時(shí)鐘可以在BIOS的“Standard BIOS Feture”項(xiàng)中進(jìn)行設(shè)置。
? ? 既然Linux有兩個(gè)時(shí)鐘系統(tǒng),那么大家所使用的Linux默認(rèn)使用哪種時(shí)鐘系統(tǒng)呢?會(huì)不回出現(xiàn)兩種系統(tǒng)時(shí)鐘沖突的情況呢?這些疑問(wèn)和擔(dān)心不無(wú)道理。首先,Linux并沒(méi)有默認(rèn)哪個(gè)時(shí)鐘系統(tǒng)。當(dāng)Linux啟動(dòng)時(shí),硬件時(shí)鐘會(huì)去讀取系統(tǒng)時(shí)鐘的設(shè)置,然后系統(tǒng)時(shí)鐘就會(huì)獨(dú)立于硬件運(yùn)作。
? ? 從Linux啟動(dòng)過(guò)程來(lái)看,系統(tǒng)時(shí)鐘和硬件時(shí)鐘不會(huì)發(fā)生沖突,但Linux中的所有命令(包括函數(shù))都是采用的系統(tǒng)時(shí)鐘設(shè)置。不僅如此,系統(tǒng)時(shí)鐘和硬件時(shí)鐘還可以采用異步方式,見(jiàn)圖1所示,即系統(tǒng)時(shí)間和硬件時(shí)間可以不同。這樣做的好處對(duì)于普通用戶意義不大,但對(duì)于Linux網(wǎng)絡(luò)管理員卻有很大的用處。例如,要將一個(gè)很大的網(wǎng)絡(luò)中(跨越若干時(shí)區(qū))的服務(wù)器同步,假如位于美國(guó)紐約的Linux服務(wù)器和北京的Linux服務(wù)器,其中一臺(tái)服務(wù)器無(wú)須改變硬件時(shí)鐘而只需臨時(shí)設(shè)置一個(gè)系統(tǒng)時(shí)間,如要將北京服務(wù)器上的時(shí)間設(shè)置為紐約時(shí)間,兩臺(tái)服務(wù)器完成文件的同步后,再與原來(lái)的時(shí)鐘同步一下即可。這樣系統(tǒng)和硬件時(shí)鐘就提供了更為靈活的操作。
同步系統(tǒng)時(shí)鐘和硬件時(shí)鐘
? ? Linux系統(tǒng)(筆者使用的是Red Hat 8.0,其它系統(tǒng)沒(méi)有做過(guò)實(shí)驗(yàn))默認(rèn)重啟后,硬件時(shí)鐘和系統(tǒng)時(shí)鐘同步。如果不大方便重新啟動(dòng)的話(服務(wù)器通常很少重啟),使用clock或hwclock命令來(lái)同步系統(tǒng)時(shí)鐘和硬件時(shí)鐘。
? ? 硬件時(shí)鐘與系統(tǒng)時(shí)鐘同步:
? ? # hwclock --hctosys
? ? 或者
? ? # clock --hctosys
? ? 上面命令中,--hctosys表示Hardware Clock to SYStem clock。
? ? 系統(tǒng)時(shí)鐘和硬件時(shí)鐘同步:
? ? # hwclock --systohc
? ? 或者
? ? # clock --systohc
? ? 既然Linux有兩個(gè)時(shí)鐘系統(tǒng),那么大家所使用的Linux默認(rèn)使用哪種時(shí)鐘系統(tǒng)呢?會(huì)不回出現(xiàn)兩種系統(tǒng)時(shí)鐘沖突的情況呢?這些疑問(wèn)和擔(dān)心不無(wú)道理。首先,Linux并沒(méi)有默認(rèn)哪個(gè)時(shí)鐘系統(tǒng)。當(dāng)Linux啟動(dòng)時(shí),硬件時(shí)鐘會(huì)去讀取系統(tǒng)時(shí)鐘的設(shè)置,然后系統(tǒng)時(shí)鐘就會(huì)獨(dú)立于硬件運(yùn)作。
? ? 從Linux啟動(dòng)過(guò)程來(lái)看,系統(tǒng)時(shí)鐘和硬件時(shí)鐘不會(huì)發(fā)生沖突,但Linux中的所有命令(包括函數(shù))都是采用的系統(tǒng)時(shí)鐘設(shè)置。不僅如此,系統(tǒng)時(shí)鐘和硬件時(shí)鐘還可以采用異步方式,見(jiàn)圖1所示,即系統(tǒng)時(shí)間和硬件時(shí)間可以不同。這樣做的好處對(duì)于普通用戶意義不大,但對(duì)于Linux網(wǎng)絡(luò)管理員卻有很大的用處。例如,要將一個(gè)很大的網(wǎng)絡(luò)中(跨越若干時(shí)區(qū))的服務(wù)器同步,假如位于美國(guó)紐約的Linux服務(wù)器和北京的Linux服務(wù)器,其中一臺(tái)服務(wù)器無(wú)須改變硬件時(shí)鐘而只需臨時(shí)設(shè)置一個(gè)系統(tǒng)時(shí)間,如要將北京服務(wù)器上的時(shí)間設(shè)置為紐約時(shí)間,兩臺(tái)服務(wù)器完成文件的同步后,再與原來(lái)的時(shí)鐘同步一下即可。這樣系統(tǒng)和硬件時(shí)鐘就提供了更為靈活的操作。
同步系統(tǒng)時(shí)鐘和硬件時(shí)鐘
? ? Linux系統(tǒng)(筆者使用的是Red Hat 8.0,其它系統(tǒng)沒(méi)有做過(guò)實(shí)驗(yàn))默認(rèn)重啟后,硬件時(shí)鐘和系統(tǒng)時(shí)鐘同步。如果不大方便重新啟動(dòng)的話(服務(wù)器通常很少重啟),使用clock或hwclock命令來(lái)同步系統(tǒng)時(shí)鐘和硬件時(shí)鐘。
? ? 硬件時(shí)鐘與系統(tǒng)時(shí)鐘同步:
? ? # hwclock --hctosys
? ? 或者
? ? # clock --hctosys
? ? 上面命令中,--hctosys表示Hardware Clock to SYStem clock。
? ? 系統(tǒng)時(shí)鐘和硬件時(shí)鐘同步:
? ? # hwclock --systohc
? ? 或者
? ? # clock --systohc
所以你用DATE修改或設(shè)置時(shí)間后要用clock -w或者h(yuǎn)wclock --systohc刷新到CMOS中,以確保時(shí)間的準(zhǔn)確性