1.問(wèn)題描述
最近在劃水的魚(yú)博客項(xiàng)目上用 @Scheduled 和corn表達(dá)式寫(xiě)了個(gè)定時(shí)器,項(xiàng)目在本地windows上跑是沒(méi)有問(wèn)題的,但是發(fā)現(xiàn)發(fā)布到linux服務(wù)上時(shí),定時(shí)器運(yùn)行時(shí)間不對(duì)了。與我設(shè)置的定時(shí)時(shí)間相差了8個(gè)小時(shí)。
查了相關(guān)資料發(fā)現(xiàn)是:linux的CentOS系統(tǒng)時(shí)間與UTC時(shí)間不一致導(dǎo)致的
2.原因
咱們?cè)诎惭b完Centos Linux操做系統(tǒng)以后,點(diǎn)擊系統(tǒng)的時(shí)間發(fā)現(xiàn)與如今所使用的時(shí)間不一致,相差有8小時(shí),而在安裝系統(tǒng)的時(shí)候咱們選擇的時(shí)區(qū)是上海,可是CentOS Linux默認(rèn)的bios時(shí)間是utc時(shí)間(UTC是協(xié)調(diào)世界時(shí)(Universal Time Coordinated)英文縮寫(xiě),是由國(guó)際無(wú)線電咨詢委員會(huì)規(guī)定和推薦,并由國(guó)際時(shí)間局(BIH)負(fù)責(zé)保持的以秒為基礎(chǔ)的時(shí)間標(biāo)度。
UTC至關(guān)于本初子午線(即經(jīng)度0度)上的平均太陽(yáng)時(shí),過(guò)去曾用格林威治平均時(shí)(GMT)來(lái)表示.北京時(shí)間比UTC時(shí)間早8小時(shí),以1999年1月1日0000UTC為例,UTC時(shí)間是零點(diǎn),北京時(shí)間為1999年1月1日早上8點(diǎn)整。),因此咱們?cè)跁r(shí)間上面相隔了8個(gè)小時(shí)。這個(gè)時(shí)候bios的時(shí)間和系統(tǒng)的時(shí)間固然是不一致,一個(gè)表明 utc 時(shí)間,一個(gè)表明cst(+8時(shí)區(qū)),即上海的時(shí)間。
查看時(shí)間命令:
1.查看系統(tǒng)時(shí)間:
date
2.查看utc時(shí)間
date -u

很明顯兩個(gè)時(shí)間相差勒8個(gè)小時(shí),所以就出現(xiàn)了以上的問(wèn)題。
3.解決辦法
在CentOS Linux中終端命令中執(zhí)行如下命令:
3.1 編輯時(shí)間配置文件
vi /etc/sysconfig/clock
------------------------------
ZONE="Asia/Shanghai"操作系統(tǒng)
UTC=false #設(shè)置為false,硬件時(shí)鐘不于utc時(shí)間一致同步
ARC=falsei
3.2 linux的時(shí)區(qū)設(shè)置為上海時(shí)區(qū)
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3.3 對(duì)準(zhǔn)時(shí)間
ntpdate 47.99.xxx.xxx(你的ip)
若是沒(méi)有安裝ntp服務(wù)器,剛須要先執(zhí)行如下命令 安裝npt服務(wù)器:
yum install ntp
如果報(bào)這個(gè)問(wèn)題:

解決殺掉進(jìn)程
使用lsof –i:123
沒(méi)有l(wèi)sof命令的話:yum install -y lsof
[root@izbp12w1juq9po2x7vs7nnz ~]# lsof -i:123
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ntpd 31393 ntp 16u IPv4 48258263 0t0 UDP *:ntp
ntpd 31393 ntp 17u IPv6 48258264 0t0 UDP *:ntp
ntpd 31393 ntp 18u IPv4 48258269 0t0 UDP localhost:ntp
ntpd 31393 ntp 19u IPv4 48258270 0t0 UDP izbp12w1juq9po2x7vs7nnz:ntp
ntpd 31393 ntp 20u IPv4 48258271 0t0 UDP izbp12w1juq9po2x7vs7nnz:ntp
[root@izbp12w1juq9po2x7vs7nnz ~]# kill -9 31393
然后再執(zhí)行命令:ntpdate 47.99.xxx.xxx(你的ip)
如果報(bào)錯(cuò):

解決辦法:
①在本機(jī)上裝ntpd服務(wù)
②啟動(dòng)ntpd服務(wù)
③檢查ntp server完成了與自身的同步
④使用ntpdate讓其它節(jié)點(diǎn)與ntp server進(jìn)行同步
3.4 設(shè)置硬件時(shí)間和系統(tǒng)時(shí)間一致并校準(zhǔn)
/sbin/hwclock --systohc
好了,咱們的CentOS linux系統(tǒng)時(shí)間和計(jì)算機(jī)硬件時(shí)間終于都是cst時(shí)間了,而且都是上海時(shí)區(qū),終因而正常啦。
時(shí)間是同步了,但是在網(wǎng)上搜方法時(shí),將CST時(shí)間換成了GMT了,不影響使用就不關(guān)心了。
GMT時(shí)間是格林尼治標(biāo)準(zhǔn)時(shí)間。CST時(shí)間是指包含中國(guó)。美國(guó)。巴西,澳大利亞四個(gè)時(shí)區(qū)的時(shí)間。

還有一個(gè)簡(jiǎn)單的方法就是直接改時(shí)間,命令:
date -s 2021/10/13
date -s 11:04

完事!