Linux機器上的時間比較復雜,有各式各樣的時鐘和選項等等。機器里有兩個時鐘趴乡,硬件時鐘從根本上講是CMOS時鐘荐吉,而系統(tǒng)時鐘是由內核維護的焙糟。
- 修改硬件時鐘
(1)更新機器的硬件時間。命令為:hwclock --adjust
硬件時鐘通常被設置成全球標準時間(UTC)样屠,而將時區(qū)信息保存在/usr/share/lib/timezone (或者在某些系統(tǒng)中可能是/usr/local/timezone)目錄下某個適當?shù)奈募写┐椋缓笥靡粋€符號鏈接文件/etc/localtime指向它。
(2)查看硬件時鐘痪欲。命令為:hwclock --show
(3)重置硬件時鐘用:hwclock --set --date=mm/dd/yy hh:MM:ss" - 修改時區(qū)信息悦穿。命令為:tzset
如果系統(tǒng)中沒有這條命令,那可以用類似下面的操作:
ln -s /etc/localtime /usr/share/zoneinfo/US/Pacific - 選擇時區(qū)信息业踢。命令為:tzselect
根據(jù)系統(tǒng)提示栗柒,選擇相應的時區(qū)信息。 - 修改系統(tǒng)時鐘知举。命令為:date -s
(1)將時間調整為10月11日凌晨1點55分:data 10110155
(2)將系統(tǒng)時間設定成2005年8月8日: date -s 2005/08/08
(3)將系統(tǒng)時間設定成下午8點12分0秒: date -s 20:12:00
該命令是用來修改系統(tǒng)時鐘的瞬沦。在系統(tǒng)啟動時太伊,Linux操作系統(tǒng)將時間從CMOS中讀到系統(tǒng)時間變量中,以后修改時間通過修改系統(tǒng)時間實現(xiàn)逛钻。為了保持系統(tǒng)時間與CMOS時間的一致性僚焦,Linux每隔一段時間會將系統(tǒng)時間寫入CMOS。由于該同步是每隔一段時間(大約是11分鐘)進行的曙痘,在執(zhí)行完 date -s 命令后芳悲,如果馬上重起系統(tǒng),修改的時間就有可能沒有被寫入CMOS边坤。如果要確保修改生效芭概,最好再使用 clock -w 這個命令將系統(tǒng)時間強行寫入CMOS。
以下是我遇到的情況:
查看到一臺測試環(huán)境機器時間對不上惩嘉,本以為系統(tǒng)時間與網(wǎng)絡北京時間不同步罢洲,就在終端命令執(zhí)行網(wǎng)絡時間同步
[root@localhost ~]# ntpdate time1.aliyun.com
image.png
執(zhí)行完之后,在執(zhí)行終端命令文黎,查看時間還是一樣惹苗,其實EDT和CST是有區(qū)別的,時區(qū)不一樣
EDT:指美國東部夏令時間耸峭,波士頓桩蓉、紐約市、[華盛頓哥倫比亞特區(qū)]劳闹,都在這個時區(qū)內院究,跟北京時間有12小時的時差,晚12小時本涕。
CST:可以指下面兩種:
1. 美國中部標準時間(西六區(qū)业汰,-6:00),中國是東八區(qū)(+8:00)菩颖,北京時間比美國中部標準時間早14個小時样漆。3:45 PM CST 是北京時間凌晨1:45。
2. 中澳大利亞標準時間(+10:30)晦闰,中國是東八區(qū)(+8:00)放祟,北京時間比中澳大利亞標準時間晚2個半小時。3:45 PM CST 是北京時間下午上午5:45呻右。
那么現(xiàn)在只要改成北京時間的時區(qū)CST就可以了跪妥,修改如下:
[root@localhost ~]# mv /etc/localtime /etc/localtime.bak
[root@localhost ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@localhost ~]# date