在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的时间 sudo hwclock --systohc
文章来源 CODETC,欢迎分享,转载请注明地址:
http://www.codetc.com/article-344-1.html
|