新聞中心
Linux 命令:查看機器時間

在荷塘等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需求定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,外貿(mào)網(wǎng)站制作,荷塘網(wǎng)站建設(shè)費用合理。
在 Linux 操作系統(tǒng)中,時間是非常重要的。Linux 系統(tǒng)中有多種命令用于查看和管理時間。在本文中,我將介紹如何使用 Linux 命令查看機器時間。
1. date 命令
date 命令是 Linux 中最常用的命令之一。它在終端輸出當(dāng)前日期和時間,以及一些與日期時間相關(guān)的信息。
要查看當(dāng)前機器時間,可以在終端輸入以下命令:
“`
date
“`
該命令將輸出當(dāng)前的日期時間信息,如下所示:
“`
Thu Sep 17 22:12:05 HKT 2023
“`
其中,之一部分是日期,表示當(dāng)前日期是 9 月 17 日;第二部分是時間,表示當(dāng)前時間是 22:12:05。HKT 表示當(dāng)前使用的時區(qū)是香港時間。
除了顯示當(dāng)前時間,date 命令還可以設(shè)置系統(tǒng)時間。例如,要將系統(tǒng)時間設(shè)置為 2023 年 9 月 1 日 12:00:00,可以執(zhí)行以下命令:
“`
sudo date -s “2023-09-01 12:00:00”
“`
在執(zhí)行該命令之前,需要先使用 sudo 命令以管理員身份運行,否則無法修改系統(tǒng)時間。
2. timedatectl 命令
timedatectl 命令是一個管理時間和日期的命令,可以用于查看機器時間、時區(qū)等信息。
要查看機器時間,可以在終端輸入以下命令:
“`
timedatectl
“`
該命令將輸出當(dāng)前系統(tǒng)時間和時區(qū)信息,如下所示:
“`
Local time: Fri 2023-09-17 22:25:17 HKT
Universal time: Fri 2023-09-17 14:25:17 UTC
RTC time: Fri 2023-09-17 14:25:17
Time zone: Asia/Hong_Kong (HKT, +0800)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
“`
其中,“Local time” 表示當(dāng)前本地時間,“Universal time” 表示當(dāng)前的世界協(xié)調(diào)時間(UTC),“Time zone” 表示當(dāng)前使用的時區(qū)。
timedatectl 命令還可以用于設(shè)置系統(tǒng)時間和時區(qū)。例如,要將時區(qū)設(shè)置為北京時間,可以執(zhí)行以下命令:
“`
sudo timedatectl set-timezone Asia/Shangh
“`
在執(zhí)行該命令之前,需要先使用 sudo 命令以管理員身份運行。
3. hwclock 命令
hwclock 命令用于查看和設(shè)置系統(tǒng)硬件時鐘。硬件時鐘是指計算機內(nèi)部的一塊芯片,用于存儲系統(tǒng)時間。
要查看硬件時鐘的時間,可以在終端輸入以下命令:
“`
sudo hwclock
“`
該命令將輸出硬件時鐘的日期和時間信息,如下所示:
“`
Fri 17 Sep 2023 10:19:36 PM HKT -0.008755 seconds
“`
其中,“Fri 17 Sep 2023 10:19:36 PM HKT” 表示硬件時鐘的當(dāng)前日期和時間,“-0.008755 seconds” 表示和系統(tǒng)時間的偏差。
hwclock 命令還可以用于設(shè)置硬件時鐘的時間。例如,要將硬件時鐘的時間設(shè)置為系統(tǒng)時間,可以執(zhí)行以下命令:
“`
sudo hwclock –systohc
“`
在執(zhí)行該命令之前,需要先使用 sudo 命令以管理員身份運行。
在 Linux 操作系統(tǒng)中,查看機器時間有多種方法,包括使用 date 命令、timedatectl 命令和 hwclock 命令等。這些命令還可以用于設(shè)置系統(tǒng)時間和時區(qū),對于需要精確控制時間的任務(wù)來說非常重要。通過掌握這些命令,用戶可以更好地管理 Linux 系統(tǒng)中的時間和日期。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220linux系統(tǒng)上驗證系統(tǒng)時間和ntp server的時間是否一致。
ntp -s pool.ntp.org
date
GMT/UTC/CST;/etc/localtime,/usr/share/zoneinfo/*時區(qū)文件,/etc/profile加TZ變量;硬件時間RTC,系統(tǒng)時間;date,hwclock,tzselect;ntp relay server;rpm –ivh ntp-*;ntpdate 0.uk.pool.ntp.org ;ntpq –p,watch ntpq –p;/etc/ntp.conf;/etc/init.d/ntpd start;chkconfig –level 35 ntpd on;service ntpd status;設(shè)置NTP服務(wù)器不難但是NTP本身是一個很復(fù)雜的協(xié)議.
1. 時間和時區(qū)
如果有人問你說現(xiàn)在幾點? 你看了看表回答他說晚上8點了. 這樣回答看上去沒有什么問題,但是如果問你的這個人在歐洲的話那么你的回答就會讓他很疑惑,因為他那里還太指皮陽當(dāng)空呢.
這里就有產(chǎn)生了一個如何定義時間的問題. 因為在地球環(huán)繞太陽旋轉(zhuǎn)的24個小時中,世界各地日出日落的時間是不一樣的.所以我們才有劃分時區(qū)(timezone) 的必要,也就是把全球劃分成24個不同的時區(qū). 所以我們滑仿可以把時間的定義理解為一個時間的值加上所在地的時區(qū)(注意這個所在地可以精確到城市)
地理課上我們都學(xué)過格林威治時間(GMT), 它也就是0時區(qū)時間. 但是我們在計算機中經(jīng)??吹降氖荱TC. 它是Coordinated Universal Time的簡寫. 雖然可以認(rèn)為UTC和GMT的值相等(誤差相當(dāng)之小),但是UTC已經(jīng)被認(rèn)定為是國際標(biāo)準(zhǔn),所以我們都應(yīng)該遵守標(biāo)準(zhǔn)只使用UTC
那么假如現(xiàn)在中國當(dāng)?shù)氐臅r間是晚上8點的話,我們可以有下面兩種表示方式
20:00 CST
12:00 UTC
這里的CST是Chinese Standard Time,也就是我們通常所說的北京時間了. 因為中國處在UTC+8時區(qū),依次類推那么也就是12:00 UTC了.
為什么要說這些呢?
之一,不管通過任何渠道我們想要同步系統(tǒng)的時間,通常提供方只會給出UTC+0的時間值而不會提供時區(qū)(因為它不知道你在哪里).所以當(dāng)我們設(shè)置系統(tǒng)時間的時候,設(shè)置好時區(qū)是首先要做的工作
第二唯讓差,很多國家都有夏令時(我記得小時候中國也實行過一次),那就是在一年當(dāng)中的某一天時鐘撥快一小時(比如從UTC+8一下變成UTC+9了),那么同理到時候還要再撥慢回來.如果我們設(shè)置了正確的時區(qū),當(dāng)需要改變時間的時候系統(tǒng)就會自動替我們調(diào)整
現(xiàn)在我們就來看一下如何在Linux下設(shè)置時區(qū),也就是time zone
2. 如何設(shè)置Linux Time Zone
在Linux下glibc提供了事先編譯好的許多timezone文件, 他們就放在/usr/share/zoneinfo這個目錄下,這里基本涵蓋了大部分的國家和城市 # ls -F /usr/share/zoneinfo/
Africa/ Chile/ Factory Iceland Mexico/ posix/ Universal
America/ CST6CDT GBIndian/ Mideast/ posixrules US/
Antarctica/ Cuba GB-Eire IranMSTPRCUTC
Arctic/ EET GMTiso3166.tab MST7MDT PST8PDT WET
Asia/Egypt GMTIsraelNavajo right/ W-SU
Atlantic/ Eire GMTJamaica NZROCzone.tab
Australia/ EST GMT+JapanNZ-CHAT ROKZulu
Brazil/ EST5EDT Greenwich Kwajalein Pacific/ Singapore
Canada/ Etc/ Hongkong LibyaPoland Turkey
CETEurope/ HSTMETPortugal UCT 在這里面我們就可以找到自己所在城市的time zone文件. 那么如果我們想查看對于每個time zone當(dāng)前的時間我們可以用zdump命令 # zdump Hongkong
Hongkong Fri Jul 6 06:13:HKT 那么我們又怎么來告訴系統(tǒng)我們所在time zone是哪個呢? 方法有很多,這里舉出兩種
之一個就是修改/etc/localtime這個文件,這個文件定義了我么所在的local time zone.
我們可以在/usr/share/zoneinfo下找到我們的time zone文件然后拷貝去到/etc/localtimezone(或者做個symbolic link)
假設(shè)我們現(xiàn)在的time zone是BST(也就是英國的夏令時間,UTC+1) # date
Thu Jul 5 23:33:40 BST 2023我們想把time zone換成上海所在的時區(qū)就可以這么做# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# date
Fri Jul 6 06:35:52 CST 2023這樣時區(qū)就改過來了(注意時間也做了相應(yīng)的調(diào)整)
第二種方法也就設(shè)置TZ環(huán)境變量的值. 許多程序和命令都會用到這個變量的值. TZ的值可以有多種格式,最簡單的設(shè)置方法就是使用tzselect命令 # tzselect
… You can make this change permanent for yourself by appending the line
TZ=’Asia/Hong_Kong’; (permission denied?) export TZ
to the file ‘.profile’ in your home directory; then log out and log in again. TZ變量的值會override /etc/localtime. 也就是說當(dāng)TZ變量沒有定義的時候系統(tǒng)才使用/etc/localtime來確定time zone. 所以你想永久修改time zone的話那么可以把TZ變量的設(shè)置寫入/etc/profile里 3. Real Time Clock(RTC) and System Clock
說道設(shè)置時間這里還要明確另外一個概念就是在一臺計算機上我們有兩個時鐘:一個稱之為硬件時間時鐘(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)生誤差了,下面我們來看一個例子# date
Fri Jul 6 00:27:13 BST 2023 # hwclock –help
hwclock – query and set the hardware clock (RTC) Usage: hwclock Functions:
–helpshow this help
–showread hardware clock and print result
–setset the rtc to the time given with –date
–hctosys set the system time from the hardware clock
–systohc set the hardware clock to the current system time
–adjust adjust the rtc to account for systematic drift since
the clock was last set or adjusted
–getepoch print out the kernel’s hardware clock epoch value
–setepoch set the kernel’s hardware clock epoch value to the
value given with –epoch
–version print out the version of hwclock to stdoutOptions:
–utcthe hardware clock is kept in coordinated universal time
–localtime the hardware clock is kept in local time
–directisa access the ISA bus directly instead of /dev/rtc
–badyear ignore rtc’s year because the bios is broken
–datespecifies the time to which to set the hardware clock
–epoch=year specifies the year which is the beginning of the
hardware clock’s epoch value
–noadjfile do not access /etc/adjtime. Requires the use of
either –utc or –localtime# hwclock –show
Fri 06 Jul:27:17 AM BST -0.seconds通過hwclock –show命令我們可以查看機器上的硬件時間(always in local time zone), 我們可以看到它和系統(tǒng)時間還是有一定的誤差的, 那么我們就需要把他們同步
# hwclock –hctosys 把硬件時間設(shè)置成系統(tǒng)時間 # hwclock –systohc 把系統(tǒng)時間設(shè)置成硬件時間# hwclock –set –date=”mm/dd/yy hh:mm:ss” 設(shè)置硬件時間我們可以開機的時候在BIOS里設(shè)定.也可以用hwclock命令# date -s “dd/mm/yyyy hh:mm:ss” 修改系統(tǒng)時間用date命令就最簡單了現(xiàn)在我們知道了如何設(shè)置系統(tǒng)和硬件的時間. 但問題是如果這兩個時間都不準(zhǔn)確了怎么辦? 那么我們就需要在互聯(lián)網(wǎng)上找到一個可以提供我們準(zhǔn)確時間的服務(wù)器然后通過一種協(xié)議來同步我們的系統(tǒng)時間,那么這個協(xié)議就是NTP了. 接下去我們所要說的同步就都是指系統(tǒng)時間和網(wǎng)絡(luò)服務(wù)器之間的同步了 4. 設(shè)置NTP Server前的準(zhǔn)備
其實這個標(biāo)題應(yīng)該改為設(shè)置”NTP Relay Server”前的準(zhǔn)備更加合適. 因為不論我們的計算機配置多好運行時間久了都會產(chǎn)生誤差,所以不足以給互聯(lián)網(wǎng)上的其他服務(wù)器做NTP Server. 真正能夠精確地測算時間的還是原子鐘. 但由于原子鐘十分的昂貴,只有少部分組織擁有, 他們連接到計算機之后就成了一臺真正的NTP Server. 而我們所要做的就是連接到這些服務(wù)器上同步我們系統(tǒng)的時間,然后把我們自己的服務(wù)器做成NTP Relay Server再給互聯(lián)網(wǎng)或者是局域網(wǎng)內(nèi)的用戶提供同步服務(wù). 1). 架設(shè)一個NTP Relay Server其實非常簡單,我們先把需要的RPM包裝上 # rpm -ivh ntp-4.2.2p1-5.el5.rpm2).找到在互聯(lián)網(wǎng)上給我們提供同步服務(wù)的NTP Server ,
是NTP的官方網(wǎng)站,在這上面我們可以找到離我們城市最近的NTP Server. NTP建議我們?yōu)榱吮U蠒r間的準(zhǔn)確性,最少找兩個個NTP Server
那么比如在英國的話就可以選擇下面兩個服務(wù)器
0.uk.pool.ntp.org
1.uk.pool.ntp.org
它的一般格式都是number.country.pool.ntp.org中國的ntp服務(wù)器地址:server 133.100.11.8 prefer
server 210.72.145.44
server 203.117.180.36
server 131.107.1.10
server time.asia.apple.com
server 64.236.96.53
server 130.149.17.21
server 66.92.68.246
server
www.freebsd.org
server 18.145.0.30
server clock.via.net
server 137.92.140.80
server 133.100.9.2
server 128.118.46.3
server ntp.nasa.gov
server 129.7.1.66
server ntp-sop.inria.frserver (國家授時中心服務(wù)器IP地址)3).在打開NTP服務(wù)器之前先和這些服務(wù)器做一個同步,使得我們機器的時間盡量接近標(biāo)準(zhǔn)時間. 這里我們可以用ntpdate命令 # ntpdate 0.uk.pool.ntp.org
6 Jul 01:21:49 ntpdate: step time server 213.222.193.35 offset.sec
# ntpdate 0.pool.ntp.org
6 Jul 01:21:56 ntpdate: adjust time server 213.222.193.35 offset -0.sec 假如你的時間差的很離譜的話之一次會看到調(diào)整的幅度比較大,所以保險起見可以運行兩次. 那么為什么在打開NTP服務(wù)之前先要手動運行同步呢?
1. 因為根據(jù)NTP的設(shè)置,如果你的系統(tǒng)時間比正確時間要快的話那么NTP是不會幫你調(diào)整的,所以要么你把時間設(shè)置回去,要么先做一個手動同步
2. 當(dāng)你的時間設(shè)置和NTP服務(wù)器的時間相差很大的時候,NTP會花上較長一段時間進行調(diào)整.所以手動同步可以減少這段時間5. 配置和運行NTP Server
現(xiàn)在我們就來創(chuàng)建NTP的配置文件了, 它就是/etc/ntp.conf. 我們只需要加入上面的NTP Server和一個driftfile就可以了 # vi /etc/ntp.conf
server 0.uk.pool.ntp.org
server 1.uk.pool.ntp.org
driftfile /var/lib/ntp/ntp.drift非常的簡單. 接下來我們就啟動NTP Server,并且設(shè)置其在開機后自動運行# /etc/init.d/ntpd start
# chkconfig –level 35 ntpd on6. 查看NTP服務(wù)的運行狀況
現(xiàn)在我們已經(jīng)啟動了NTP的服務(wù),但是我們的系統(tǒng)時間到底和服務(wù)器同步了沒有呢? 為此NTP提供了一個很好的查看工具: ntpq (NTP query)
我建議大家在打開NTP服務(wù)器后就可以運行ntpq命令來監(jiān)測服務(wù)器的運行.這里我們可以使用watch命令來查看一段時間內(nèi)服務(wù)器各項數(shù)值的變化 # watch ntpq -p
Every 2.0s: ntpq -p Sat Jul 7 00:41:
remoterefid st t when poll reach delay offset jitter
==============================================================================
+193.60.199..62.22.u 8…032
*mozart.musicbox 192.5.41.u 19…411 現(xiàn)在我就來解釋一下其中的含義
remote: 它指的就是本地機器所連接的遠(yuǎn)程NTP服務(wù)器
refid: 它指的是給遠(yuǎn)程服務(wù)器(e.g. 193.60.199.75)提供時間同步的服務(wù)器
st: 遠(yuǎn)程服務(wù)器的級別. 由于NTP是層型結(jié)構(gòu),有頂端的服務(wù)器,多層的Relay Server再到客戶端. 所以服務(wù)器從高到低級別可以設(shè)定為1-16. 為了減緩負(fù)荷和網(wǎng)絡(luò)堵塞,原則上應(yīng)該避免直接連接到級別為1的服務(wù)器的.
t: 這個…..我也不知道啥意思^_^
when: 我個人把它理解為一個計時器用來告訴我們還有多久本地機器就需要和遠(yuǎn)程服務(wù)器進行一次時間同步
poll: 本地機和遠(yuǎn)程服務(wù)器多少時間進行一次同步(單位為秒). 在一開始運行NTP的時候這個poll值會比較小,那樣和服務(wù)器同步的頻率也就增加了,可以盡快調(diào)整到正確的時間范圍.之后poll值會逐漸增大,同步的頻率也就會相應(yīng)減小
reach: 這是一個八進制值,用來測試能否和服務(wù)器連接.每成功連接一次它的值就會增加
delay: 從本地機發(fā)送同步要求到服務(wù)器的round trip time
offset: 這是個最關(guān)鍵的值, 它告訴了我們本地機和服務(wù)器之間的時間差別. offset越接近于0,我們就和服務(wù)器的時間越接近
jitter: 這是一個用來做統(tǒng)計的值. 它統(tǒng)計了在特定個連續(xù)的連接數(shù)里offset的分布情況. 簡單地說這個數(shù)值的絕對值越小我們和服務(wù)器的時間就越精確
那么大家細(xì)心的話就會發(fā)現(xiàn)兩個問題: 之一我們連接的是0.uk.pool.ntp.org為什么和remote server不一樣? 第二那個最前面的+和*都是什么意思呢?
之一個問題不難理解,因為NTP提供給我們的是一個cluster server所以每次連接的得到的服務(wù)器都有可能是不一樣.同樣這也告訴我們了在指定NTP Server的時候應(yīng)該使用hostname而不是IP
第二個問題和之一個相關(guān),既然有這么多的服務(wù)器就是為了在發(fā)生問題的時候其他的服務(wù)器還可以正常地給我們提供服務(wù).那么如何知道這些服務(wù)器的狀態(tài)呢? 這就是之一個記號會告訴我們的信息
*
它告訴我們遠(yuǎn)端的服務(wù)器已經(jīng)被確認(rèn)為我們的主NTP Server,我們系統(tǒng)的時間將由這臺機器所提供
+
它將作為輔助的NTP Server和帶有*號的服務(wù)器一起為我們提供同步服務(wù). 當(dāng)*號服務(wù)器不可用時它就可以接管
–
遠(yuǎn)程服務(wù)器被clustering algorithm認(rèn)為是不合格的NTP Server
x
遠(yuǎn)程服務(wù)器不可用
了解這些之后我們就可以實時監(jiān)測我們系統(tǒng)的時間同步狀況了7. NTP安全設(shè)置
運行一個NTP Server不需要占用很多的系統(tǒng)資源,所以也不用專門配置獨立的服務(wù)器,就可以給許多client提供時間同步服務(wù), 但是一些基本的安全設(shè)置還是很有必要的
那么這里一個很簡單的思路就是之一我們只允許局域網(wǎng)內(nèi)一部分的用戶連接到我們的服務(wù)器. 第二個就是這些client不能修改我們服務(wù)器上的時間
在/etc/ntp.conf文件中我們可以用restrict關(guān)鍵字來配置上面的要求
首先我們對于默認(rèn)的client拒絕所有的操作 restrict default kod nomodify notrap nopeer noquery
然后允許本機地址一切的操作restrict 127.0.0.1
最后我們允許局域網(wǎng)內(nèi)所有client連接到這臺服務(wù)器同步時間.但是拒絕讓他們修改服務(wù)器上的時間restrict 192.168.1.0 mask 255.255.255.0 nomodify
把這三條加入到/etc/ntp.conf中就完成了我們的簡單配置. NTP還可以用key來做authenticaiton,這里就不詳細(xì)介紹了8. NTP client的設(shè)置
做到這里我們已經(jīng)有了一臺自己的Relay Server.如果我們想讓局域網(wǎng)內(nèi)的其他client都進行時間同步的話那么我們就都應(yīng)該照樣再搭建一臺Relay Server,然后把所有的client都指向這兩臺服務(wù)器(注意不要把所有的client都指向Internet上的服務(wù)器). 只要在client的ntp.conf加上這你自己的服務(wù)器就可以了 代碼:
server ntp1.leonard.com
server ntp2.leonard.com
9. 一些補充和拾遺
1. 配置文件中的driftfile是什么?
我們每一個system clock的頻率都有小小的誤差,這個就是為什么機器運行一段時間后會不精確. NTP會自動來監(jiān)測我們時鐘的誤差值并予以調(diào)整.但問題是這是一個冗長的過程,所以它會把記錄下來的誤差先寫入driftfile.這樣即使你重新開機以后之前的計算結(jié)果也就不會丟失了
2. 如何同步硬件時鐘?
NTP一般只會同步system clock. 但是如果我們也要同步RTC的話那么只需要把下面的選項打開就可以了 可以通過ps –ef |grep ntp或者使用pgrep –lf ntp查看一下你的ntp服務(wù)是否啟動了。然后可以通過snoop命令進行ntp的檢測。
Snoop |grep –i ntp進行檢測。
在建立好ntp服務(wù)以后,可以用2個工具命令對ntp服務(wù)進行管理。
linux 查看機器時間的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux 查看機器時間,Linux命令:查看機器時間,linux系統(tǒng)上驗證系統(tǒng)時間和ntp server的時間是否一致。的信息別忘了在本站進行查找喔。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計,高端小程序APP定制開發(fā),成都網(wǎng)絡(luò)營銷推廣等一站式服務(wù)。
標(biāo)題名稱:Linux命令:查看機器時間(linux查看機器時間)
轉(zhuǎn)載來于:http://m.5511xx.com/article/coshdig.html


咨詢
建站咨詢
