| 
 在Linux计算机上,有两个时间,一个是硬件时间(BIOS中记录的时间,称为hwclock),另一个是操作系统时间(osclock)。硬件时钟由BIOS电池供电, 当计算机关机后,会继续运行,BIOS电池一般可使用几年,如果没电了,那BIOS中的数据会恢复出厂设置。 硬件时间与操作系统时间的交互流程 1、开机时,操作系统从BIOS中读取硬件时间+时区,然后根据osclock的时区,转换为对应的时间。然后操作系统时间与硬件时间就独立运行,相互不影响,我们 通过应用程序获取的时间用的都是操作系统时间。这一步是开机时os自动完成的。 2、主机运行过程中,通过ntp保证osclock与国际原子时同步,再将osclock同步到hwclock。这一步需要自己配置实现 3、关机时,osclock写入hwclock。这一步是关机时os自动完成的。不过我们要考虑异常关机的情况,当异常关机时,osclock可能没有写入hwclock,这就是为什 么在第2步中将osclock定时刷入hwclock的原因。如果不定时刷入,那osclock与hwclock差距比较大时,若异常关机,osclock就丢掉了,再开机时,osclock就是 错误的,在第一个ntp同步到来时,osclock就一直是错误的。而且如果使用的是ntpd,ntpd是渐进调整,要经过多个ntp同步周期后才会将osclock调整为国际原子 时,另外,如果osclock与ntp server的时间差超过1000秒,那ntp server就不会更新osclock了。 ubuntu修改时区和时间的方法 1.首先查看时区: - codetc@webubuntu:~$ date -R
 
 - Tue, 17 Dec 2013 18:23:01 +0800
 
  复制代码如果要修改时区,执行sudo tzselect 2.选择区域:亚洲  
 - 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.选择时区:北京时间 
  
 - 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.确认验证: 
  
 - 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.复制文件到/etc目录下 
 - sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
 
  复制代码7.更新时间 
 - sudo ntpdate time.windows.com
 
  复制代码8.修改时间以后,修改硬件CMOS的时间 
  
 |