. 前言
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),宜州企業(yè)網(wǎng)站建設(shè),宜州品牌網(wǎng)站建設(shè),網(wǎng)站定制,宜州網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,宜州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
如果你想修改Linux系統(tǒng)里的時(shí)間,本文合適你。Linux上有多種修改時(shí)間的命令工具,本文介紹最常用、最通用的方法。
?
linux修改時(shí)間
先來(lái)了解世界時(shí)間的標(biāo)準(zhǔn),包括GMT、UTC、CST、DST、以及操作系統(tǒng)同步時(shí)間的方式
1.1 UTC
整個(gè)地球分為二十四時(shí)區(qū),每個(gè)時(shí)區(qū)都有自己的本地時(shí)間。在國(guó)際無(wú)線電通信場(chǎng)合,為了統(tǒng)一起見,使用一個(gè)統(tǒng)一的時(shí)間,稱為通用協(xié)調(diào)時(shí)(UTC, Universal Time Coordinated)。
1.2 GMT
格林威治標(biāo)準(zhǔn)時(shí)間 (Greenwich Mean Time)指位于英國(guó)倫敦郊區(qū)的皇家格林尼治天文臺(tái)的標(biāo)準(zhǔn)時(shí)間,因?yàn)楸境踝游缇€被定義在通過(guò)那里的經(jīng)線。
UT(世界時(shí))和GMT(格林威治標(biāo)準(zhǔn)時(shí))是相同的時(shí)間標(biāo)準(zhǔn),都是基于天體觀察的。
UT 是相同標(biāo)準(zhǔn)的“科學(xué)”名稱。GMT:格林威治時(shí)間,是標(biāo)準(zhǔn)的“民間”名稱。
因此,格林威治標(biāo)準(zhǔn)時(shí)(GMT)和世界時(shí) (UT) 是相等的。
UTC是我們現(xiàn)在用的時(shí)間標(biāo)準(zhǔn),GMT是老的時(shí)間計(jì)量標(biāo)準(zhǔn)。UTC是根據(jù)原子鐘來(lái)計(jì)算時(shí)間,而GMT是根據(jù)地球的自轉(zhuǎn)和公轉(zhuǎn)來(lái)計(jì)算時(shí)間,也就是太陽(yáng)每天經(jīng)過(guò)位于英國(guó)倫敦郊區(qū)的皇家格林威治天文臺(tái)的時(shí)間就是中午12點(diǎn)。由于現(xiàn)在世界上最精確的原子鐘50億年才會(huì)誤差1秒,可以說(shuō)非常精確。而GMT因?yàn)槭歉鶕?jù)地球的轉(zhuǎn)動(dòng)來(lái)計(jì)算時(shí)間的,而地球的自轉(zhuǎn)正在緩速變慢,所以使用GMT的話,會(huì)不太精準(zhǔn),一般情況那感覺不到差異,但是UTC更加科學(xué)和精確。
1.3 CST
中國(guó)標(biāo)準(zhǔn)時(shí)間 (China Standard Time)
1.4 DST
夏令時(shí)(Daylight Saving Time) 指在夏天太陽(yáng)升起的比較早時(shí),將時(shí)鐘撥快一小時(shí),以提早日光的使用。(中國(guó)不使用)
我們需要知道的是:
GMT + 8 = UTC + 8 = CST
1.5 操作系統(tǒng)時(shí)間
以Linux為例,其實(shí)Windows或者其他操作系統(tǒng)也是類似的。
Linux時(shí)間有兩個(gè)時(shí)間:
Wall Time:系統(tǒng)時(shí)間,該時(shí)間由系統(tǒng)維護(hù),可以是臨時(shí),也可以是網(wǎng)絡(luò)上同步回來(lái)的,也可以是從硬件讀取出來(lái)的,前提條件是系統(tǒng)服務(wù)正常運(yùn)行,如果系統(tǒng)關(guān)機(jī)了,那就不存在Wall Time
RTC Time:RTC(Real-Time Clock)或CMOS時(shí)間,即硬件時(shí)間,你可以理解為主板BIOS在一聲聲哀嚎聲中,數(shù)學(xué)老師帶著一摞試卷走了進(jìn)來(lái)。
好像是因?yàn)槎焯炖洌w育老師凍感冒了。
所以變成了兩節(jié)數(shù)學(xué)課,順便考個(gè)試。
數(shù)學(xué)老師名叫歐島,一個(gè)很富有數(shù)學(xué)氣息的名字,常年帶著一個(gè)黑框眼睛。
卷子陸續(xù)分發(fā)。
作為一個(gè)學(xué)渣,蘇牧無(wú)奈的拿出了數(shù)學(xué)參考資料,想碰碰運(yùn)氣看能不能找到原題。
“叮!查看了數(shù)學(xué)題目,數(shù)學(xué)積分+1,當(dāng)前積分1/100,等級(jí):一級(jí)”
突然,從腦海中冒出來(lái)的聲音,將他嚇了一大跳,差點(diǎn)沒(méi)從凳子上滑落下來(lái)。
一旁的同桌顏小珂忍住沒(méi)有笑場(chǎng)。
歐島則是狠狠的瞪了蘇牧一眼。
“???…”
蘇牧瞪大了眼睛,有些不可置信。
“這是什么鬼東西?這是系統(tǒng)??居然真的有系統(tǒng)這種東西?”
蘇牧繼續(xù)翻動(dòng),又出現(xiàn)了同樣的聲響。
“叮!您查看了數(shù)學(xué)題目,數(shù)學(xué)積分+1,當(dāng)前積分2/100,等級(jí):一級(jí)”
他只是瞟了一眼,居然就增加了積分?
蘇牧覺得自己的腦子清明了些。
這些陌生的數(shù)學(xué)題目,似乎看起來(lái)也熟悉了幾分。
他越發(fā)的激動(dòng)起來(lái)。
這些都是真正出現(xiàn)在他眼前的變化!
蘇牧翻書的動(dòng)作越來(lái)越快,積分也越來(lái)越多,直到歐島走過(guò)來(lái)站到了他的面前,才反應(yīng)過(guò)來(lái)迅速收了回去。
這個(gè)時(shí)候,他的積分已經(jīng)達(dá)到了81/100。
他并沒(méi)有慌張,而是繼續(xù)將試卷上的題目查看了一遍。
終于,系統(tǒng)迎來(lái)了新的提示音。
“叮,您的數(shù)學(xué)積分已經(jīng)足夠,等級(jí):二級(jí),當(dāng)前積分0/1000!”
這一瞬間,蘇牧仿佛像醍醐灌頂一般,曾經(jīng)那些陌生的數(shù)學(xué)題,仿佛變成了多年的好友!
他居然!
看懂了!
看懂了!!
居然看懂了??!
蘇牧的內(nèi)心頓時(shí)內(nèi)流滿面,頗有苦盡甘來(lái)的感覺。
仿佛是要檢驗(yàn)自己的成果,蘇牧的心思完全沉寂在了試卷之中,這是一個(gè)學(xué)渣對(duì)于知識(shí)的渴望。
時(shí)間一點(diǎn)一滴的過(guò)去,就連蘇牧自己都沒(méi)有發(fā)現(xiàn)。
可惜的是,雖然他的數(shù)學(xué)已經(jīng)達(dá)到了二級(jí),但還是有些題目沒(méi)辦法運(yùn)算出來(lái)。
“?!?.”
這一次不是系統(tǒng)的提示音,而是下課的鈴聲。
蘇牧真的是頭一次感受到了時(shí)間過(guò)的如此之快。
曾經(jīng)漫長(zhǎng)的兩個(gè)小時(shí),現(xiàn)在居然還讓他有些意猶未盡。
這就是學(xué)霸的感覺嗎?他默默的想到。
這張?jiān)嚲?,蘇牧覺得自己應(yīng)該是103分。
因?yàn)椴粫?huì)的題目他都空著。
而那些簡(jiǎn)單一點(diǎn)的題目,蘇牧有一種迷之自信。
他得出的答案,一定是正確答案!
……
“我要好好學(xué)習(xí)了?!?/p>
強(qiáng)忍住內(nèi)心的激動(dòng),蘇牧擺正了
對(duì)于許多與系統(tǒng)相關(guān)的任務(wù)和進(jìn)程,使用正確的時(shí)區(qū)是必不可少的。例如,cron守護(hù)進(jìn)程使用系統(tǒng)的時(shí)區(qū)執(zhí)行cron作業(yè),日志文件中的時(shí)間戳基于同一系統(tǒng)的時(shí)區(qū)。
環(huán)境
Centos 8
檢查現(xiàn)在的時(shí)區(qū)
timedatectl是一個(gè) 命令 行實(shí)用程序,允許您查看和更改系統(tǒng)的時(shí)間和日期。
[root@localhost ~]# timedatectl
? ? ? ? ? Local time: Tue 2020-03-31 16:35:23 CST
? ? ? Universal time: Tue 2020-03-31 08:35:23 UTC
? ? ? ? ? ? RTC time: Tue 2020-03-31 08:35:23
? ? ? ? ? ? Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
? ? ? ? ? NTP service: active
? ? ? RTC in local TZ: no
更改時(shí)區(qū)
在更改時(shí)區(qū)之前,您需要找出要使用的時(shí)區(qū)名稱。要列出所有可用時(shí)區(qū),請(qǐng)使用下面的 命令 :
[root@localhost ~]# timedatectl list-timezones
…
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
…
然后使用set-timezone選項(xiàng)更改時(shí)區(qū),比如更改為Europe/Berlin:
[root@localhost ~]# timedatectl set-timezone Europe/Berlin
使用創(chuàng)建鏈接的方式更改時(shí)區(qū)
如果運(yùn)行的是舊版本的Centos,比如Centos6之前的版本,并且系統(tǒng)上不存在timedatectl命令,則可以通過(guò)將/etc/localtime符號(hào)鏈接到/usr/share/zoneinfo目錄中的時(shí)區(qū)文件來(lái)更改時(shí)區(qū)。
查看一下/usr/share/zoninfo下面的時(shí)區(qū)文件,
[root@localhost ~]# ls /usr/share/zoneinfo/
[root@localhost ~]# ls /usr/share/zoneinfo/Asia/
現(xiàn)在替換時(shí)區(qū)文件。
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@localhost ~]# date
Tue Mar 31 16:53:59 CST 2020
可以看到已經(jīng)切換到了CST中國(guó)標(biāo)準(zhǔn)時(shí)間
總結(jié)
在本文中,使用了兩種方式修改時(shí)區(qū)。一種是使用timedatectl,另一種方式使用創(chuàng)建鏈接的方式。
date命令去修改時(shí)間,這個(gè)比較簡(jiǎn)單就不多說(shuō)了。然而,有時(shí)候兩臺(tái)機(jī)器的時(shí)間雖然一致,但是時(shí)區(qū)卻不同,那么用戶就不得不去修改機(jī)器的時(shí)區(qū),這個(gè)修改在不同操作系統(tǒng)是不同的,所以這里分別介紹一下主流操作系統(tǒng)修改時(shí)區(qū)的方法:Solaris:
在solaris中,修改時(shí)區(qū)需要修改/etc/TIMEZONE文件,其中的TZ=PRC就表示中國(guó)時(shí)區(qū),我們可以將其替換為TZ=US/Pacific,再重啟機(jī)器,就將時(shí)區(qū)修改為美國(guó)太平洋時(shí)區(qū)了。
這里需要注意三點(diǎn):
1,在X86的機(jī)器上,需要再執(zhí)行如下命令,更新/etc/rtc_config文件:# rtc -zzone-name(這里的zone-name就是/etc/TIMEZONE中TZ的值)# rtc -c
2,到底有多少中時(shí)區(qū)可以選擇呢?我們可以進(jìn)入/usr/share/lib/zoneinfo目錄,其中有很多目錄,包括US,也有很多文件,比如PRC;這表示US下還有很多時(shí)區(qū),而PRC就是統(tǒng)一的時(shí)區(qū)。正因?yàn)槿绱?,我們才看到TZ=PRC和TZ=US/Pacific這兩種不同的形式。
3,需要重啟系統(tǒng)使之生效。
Linux(Redhat andSuse):
1,在/usr/share/zoneinfo/目錄下查詢想要更換的時(shí)區(qū)名稱,修改格式同上
2,將原有的localtime文件移走;
# mv /etc/localtime
/etc/localtime-old
3,做新的localtime文件,將對(duì)應(yīng)的時(shí)區(qū)文件鏈接過(guò)來(lái)# ln -s/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4,與硬件同步
# /sbin/hwclock--systohcAIX:
1,查看當(dāng)前時(shí)區(qū)(其他操作系統(tǒng)是date命令即可)
cat /etc/environment
(查找TZ所在行)
2,為了妥善起見,建議使用smit修改時(shí)區(qū)smit chtz
3,所有的時(shí)區(qū)信息在/usr/share/lib/zoneinfo目錄HPUX:
1,# set_parms timezone,可以通過(guò)交互的方式來(lái)修改時(shí)區(qū)。
修改系統(tǒng)時(shí)間。
linux系統(tǒng)時(shí)鐘有兩個(gè),一個(gè)是硬件時(shí)鐘,即BIOS時(shí)間,就是我們進(jìn)行CMOS設(shè)置時(shí)看到的時(shí)間,另一個(gè)是系統(tǒng)時(shí)鐘,是linux系統(tǒng)Kernel時(shí)間。當(dāng)Linux啟動(dòng)時(shí),系統(tǒng)Kernel會(huì)去讀取硬件時(shí)鐘的設(shè)置,然后系統(tǒng)時(shí)鐘就會(huì)獨(dú)立于硬件運(yùn)作。有時(shí)我們會(huì)發(fā)現(xiàn)系統(tǒng)時(shí)鐘和硬件時(shí)鐘不一致,因此需要執(zhí)行時(shí)間同步,下面就分享一下時(shí)間設(shè)置及時(shí)鐘同步的命令使用方法。
date命令將日期設(shè)置為2014年6月18日
----?? date -s 06/18/14
將時(shí)間設(shè)置為14點(diǎn)20分50秒
----?? date -s 14:20:50
將時(shí)間設(shè)置為2014年6月18日14點(diǎn)16分30秒(MMDDhhmmYYYY.ss)
----date 0618141614.30
請(qǐng)點(diǎn)擊輸入圖片描述
hwclock/clock 命令查看、設(shè)置硬件時(shí)間
查看系統(tǒng)硬件時(shí)鐘
hwclock? --show 或者
clock? --show
設(shè)置硬件時(shí)間
hwclock --set --date="06/18/14 14:55" (月/日/年時(shí):分:秒)或者# clock --set --date="06/18/14 14:55" (月/日/年時(shí):分:秒)
同步系統(tǒng)及硬件時(shí)鐘。
下圖中可以看到硬件和系統(tǒng)時(shí)鐘相差半小時(shí)??梢允褂胔wclock或者clock進(jìn)行同步,
硬件時(shí)鐘與系統(tǒng)時(shí)鐘同步:
# hwclock --hctosys 或者 # clock --hctosys? hc代表硬件時(shí)間,sys代表系統(tǒng)時(shí)間,即用硬件時(shí)鐘同步系統(tǒng)時(shí)鐘
系統(tǒng)時(shí)鐘和硬件時(shí)鐘同步:
# hwclock --systohc或者# clock --systohc? 即用系統(tǒng)時(shí)鐘同步硬件時(shí)鐘
請(qǐng)點(diǎn)擊輸入圖片描述
請(qǐng)點(diǎn)擊輸入圖片描述
請(qǐng)點(diǎn)擊輸入圖片描述
inux修改時(shí)間命令是date-s+時(shí)分秒。
修改linux系統(tǒng)時(shí)間。root使用date指令:date -s
1、只修改日期,不修改時(shí)間,輸入:date -s 2021-04-02。
2、只修改時(shí)間,輸入:date -s 12:00:00。
3、同時(shí)修改日期時(shí)間,注意要加雙引號(hào),日期與時(shí)間之間有一空格,輸入:date -s “2021-04-02 10:25:00”
4、修改完后,記得輸入:clock -w。把系統(tǒng)時(shí)間寫入CMOS修改時(shí)區(qū)不重啟。在root下。
復(fù)制相應(yīng)的時(shí)區(qū)文件,替換系統(tǒng)時(shí)區(qū)文件:
cp /usr/share/zoneinfo/主時(shí)區(qū)/次時(shí)區(qū) /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5、文件復(fù)制命令—cp cp [參數(shù)] [源地址] [目的地址]主要參數(shù)描述如下:-a :此參數(shù)和同時(shí)指定“-dpR”參數(shù)相同 -d :在復(fù)制有符號(hào)連接的文件時(shí),保留原始的連接。 -f :強(qiáng)行復(fù)制文件,不管要復(fù)制的文件是否已經(jīng)存在于目標(biāo)目錄。 -I :覆蓋現(xiàn)有文件之前詢問(wèn)用戶。
查看時(shí)區(qū)
cat /etc/sysconfig/clock
設(shè)置時(shí)區(qū)
tzselect
timeconfig
cat /etc/sysconfig/clock ZONE=”Asia/Shanghai” — /usr/share/zoneinfo 下面的文件。 UTC=false — 硬件時(shí)鐘是否為 UTC 或者說(shuō) GMT 時(shí)鐘。 ARC=false — 如果是在 Alpha 機(jī)器上,則設(shè)置為 true 。
把硬件時(shí)鐘設(shè)置為 UTC 的好處就是他能自動(dòng)設(shè)置夏時(shí)制,缺點(diǎn)是,在安裝有多重操作系統(tǒng)啟動(dòng)的機(jī)器上,在另外的操作 系統(tǒng)上時(shí)鐘會(huì)錯(cuò)誤。
Linux 的時(shí)鐘設(shè)置文件為:/etc/localtime ,實(shí)際上這個(gè)文件是 /usr/share/zoneinfo 目錄下對(duì)應(yīng)文件的符號(hào)連接。 假設(shè)我們所處的地區(qū)位于上海,那么只要運(yùn)行以下的命令就可以設(shè)置時(shí)區(qū)了。
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Linux 啟動(dòng)時(shí),其中的一個(gè)腳本(/etc/rc.d/rc.sysinit)會(huì)運(yùn)行 /sbin/hwclock 程序,把當(dāng)前的硬件時(shí)鐘復(fù)制為系統(tǒng) 時(shí)間。hwclock 假定硬件時(shí)鐘已經(jīng)設(shè)置為本地時(shí)鐘,除非帶有 –utc 參數(shù)。腳本文件會(huì)讀取 /etc/sysconfig/clock 文 件的設(shè)置,因此我們不需要修改腳本,直接修改這個(gè)配置文件就可以了,根據(jù)需要把其中的 UTC 行,設(shè)置為 true 或 者 false。
設(shè)置硬件時(shí)鐘時(shí),首先使用 date 命令(“date MMDDhhmmYYYY.ss”) 設(shè)置好系統(tǒng)時(shí)鐘,然后使用 “/sbin/hwclock –systohc” 把硬件時(shí)鐘設(shè)置為和當(dāng)前系統(tǒng)時(shí)間一致。
如果你在某些應(yīng)用下面的時(shí)間是錯(cuò)誤的,那么你在運(yùn)行 Red Hat Linux 5.0 或 5.1,解決的辦法是建立 /usr/lib/zoneinfo 到 /usr/share/zoneinfo 的符號(hào)連接:
ln -s /usr/share/zoneinfo /usr/lib/zoneinfo
小結(jié):時(shí)鐘設(shè)置的問(wèn)題本身比較簡(jiǎn)單,但是它涉及到幾個(gè)基本的配置文件:
/etc/rc.d/rc.sysinit /etc/sysconfig/clock /etc/localtime /usr/share/zoneinfo時(shí)區(qū)的配置文件是/etc/sysconfig/clock。用tzselect命令就可以修改這個(gè)配置文件,根據(jù)命令的提示進(jìn)行修改就好了。 但是在實(shí)際工作中,發(fā)現(xiàn)這種方式是不能夠使得服務(wù)器上的時(shí)間設(shè)置馬上生效的,而且使用ntpdate去同步時(shí)間服務(wù)器也不能夠更改時(shí)間。即使你使用了date命令手工設(shè)置了時(shí)間的話,如果使用ntpdate去進(jìn)行時(shí)間同步的話,時(shí)間又會(huì)被改動(dòng)到原來(lái)的錯(cuò)誤時(shí)區(qū)的時(shí)間。而生產(chǎn)的機(jī)器往往是非常重要的,不能夠進(jìn)行重啟等操作。 在網(wǎng)上找了幾種方法試了下,發(fā)現(xiàn)如果要修改時(shí)區(qū)并且馬上生效,可以更換/etc/localtime 文件來(lái)實(shí)現(xiàn)。比如我的時(shí)區(qū)是中國(guó)上海,那么就可以使用如下的命令來(lái)使得時(shí)區(qū)的更改生效。 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 然后最好使用下面的命令將更改寫入bios。