時區(qū) Time Zone
普及一點地理知識
執(zhí)行date命令打印當(dāng)前時間,結(jié)果中的CST
就表示當(dāng)前系統(tǒng)設(shè)置的時區(qū)
[root@taotaoplus ~]# date
2022年 08月 12日 星期五 00:18:38 CST
[root@taotaoplus ~]#
UTC:協(xié)調(diào)世界時,又稱世界統(tǒng)一時間、世界標(biāo)準(zhǔn)時間、國際協(xié)調(diào)時間。由于英文(CUT)和法文(TUC)的縮寫不同,作為妥協(xié),簡稱UTC。 中國大陸、中國香港、中國澳門、中國臺灣、蒙古國、新加坡、馬來西亞、菲律賓、西澳大利亞州的時間與UTC的時差均為+8,也就是UTC+8。
CST:同時代表了下面4個時區(qū):美國中部時間:Central Standard Time (USA) UT-6:00、澳大利亞中部時間:Central Standard Time (Australia) UT+9:30、中國標(biāo)準(zhǔn)時間:China Standard Time UT+8:00、古巴標(biāo)準(zhǔn)時間:Cuba Standard Time UT-4:00
這里的CST
(Chinese Standard Time)指的是中國標(biāo)準(zhǔn)時間,就是通常所說的北京時間
舉個例子
中國的晚上八點就可以表示為:20:00 CST
中國處在東八區(qū)(UTC+8),通過計算也可以表示為:12:00 UTC
時區(qū)對于linux時間同步的意義在于:我們從一個服務(wù)器同步時間時,服務(wù)器只會給我們給出UTC+0的時間值,因為它不知道我們在哪里
Linux Time Zone
在Linux下glibc提供了很多事先編譯好的時區(qū)文件, 放在/usr/share/zoneinfo
目錄下
[root@taotaoplus zoneinfo]# ls -F /usr/share/zoneinfo/
Africa/ Asia/ Canada/ Cuba EST GB GMT-0 HST iso3166.tab Kwajalein Mexico/ NZ Portugal PST8PDT Singapore Universal W-SU
America/ Atlantic/ CET EET EST5EDT GB-Eire GMT+0 Iceland Israel leapseconds MST NZ-CHAT posix/ right/ Turkey US/ zone1970.tab
Antarctica/ Australia/ Chile/ Egypt Etc/ GMT Greenwich Indian/ Jamaica Libya MST7MDT Pacific/ posixrules ROC tzdata.zi UTC zone.tab
Arctic/ Brazil/ CST6CDT Eire Europe/ GMT0 Hongkong Iran Japan MET Navajo Poland PRC ROK UCT WET Zulu
zdump
命令可以查看每個時區(qū)(地區(qū))的當(dāng)前時間
[root@taotaoplus ~]# zdump /usr/share/zoneinfo/UTC
/usr/share/zoneinfo/UTC Thu Aug 11 17:01:16 2022 UTC
[root@taotaoplus ~]# zdump /usr/share/zoneinfo/Hongkong
/usr/share/zoneinfo/Hongkong Fri Aug 12 01:01:26 2022 HKT
[root@taotaoplus ~]# zdump /usr/share/zoneinfo/Asia/Shanghai
/usr/share/zoneinfo/Asia/Shanghai Fri Aug 12 01:01:37 2022 CST
[root@taotaoplus ~]# zdump /usr/share/zoneinfo/Japan
/usr/share/zoneinfo/Japan Fri Aug 12 02:01:54 2022 JST
[root@taotaoplus ~]# date
2022年 08月 12日 星期五 01:03:26 CST
date命令查看的則是當(dāng)前系統(tǒng)設(shè)置的時區(qū)的時間,那么怎么設(shè)置當(dāng)前的時間呢?
修改時區(qū)
方案一(最常用的方法)修改/etc/localtime
這個文件,
這個文件定義了我們所在的時區(qū),這是個軟連接,我們可以重新創(chuàng)建軟連接指向/usr/share/zoneinfo中定義的時區(qū)文件
舉個栗子:時區(qū)修改為新加坡,再修改為上海:
oot@taotaoplus ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 35 2月 17 21:40 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
[root@taotaoplus ~]# ln -sf /usr/share/zoneinfo/Singapore /etc/localtime
[root@taotaoplus ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 29 8月 12 01:16 /etc/localtime -> /usr/share/zoneinfo/Singapore
[root@taotaoplus ~]# date
2022年 08月 12日 星期五 01:17:06 +08
[root@taotaoplus ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@taotaoplus ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 33 8月 12 01:17 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai
[root@taotaoplus ~]# date
2022年 08月 12日 星期五 01:17:30 CST
[root@taotaoplus ~]#
方案二 tzselect
當(dāng)前時區(qū)
執(zhí)行tzselect,進(jìn)行交互式選擇
簡單總結(jié):(理解這些需要知道Linux環(huán)境變量相關(guān)的知識哦Q_Q)
- 直白點說tzselect命令只是生成信息,創(chuàng)建TZ環(huán)境變量才會使時區(qū)配置生效
- TZ環(huán)境變量的時區(qū)配置會覆蓋 /etc/localtime.也就是說TZ變量沒有定義的時候系統(tǒng)才使用/etc/localtime來確定時區(qū)
- 根據(jù)export命令的特性重啟TZ環(huán)境就沒了,所以你想永久修改時區(qū)的話就把TZ變量的設(shè)置直接寫入/etc/profile里
方案三 timedatectl
時間
明確概念
在一臺計算機上我們有兩個時鐘,硬件時間時鐘(Real Time Clock,RTC)和系統(tǒng)時鐘(System Clock)
硬件時鐘是指嵌在主板上的特殊的電路, 它的存在就是平時我們關(guān)機之后還可以計算時間的原因
系統(tǒng)時鐘就是操作系統(tǒng)的kernel所用來計算時間的時鐘. 它從1970年1月1日00:00:00 UTC時間到目前為止秒數(shù)總和的值 在Linux下系統(tǒng)時間在開機的時候會和硬件時間同步(synchronization),之后也就各自獨立運行了
那么既然兩個時鐘獨自運行,那么時間久了必然就會產(chǎn)生誤差
同步誤差
# 硬件時間設(shè)置成系統(tǒng)時間
hwclock --hctosys
# 系統(tǒng)時間設(shè)置成硬件時間
hwclock --systohc
# 那么如果想設(shè)置硬件時間我們可以開機的時候在BIOS里設(shè)定.也可以用hwclock命令
hwclock --set --date="mm/dd/yy hh:mm:ss"
系統(tǒng)時間
通常我們用date
命令操作系統(tǒng)時間
# 修改系統(tǒng)時間
date -s "dd/mm/yyyy hh:mm:ss"
NTP和時間的同步
網(wǎng)絡(luò)時間協(xié)議,英文名稱:Network Time Protocol(NTP)是用來使計算機時間同步化的一種協(xié)議,它可以使計算機對其服務(wù)器或時鐘源(如石英鐘,GPS等等)做同步化,它可以提供高精準(zhǔn)度的時間校正(LAN上與標(biāo)準(zhǔn)間差小于1毫秒,WAN上幾十毫秒),且可介由加密確認(rèn)的方式來防止惡毒的協(xié)議攻擊。NTP的目的是在無序的Internet環(huán)境中提供精確和健壯的時間服務(wù)。
我們的計算機時間久了都會產(chǎn)生誤差
NTP Server的時間是準(zhǔn)確的
那就讓時間服務(wù)器給我們的定時同步時間吧
找到給我們提供同步服務(wù)的NTP Server:
NTP的官方網(wǎng)站
阿里云NTP服務(wù)器
兩種時間同步工具ntpd、ntpdate
ntpd平滑同步、ntpdate立即同步,在生產(chǎn)環(huán)境中慎用ntpdate,也正如此兩者不可同時運行。
時鐘的躍變,對于某些程序會導(dǎo)致很嚴(yán)重的問題。
ntpdate (不推薦使用)
ntp服務(wù)開啟時,ntpdate 會報錯,沖突?。?!
# 安裝 ntpdate
yum install ntpdate -y
# 同步時間
ntpdate cn.pool.ntp.org
# 配合定時crontab定時我任務(wù),定時同步時間
echo "0 12 * * * /usr/sbin/ntpdate cn.pool.ntp.org" >> /var/spool/cron/root
[root@taotaoplus ~]# crontab -l
0 12 * * * /usr/sbin/ntpdate cn.pool.ntp.org
ntp服務(wù)
概述
NTP(Network Time Protocol,網(wǎng)絡(luò)時間協(xié)議)
C/S模式
NTP是層級結(jié)構(gòu),有頂端的服務(wù)器,多層的Relay Server再到客戶端。所以服務(wù)器從高到低,級別可以設(shè)定為1~16級。為了減緩負(fù)荷和網(wǎng)絡(luò)堵塞,原則上應(yīng)該避免直接連接到級別為1的服務(wù)器。
安裝:
yum -y install ntp
服務(wù)命令
systemctl enable ntpd
開機啟動systemctl start ntpd
啟動服務(wù)systemctl stop ntpd
停止服務(wù)systemctl status ntpd
查看服務(wù)狀態(tài)
服務(wù)端口
服務(wù)啟動后的端口監(jiān)聽
配置文件:/etc/ntp.conf
- server
配置的多個ntp服務(wù)器
本機從哪里同步時間?上游時間服務(wù)器
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 配置為阿里的時間服務(wù)器
server 120.25.115.20 # ntp1.aliyun.com
server 203.107.6.88 # ntp2.aliyun.com
- restrict
誰可以訪問?誰可以修改我的時間?
上級時間服務(wù)器能訪問我,并且能修改我的時間
當(dāng)我作為局域網(wǎng)內(nèi)的時間服務(wù)器,需要給局域網(wǎng)內(nèi)的其他機器同步時間,此時就要設(shè)置這個網(wǎng)段的機器能訪問我,但不能修改我的時間
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
# 默認(rèn)是拒絕所有來源的任何訪問
restrict default nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 120.25.115.20 # ntp1.aliyun.com 允許上級時間服務(wù)器訪問,并修改我的時間
restrict 203.107.6.88 # ntp2.aliyun.com 允許上級時間服務(wù)器修改,并修改我的時間
restrict 127.0.0.1 # 自己可以訪問自己(ipv4)
restrict ::1 # 自己可以訪問自己(ipv6)
restrict 192.168.65.0 mask 255.255.255.0 nomodify # 允許局域網(wǎng)機器訪問,但不能修改我的時間
其他參數(shù)暫時不關(guān)注了 以后用到再說文章來源:http://www.zghlxwxcb.cn/news/detail-468253.html
檢查同步結(jié)果
配置完重啟服務(wù):systemctl restart ntpd
執(zhí)行ntpstat
,檢查是否與上有服務(wù)器鏈接時間是否自動同步(每64s 同步一次)
PS:ntpstat需要ntp服務(wù)重啟后幾分鐘執(zhí)行
執(zhí)行 ntpq -p
,查看和上游時間服務(wù)器的連接狀態(tài)
列出了所有作為時鐘源校正過本地NTP服務(wù)器時鐘上層NTP服務(wù)器的列表。文章來源地址http://www.zghlxwxcb.cn/news/detail-468253.html
-
remote
:響應(yīng)這個請求的NTP服務(wù)器的名稱。*
表示當(dāng)前選擇的主服務(wù)器,+
表示輔助服務(wù)器,-
表示不合格的服務(wù)器,x
表示服務(wù)器不可用。 -
refid
:NTP服務(wù)器使用的上一級ntp服務(wù)器的IP地址 -
st
:遠(yuǎn)程NTP服務(wù)器的級別。 -
t
:本地NTP服務(wù)器與遠(yuǎn)程NTP服務(wù)器的通信方式。u:單播;b:廣播;I:本地 -
when
:上次成功請求后到現(xiàn)在的秒數(shù) -
poll
:本地NTP服務(wù)器與遠(yuǎn)程NTP服務(wù)器同步的時間間隔。 -
reach
:這是一個八進(jìn)制的值,用來測試衡量前八次查詢是否成功和服務(wù)器連接。377表示都成功,0表示不成功 -
delay
:網(wǎng)絡(luò)延時,單位為微秒(μs) -
offset
:本地NTP服務(wù)器與遠(yuǎn)程NTP服務(wù)器的時間偏移,單位為毫秒(ms)。offset越接近于0,主機與NTP服務(wù)器的時間越接近 -
jitter
:查詢偏差的分布值,用于表示遠(yuǎn)程NTP的網(wǎng)絡(luò)延時是否穩(wěn)定,單位為微秒(μs)。
到了這里,關(guān)于linux時間設(shè)置與同步--NTP的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!