對於許多與系統相關的任務和進程,使用正確的時區是必不可少的。例如,cron守護進程使用系統的時區執行cron作業,日誌文件中的時間戳基於同一系統的時區。
環境
Centos 8
檢查現在的時區
timedatectl是一個 命令 行實用程序,允許您查看和更改系統的時間和日期。
[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
更改時區
在更改時區之前,您需要找出要使用的時區名爛派稱。要列出所有可用時區,請使用下面的 命令 :
[root@localhost ~]# timedatectl list-timezones
…
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
…
然後使用set-timezone選項更改時區,比如更改為Europe/Berlin:
[root@localhost ~]# timedatectl set-timezone Europe/Berlin
使用創建鏈接的方式更改時區
如果運行的是舊版本的Centos,比如Centos6之前的版本,並且系統上不存在timedatectl命令,則可以通過將/etc/localtime符號鏈接到/usr/share/zoneinfo目錄中的時區文件來更改時區。
查看一下/usr/share/zoninfo下面宴歷橋的時區文件,
[root@localhost ~]# ls /usr/share/zoneinfo/晌猛
[root@localhost ~]# ls /usr/share/zoneinfo/Asia/
現在替換時區文件。
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@localhost ~]# date
Tue Mar 31 16:53:59 CST 2020
可以看到已經切換到了CST中國標准時間
總結
在本文中,使用了兩種方式修改時區。一種是使用timedatectl,另一種方式使用創建鏈接的方式。
② linux 時區設置 cst 什麼時區
1)
找到相應的時區文件
/usr/share/zoneinfo/asia/shanghai
用這個文件替換當前的/etc/localtime文件。
2)
修改/etc/sysconfig/clock文件,修改為:
zone="asia/shanghai"
[color=red]utc=true[/color]
arc=false
3)
時間設定成2005年8月30日的命令如下:
#date
-s
08/30/2005
將系統時間設定成下午6點40分0秒的命令如下。
#date
-s
18:40:00
4)
同步bios時鍾,強制把系統時間寫入cmos,命令如下:
#clock
-w
5)重啟apache。
參考資料二、
本文檔解釋了如何從linux下設置計算機的時鍾,如何設置您的時區和其它與linux如何保存時間相關的材料。
您的計算機有兩個時鍾,一個是始終運行的、由電池供電的(
硬體的、bios或cmos
)時鍾,另一個是由運行在您的計算機上的操作系統維護的(
系統
)時鍾。硬體時鍾通常只在操作系統啟動時用來設置系統時鍾,然後直到重啟或關閉系統,由系統時鍾來記錄時間。在linux
系統中,您可以選擇用utc/gmt
時間或本地時間來記錄硬體時鍾。推薦的選項是用utc
記錄,因為夏令時可以自動記錄。使用utc
記錄硬體時鍾的唯一不足是,如果您使用雙系統,其它操作系統,如dos
要求硬體時鍾用本地時間設置,那麼在那個操作系統里時間將是錯誤的。
設置時區:
linux
下的時區是通過建立從/etc/localtime[1]
到/usr/share/zoneinfo
[2]
目錄下與您所在時區相符的文件的符號鏈結實現的。例如,由於我在南澳大利亞,/etc/localtime就是到
/usr/share/zoneinfo/australia/south的符號鏈結。要建立這個鏈結,運行:
ln
-sf
../usr/share/zoneinfo/your/zone
/etc/localtime
替換your/zone
為形如australia/nsw或australia/perth
的文件。看看/usr/share/zoneinfo目錄都有什麼時區。
[1]
這里假設/usr/share/zoneinfo
是到/etc/localtime
的鏈結的前提是redhat
linux
[2]
在舊版本的系統里,您會發現使用/usr/lib/zoneinfo而不是/usr/share/zoneinfo。參考後面「一些應用程序中時間錯誤」。
③ linux下如何修改時區(TIMEZONE)
date命令去修改時間,這個比較簡單就不多說了。然而,有時候兩台機器的時間雖然一致,但是時區卻不同,那麼用戶就不得不去修改機器的時區,這個修改在不同操作系統是不同的,所以這里分別介紹一下主流操作系統修改時區的方法:Solaris:
在solaris中,修改時區需要修改/etc/TIMEZONE文件,其中的TZ=PRC就表示中國時區,我們可以將其替換為TZ=US/Pacific,再重啟機器,就將時區修改為美國太平洋時區了。
這里需要注意三點:
1,在X86的機器上,需要再執行如下命令,更新/etc/rtc_config文件:# rtc -zzone-name(這里的zone-name就是/etc/TIMEZONE中TZ的值)# rtc -c
2,到底有多少中時區可以選擇呢?我們可以進入/usr/share/lib/zoneinfo目錄,其中有很多目錄,包括US,也有很多文件,比如PRC;這表示US下還有很多時區,而PRC就是統一的時區。正因為如此,我們才看到TZ=PRC和TZ=US/Pacific這兩種不同的形式。
3,需要重啟系統使之生效。
Linux(Redhat andSuse):
1,在/usr/share/zoneinfo/目錄下查詢想要更換的時區名稱,修改格式同上
2,將原有的localtime文件移走;
# mv /etc/localtime
/etc/localtime-old
3,做新的localtime文件,將對應的時區文件鏈接過來# ln -s/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4,與硬體同步
# /sbin/hwclock--systohcAIX:
1,查看當前時區(其他操作系統是date命令即可)
cat /etc/environment
(查找TZ所在行)
2,為了妥善起見,建議使用smit修改時區smit chtz
3,所有的時區信息在/usr/share/lib/zoneinfo目錄HPUX:
1,# set_parms timezone,可以通過交互的方式來修改時區。
④ linux查看系統時區命令
顯示 /etc/timezone 的內容
使用 cat 工具顯示文件/etc/timezone的內容,來查看你的時帶灶區:
$ cat /etc/timezone
在 Linux 中查看時知戚區《Linux就該這么學》
對蠢猛扮於 RHEL/CentOS/Fedora 用戶,這里還有一條可以起到同樣效果的命令:
$ grep ZONE /etc/sysconfig/clock
⑤ Linux中如何查看修改系統的時間和時區
一、時區
1. 查看當前時區
date -R
2. 修改設置時區
方法(1)
tzselect
方法(2) 僅限於RedHat Linux 和 CentOS
timeconfig
方法(3) 適用於Debian
dpkg-reconfigure tzdata
3. 復制相應的時區文件,替換系統時區文件;或者創建鏈接文件
cp /usr/share/zoneinfo/$主時區/$次時區 /etc/localtime
在中國可以使用:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
二、時間
1、查看時間和日期
date
2、設置時間和日期
將系統日期設定成1996年6月10日的命令
date -s 06/22/96
將系統時間設定成下午1點52分0秒的命令
date -s 13:52:00
3. 將當前時間和日期寫入BIOS,避免重啟後失效
hwclock -w
備註:
更詳細的命令說明請參加man
⑥ linux 查看各個時區
date -u 中的u是date的一個參來數,固定表示格林威自治時間
你要想查看全部時區,就去 /usr/share/zoneinfo/ 目錄
例如:ls /usr/share/zoneinfo/Asia/
可顯示全部的亞洲時區。
⑦ linux修改系統時間命令
inux修改時間命令是date-s+時分秒。
修改linux系統時間。root使用date指令:date -s
1、只修改日期,不修改時間,輸入:date -s 2021-04-02。
2、只修改時間,輸入:date -s 12:00:00。
3、同時修改日期時間,注意要加雙引號,日期與時間之間有一空格,輸入:date -s 「2021-04-02 10:25:00」
4、修改完後,記得輸入:clock -w。把系統時間寫入CMOS修改時區不重啟。在root下。
復制相應的時區文件,替換系統時區文件:
cp /usr/share/zoneinfo/主時區/次時區 /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5、文件復制命令—cp cp [參數] [源地址] [目的地址]主要參數描述如下:-a :此參數和同時指定「-dpR」參數相同 -d :在復制有符號連接的文件時,保留原始的連接。 -f :強行復制文件,不管要復制的文件是否已經存在於目標目錄。 -I :覆蓋現有文件之前詢問用戶。
⑧ Linux集群系統時間同步
環境准備:
要做到伺服器集群的時間同步,集群中各台機器的時區必須相同的,我們在國內就使用中國時區,如果你的機器的時區不是"Asia/Shanghai",需要修改時區
CentOS 中時區是以文件形式存在,當前正在使用的時區文件位於
/etc/localtime ,其他時區文件則位於 /usr/share/zoneinfo 下,中國時區的文件全路徑是 /usr/share/zoneinfo/Asia/Shanghai
要更改時區,直接使用如下命令就OK
需要使用 tzselect 命令去生成時區文件,生成好的時區文件就在/usr/share/zoneinfo 目錄下,具體步驟去下:
使用 date -s 命令來修改系統時間
讓集群所有的伺服器的時間同步,就用遠程連接工具連接所有伺服器,然後在所有的伺服器中同時執行 date -s 命令設置時間,然後在所有的伺服器中執行 hwclock -w 命令即可
美國標准技術院時間伺服器:time.nist.gov(192.43.244.18)
上海交通大學網路中心NTP伺服器地址:ntp.sjtu.e.cn(202.120.2.101)
中國國家授時中心虧侍伺服器地址:cn.pool.ntp.org(210.72.145.44)
若以上提供的網路時間伺服器不可用,請自行上網尋找可用的網路時間伺服器
<1> 使用命令: crontab -e
<2> 然後往裡加入一行內容
上面的配置表示,每隔十分鍾從 202.120.2.101 該時間伺服器同步一次時間。
<3> 保銷戚吵存退出
以上兩步操作可以讓node01這個伺服器每隔10分鍾去指定的伺服器同步時間,如果需要讓集群中的所有伺服器(hadoop01-hadoop04)時間同步,那麼每台伺服器都要做以上兩步操作。
node01的IP為192.168.21.101,讓它作為時間伺服器,192.168.21.0區域網內的所有伺服器都向它同步時間,而node01這台時間伺服器本身,向外網時間伺服器同步時間(比如中國國家授時中心伺服器)
我用node01
我去掉了所有的默認注釋,對其中的修改寫了自己的注釋,沒有寫注釋的是默認配置
因為ntpd服務開啟之後,就不能手動同步時間了,那麼為什麼要先手動同步時間呢?
當server(中國國家授時中心伺服器)與client(node01)之間的時間誤差過大時(可能是1000秒),node01去同步時間可能對系統和應用帶來不可預知的問題,node01將停止時間同步!所以如果發現node01啟動之後時間並不進仔悶行同步時,應該考慮到可能是時間差過大引起的,此時需要先手動進行時間同步!
看到紅色框中的內容,表示連接和監聽已正確
這里的前4行就是我們配置的4個中國國家授時中心的伺服器的信息
最後一行就是本地時間服務的信息
下面對每個列的意義進行說明:
同樣,服務啟動後需要等待5-10分鍾才能看到這個正常的信息
到這里,我們區域網內的時間伺服器node01就已經配置完畢了
文件內容如下:
同樣,沒有寫注釋的都是默認的配置
原因同(5)
到這里,利用區域網內一台時間伺服器來同步整個集群時間的全部配置就已經完成
說明:若以上提供的網路時間伺服器不可用,請自行上網尋找可用的網路時間伺服器,另外需要關閉各伺服器的防火牆,才能進行時間同步
參考文章:
內網環境NTP服務及時間同步(CentOS6.x)配置和部署
配置NTP服務ntpd/ntp.conf(搭建Hadoop集群可參考)
⑨ 如何在linux命令行下修改時區
查看時區
cat /etc/sysconfig/clock
設置時區
tzselect
timeconfig
cat /etc/sysconfig/clock ZONE=」Asia/Shanghai」 —> /usr/share/zoneinfo 下面的文件。 UTC=false —> 硬體時鍾是否為 UTC 或者說 GMT 時鍾。槐亮 ARC=false —> 如果是在 Alpha 機器上,則設置為 true 。
把硬體時鍾設置為 UTC 的好處就是他能自動設置夏時制,缺點是,在安裝有多重操作系統啟動的機器上,在另外的操作 系統上時鍾會錯誤。
Linux 的時鍾設置文件為:/etc/localtime ,實際上這個文件是 /usr/share/zoneinfo 目錄下對應嘩明脊文件的符號連接。 假設我們所處的地區位於上海,那麼只要運行以下的命令就可以設置時區了。
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Linux 啟動時,其中的一個腳本(/etc/rc.d/rc.sysinit)會運行 /sbin/hwclock 程序,把當前的硬體亂滲時鍾復制為系統 時間。hwclock 假定硬體時鍾已經設置為本地時鍾,除非帶有 –utc 參數。腳本文件會讀取 /etc/sysconfig/clock 文 件的設置,因此我們不需要修改腳本,直接修改這個配置文件就可以了,根據需要把其中的 UTC 行,設置為 true 或 者 false。
設置硬體時鍾時,首先使用 date 命令(「date MMDDhhmmYYYY.ss」) 設置好系統時鍾,然後使用 「/sbin/hwclock –systohc」 把硬體時鍾設置為和當前系統時間一致。
如果你在某些應用下面的時間是錯誤的,那麼你在運行 Red Hat Linux 5.0 或 5.1,解決的辦法是建立 /usr/lib/zoneinfo 到 /usr/share/zoneinfo 的符號連接:
ln -s /usr/share/zoneinfo /usr/lib/zoneinfo
小結:時鍾設置的問題本身比較簡單,但是它涉及到幾個基本的配置文件:
/etc/rc.d/rc.sysinit /etc/sysconfig/clock /etc/localtime /usr/share/zoneinfo時區的配置文件是/etc/sysconfig/clock。用tzselect命令就可以修改這個配置文件,根據命令的提示進行修改就好了。 但是在實際工作中,發現這種方式是不能夠使得伺服器上的時間設置馬上生效的,而且使用ntpdate去同步時間伺服器也不能夠更改時間。即使你使用了date命令手工設置了時間的話,如果使用ntpdate去進行時間同步的話,時間又會被改動到原來的錯誤時區的時間。而生產的機器往往是非常重要的,不能夠進行重啟等操作。 在網上找了幾種方法試了下,發現如果要修改時區並且馬上生效,可以更換/etc/localtime 文件來實現。比如我的時區是中國上海,那麼就可以使用如下的命令來使得時區的更改生效。 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 然後最好使用下面的命令將更改寫入bios。
⑩ 請問Linux系統中時區文件 比如/usr/share/zonetime/Asia/Shanghai 是怎麼生成的啊
glibc 裡面 可以用 zic 編譯生成。
不過那語法真夠麻煩的。
發現系統裡面拷貝的時區文件 有些不正確。糾結。