方法/步驟

成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)大冶,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
1
修改系統(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
2
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í):分:秒)
3
同步系統(tǒng)及硬件時(shí)鐘。
下圖中可以看到硬件和系統(tǒng)時(shí)鐘相差半小時(shí)。可以使用hwclock或者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í)鐘
END
方法/步驟2
時(shí)區(qū)設(shè)置:
開始設(shè)置時(shí)區(qū)時(shí),參考網(wǎng)上的資料,使用tzselect 命令來進(jìn)行,結(jié)果發(fā)現(xiàn)tzselect命令只是告訴了設(shè)置時(shí)區(qū)的方法,而并不是真的去修改/etc/sysconfig/clock這個(gè)文件。換句話說就是tzselect命令僅僅告訴我們通過設(shè)置TZ這個(gè)環(huán)境變量來選擇的時(shí)區(qū),然后將變量添加到.profile文件中。下面就簡單介紹一下如何使用tzselect命令設(shè)置時(shí)區(qū),以及如何通過修改/etc/sysconfig/clock配置文件來設(shè)置時(shí)區(qū)。
tzselect:
執(zhí)行tzselect命令--選擇Asia--選擇China--選擇east China - Beijing, Guangdong, Shanghai, etc--然后輸入1。過程如下圖:
執(zhí)行完tzselect命令選擇時(shí)區(qū)后,時(shí)區(qū)并沒有更改,只是在命令最后提示你可以執(zhí)行TZ='Asia/Shanghai'; export TZ 并將這行命令添加到.profile中,然后退出并重新登錄。參考下圖中date命令看到的結(jié)果,最終時(shí)區(qū)顯示為CST,即中國標(biāo)準(zhǔn)時(shí)間。
修改配置文件來修改時(shí)區(qū)1、修改/etc/sysconfig/clock ZONE=Asia/Shanghai
2、rm /etc/localtime3、鏈接到上海時(shí)區(qū)文件
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
執(zhí)行完上述過程后,重啟機(jī)器,即可看到時(shí)區(qū)已經(jīng)更改。
如果你的 Linux 系統(tǒng)時(shí)區(qū)配置不正確,必需要手動(dòng)調(diào)整到正確的當(dāng)?shù)貢r(shí)區(qū)。NTP 對(duì)時(shí)間的同步處理只計(jì)算當(dāng)?shù)貢r(shí)間與 UTC 時(shí)間的偏移量,因此配置一個(gè) NTP 對(duì)時(shí)間進(jìn)行同步并不能解決時(shí)區(qū)不正確的問題。所以大家在用了國外云計(jì)算服務(wù)商如 Microsoft Azure 或其它 VPS、虛擬機(jī)時(shí),需要注意是否與中國大陸的時(shí)區(qū)一致。
查看Linux當(dāng)前時(shí)區(qū)
你可以使用如下命令非常容易地就查看到 linux 系統(tǒng)的當(dāng)前時(shí)區(qū):
date
ls -l /etc/localtime
linux-time02
獲取時(shí)區(qū)TZ值
要更改 Linux 系統(tǒng)時(shí)區(qū)首先得獲知你所當(dāng)?shù)貢r(shí)區(qū)的 TZ 值,使用 tzselect 命令即可查看并選擇已安裝的時(shí)區(qū)文件。
執(zhí)行 tzselect 命令
linux-time03
通過向?qū)нx擇你所在大洲、國家和城市
tzselect 最終將以 Posix TZ 格式(例如 Asia/Shanghai)輸出你所在的時(shí)區(qū)值,將此記錄下來。
linux-time03
更改每個(gè)用戶的時(shí)區(qū)
Linux 用戶一個(gè)多用戶系統(tǒng),每個(gè)用戶都可以配置自己所需的時(shí)區(qū),你可以為自己新增一個(gè) TZ 環(huán)境變量:
export TZ='Asia/Shanghai'
執(zhí)行完成之后需要重新登錄系統(tǒng)或刷新 ~/.bashrc 生效。
source ~/.bashrc
更改Linux系統(tǒng)時(shí)區(qū)
要更改 Linux 系統(tǒng)整個(gè)系統(tǒng)范圍的時(shí)區(qū)可以使用如下命令:
sudo rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
注意:/usr/share/zoneinfo/Asia/Shanghai 中的具體時(shí)區(qū)請(qǐng)用自己獲取到的 TZ 值進(jìn)行替換。
使用Systemd更改Linux系統(tǒng)時(shí)區(qū)
如果你使用的 Linux 系統(tǒng)使用 Systemd,還可以使用 timedatectl 命令來更改 Linux 系統(tǒng)范圍的時(shí)區(qū)。在 Systemd 下有一個(gè)名為 systemd-timedated 的系統(tǒng)服務(wù)負(fù)責(zé)調(diào)整系統(tǒng)時(shí)鐘和時(shí)區(qū),我們可以使用 timedatectl 命令對(duì)此系統(tǒng)服務(wù)進(jìn)行配置。
sudo timedatectl set-timezone 'Asia/Shanghai'
linux-time05
最后,如果你發(fā)現(xiàn) Ubuntu 與 Windows 雙系統(tǒng)時(shí)間不同步,可以參考我們之前的文章說明和解決辦法。
一、查看和修改Linux的時(shí)區(qū) 1. 查看當(dāng)前時(shí)區(qū) 命令 : "date -R" 2. 修改設(shè)置Linux服務(wù)器時(shí)區(qū) 方法 A 命令 : "tzselect" 方法 B 僅限于RedHat Linux 和 CentOS 命令 : "timeconfig" 方法 C 適用于Debian 命令 : "dpkg-reconfigure tzdata" 3. 復(fù)制相應(yīng)的時(shí)區(qū)文件,替換系統(tǒng)時(shí)區(qū)文件;或者創(chuàng)建鏈接文件 cp /usr/share/zoneinfo/$主時(shí)區(qū)/$次時(shí)區(qū) /etc/localtime 例如:在設(shè)置中國時(shí)區(qū)使用亞洲/上海(+8) cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 二、查看和修改Linux的時(shí)間 1. 查看時(shí)間和日期 命令 : "date" 2.設(shè)置時(shí)間和日期 例如:將系統(tǒng)日期設(shè)定成2009年11月3日的命令 命令 : "date -s 11/03/2009" 將系統(tǒng)時(shí)間設(shè)定成下午5點(diǎn)55分55秒的命令 命令 : "date -s 17:55:55" 3. 將當(dāng)前時(shí)間和日期寫入BIOS,避免重啟后失效 命令 : "hwclock -w" 注: date 不加參數(shù)可以直接看到當(dāng)前日期時(shí)間 cal 不加參數(shù)可以直接看到本月月歷
對(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命令,則可以通過將/etc/localtime符號(hào)鏈接到/usr/share/zoneinfo目錄中的時(shí)區(qū)文件來更改時(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中國標(biāo)準(zhǔn)時(shí)間
總結(jié)
在本文中,使用了兩種方式修改時(shí)區(qū)。一種是使用timedatectl,另一種方式使用創(chuàng)建鏈接的方式。
date命令的功能是顯示和設(shè)置系統(tǒng)日期和時(shí)間。
該命令的一般格式為: date [選項(xiàng)] 顯示時(shí)間格式(以+開頭,后面接格式)
date 設(shè)置時(shí)間格式
命令中各選項(xiàng)的含義分別為:
-d datestr, --date datestr 顯示由datestr描述的日期
-s datestr, --set datestr 設(shè)置datestr 描述的日期
-u, --universal 顯示或設(shè)置通用時(shí)間 時(shí)間域
% H 小時(shí)(00..23)
% I 小時(shí)(01..12)
% k 小時(shí)(0..23)
% l 小時(shí)(1..12)
% M 分(00..59)
% p 顯示出AM或PM
% r 時(shí)間(hh:mm:ss AM或PM),12小時(shí)
% s 從1970年1月1日00:00:00到目前經(jīng)歷的秒數(shù)
% S 秒(00..59)
% T 時(shí)間(24小時(shí)制)(hh:mm:ss)
% X 顯示時(shí)間的格式(%H:%M:%S)
% Z 時(shí)區(qū) 日期域
% a 星期幾的簡稱( Sun..Sat)
% A 星期幾的全稱( Sunday..Saturday)
% b 月的簡稱(Jan..Dec)
% B 月的全稱(January..December)
% c 日期和時(shí)間( Mon Nov 8 14:12:46 CST 1999)
% d 一個(gè)月的第幾天(01..31)
% D 日期(mm/dd/yy)
% h 和%b選項(xiàng)相同
% j 一年的第幾天(001..366)
% m 月(01..12)
% w 一個(gè)星期的第幾天(0代表星期天)
% W 一年的第幾個(gè)星期(00..53,星期一為第一天)
% x 顯示日期的格式(mm/dd/yy)
% y 年的最后兩個(gè)數(shù)字( 1999則是99)
% Y 年(例如:1970,1996等)
需要特別說明的是,只有超級(jí)用戶才能用date命令設(shè)置時(shí)間,一般用戶只能用date命令顯示時(shí)間。
下列環(huán)境變量將會(huì)影響到 date 命令的執(zhí)行效果。
LANG 確定在 LC_ALL 和相應(yīng)的環(huán)境變量(以 LC_ 開頭)都不指定語言環(huán)境的時(shí)候?qū)⒁褂玫娜笔≌Z言環(huán)境。
LC_ALL 確定用于覆蓋由 LANG 或任何以 LC_ 開頭的環(huán)境變量設(shè)置的任何語言環(huán)境類別值的語言環(huán)境。
LC_CTYPE 確定文本數(shù)據(jù)的字節(jié)序列解釋為字符時(shí)使用的語言環(huán)境(例如參數(shù)中單對(duì)多字節(jié)字符)。
LC_MESSAGES 決定寫信息應(yīng)使用的語言。
LC_TIME 確定由 date 寫入的日期和時(shí)間字符串的內(nèi)容。
NLSPATH 為處理 LC_MESSAGES 決定消息目錄的位置。
TZ 指定時(shí)間和日期使用的時(shí)區(qū),除非指定了 -u 選項(xiàng)。如果未設(shè)置 TZ 變量且未指定 -u 標(biāo)志,則使用非指定的系統(tǒng)缺省時(shí)區(qū)。
使用示例一:
#date //顯示當(dāng)前日期
#date -s //設(shè)置當(dāng)前時(shí)間,只有root權(quán)限才能設(shè)置,其他只能查看。
#date -s 20061010 //設(shè)置成20061010,這樣會(huì)把具體時(shí)間設(shè)置成空00:00:00
#date -s 12:23:23 //設(shè)置具體時(shí)間,不會(huì)對(duì)日期做更改
#date -s “12:12:23 2006-10-10″ //這樣可以設(shè)置全部時(shí)間
CST:中國標(biāo)準(zhǔn)時(shí)間(China Standard Time),這個(gè)解釋可能是針對(duì)RedHat Linux。
UTC:協(xié)調(diào)世界時(shí),又稱世界標(biāo)準(zhǔn)時(shí)間,簡稱UTC,從英文國際時(shí)間/法文協(xié)調(diào)時(shí)間”Universal Time/Temps Cordonné”而來。中國大陸、香港、澳門、臺(tái)灣、蒙古國、新加坡、馬來西亞、菲律賓、澳洲西部的時(shí)間與UTC的時(shí)差均為+8,也就是UTC+8。
GMT:格林尼治標(biāo)準(zhǔn)時(shí)間(舊譯格林威治平均時(shí)間或格林威治標(biāo)準(zhǔn)時(shí)間;英語:Greenwich Mean Time,GMT)是指位于英國倫敦郊區(qū)的皇家格林尼治天文臺(tái)的標(biāo)準(zhǔn)時(shí)間,因?yàn)楸境踝游缇€被定義在通過那里的經(jīng)線。
設(shè)置完系統(tǒng)時(shí)間后,還需要同步到硬件時(shí)鐘上
# clock --systohc
硬件時(shí)鐘與系統(tǒng)時(shí)鐘同步:
# hwclock --hctosys
或者
# clock --hctosys
上面命令中,--hctosys表示Hardware Clock to SYStem clock。
系統(tǒng)時(shí)鐘和硬件時(shí)鐘同步:
# hwclock --systohc
或者
# clock --systohc
使用示例二:
用指定的格式顯示時(shí)間。
$ date ‘+This date now is =%x ,time is now =%X ,thank you !'
This date now is =11/12/99 ,time is now =17:53:01 ,thank you !
用預(yù)定的格式顯示當(dāng)前的時(shí)間。
# date
Fri Nov 26 15:20:18 CST 1999
設(shè)置時(shí)間為下午14點(diǎn)36分。
# date -s 14:36:00
Fri Nov 26 14:15:00 CST 1999
設(shè)置時(shí)間為1999年11月28號(hào)。
# date -s 991128
Sun Nov 28 00:00:00 CST 1999
設(shè)置一天前
date --date "1 days ago" +"%Y-%m-%d"
Date 命令參數(shù)小技巧
由于Linux對(duì)man date -d 參數(shù)說的比較模糊,故舉例如下:
# -d, --date=STRING display time described by STRING, not `now'
For Linux
[root@linuxso.com ~ ]# date -d next-day +%Y%m%d
20060328
[root@linuxso.com ~ ]# date -d last-day +%Y%m%d
20060326
[root@linuxso.com ~ ]# date -d yesterday +%Y%m%d
20060326
[root@linuxso.com ~ ]# date -d tomorrow +%Y%m%d
20060328
[root@linuxso.com ~ ]# date -d last-month +%Y%m
200602
[root@linuxso.com ~ ]# date -d next-month +%Y%m
200604
[root@linuxso.com ~ ]# date -d next-year +%Y
2007
------------------------------------------
而FreeBSD則不同;舉例如下:
For FreeBSD
[root@linuxso.com ~]# date -v -1d +%Y%m%d
20060326
[root@linuxso.com ~]# date -v -1m +%Y%m%d
20060227
[root@linuxso.com ~]# date -v -1y +%Y%m%d
20050327
使用示例三:
在linux環(huán)境下要取得幾天前的時(shí)期只要使用
date -d "x days ago" +%Y%m%d
x用數(shù)字代替,如果需要幾天前的直接寫正數(shù),如果要幾天后的日期直接寫負(fù)數(shù)即可;
date -d "x weeks ago" +%Y%m%d
x用數(shù)字代替,如果需要幾周前的直接寫正數(shù),如果要幾周后的日期直接寫負(fù)數(shù)即可;
date -d "x years ago" +%Y%m%d
x用數(shù)字代替,如果需要幾年前的直接寫正數(shù),如果要幾年后的日期直接寫負(fù)數(shù)即可;
看下面例子:
[root@linuxso.com ~]# date +%Y%m%d
20100107
上面是今天的日期20100107
[root@linuxso.com ~]# date -d "2 days ago" +%Y%m%d
20100105
上面是兩天前的日期
[root@linuxso.com ~]# date -d "4 days ago" +%Y%m%d
20100103
上面是四天前的日期
[root@linuxso.com ~]# date -d "-1 days ago" +%Y%m%d
20100108
上面是一天后的日期
[root@linuxso.com ~]# date -d "-2 days ago" +%Y%m%d
20100109
上面是兩天后的日期
[root@linuxso.com ~]# date -d "1 week ago" +%Y%m%d
20091231
上面是一周前的日期
[root@linuxso.com ~]# date -d "1 year ago" +%Y%m%d
20090107
上面是一年前的日期
分享文章:包含Linux命令tz時(shí)區(qū)的詞條
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article33/dsggpss.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、定制開發(fā)、標(biāo)簽優(yōu)化、虛擬主機(jī)、全網(wǎng)營銷推廣、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)