Ⅰ 怎樣開啟linux系統下的ntp同步請求
Linux 系統安裝配置NTP時間伺服器
NTP(The Network Time Protocol) 是網路時間協議,用以同步網路內計算機的時間。
它通過udp包交換,用特定演算法進行協商,從而把計算機上的時間與時間伺服器上的
時間保持一致。通過互聯網它支持的誤差是10毫秒,區域網則可以達到200微秒。
NTP時間伺服器分為多層,從0層到4層,每層依次與上一次伺服器同步,最高層的伺服器
則直接連接一個高精度的時鍾設備,比如原子鍾、GPS或者電波時等。
自己搭建時間伺服器需要指定一個上層的時間伺服器,然後它可以向區域網內的其它機器
提供同步服務。
詳細信息可以見:
http://en.wikipedia.org/wiki/Network_Time_Protocol
安裝NTP Server
Linux系統內核提供了對NTP的支持,因此只需要再安裝一個NTP Server的守護進程即可。
常用的ntpd由ntp.org提供。
下載安裝ntpd的穩定版本。目前是ntp-4.2.6p3.
http://www.ntp.org/downloads.html
示範腳本::
wget http://www.eecis.udel.e/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p3.tar.gz
tar zxf ntp-4.2.6p3.tar.gz
mkdir /app/ntp
cd ntp-4.2.6p3
./configure --prefix=/app/ntp --enable-all-clocks --enable-parse-clocks
make clean && make check && make && make intall
注意:/app/ntp為ntpd的安裝後文件路徑
配置
1. 配置文件位置為::
/etc/ntp.conf
2. 修改配置允許區域網內機器與該伺服器進行時間同步。
將下面語句::
restrict default kod nomodify notrap nopeer noquery
修改為::
restrict default nomodify
3. 修改上一層的時間伺服器。
ntp.org現在提供NTP POOL PROJECT,即ntp 伺服器池項目。在中國區域,配置如下即可::
server 0.cn.pool.ntp.org
server 0.asia.pool.ntp.org
server 2.asia.pool.ntp.org
其中0.cn 是中國伺服器池,後面兩個是亞洲的伺服器池。
最新列表見:
http://www.pool.ntp.org/zone/cn
啟動 NTP 伺服器
進入ntpd安裝後的路徑,如/app/ntd, 啟動參數如下::
./ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid -l /app/ntp/log/ntp.log
注意啟動後需要等幾分鍾,否則其它機器來同步時會得到
no server suitable for synchronization found
的錯誤。
Linux客戶端機器配置
客戶端機器使用ntpdate 程序來執行同步。 格式如下::
ntpdate ntp-server-ip
如果需要配置計劃任務,命令如下::
# 查看是否已經添加時間同步的計劃任務
cat /etc/crontab
# 如果沒有則添加下列行,每30分鍾同步一次:
echo '*/30 * * * * root /usr/sbin/ntpdate 10.20.219.43' >> /etc/crontab
# 將計劃任務設為自動,默認是啟動的【可選】
chkconfig crond on
# 啟動計劃任務服務
service crond restart
# 有些機器需要設置時區為中國
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Ⅱ linux中 ntpstat和ntpq-p有什麼差別
NTP伺服器【Network Time Protocol(NTP)】是用來使計算機時間同步化的一種協議,它可以使計算機對其伺服器或時鍾源(如石英鍾,GPS等等)做同步化,它可以提供高精準度的時間校正(LAN上與標准間差小於1毫秒,WAN上幾十毫秒),且可介由加密確認的方式來防止惡毒的協議攻擊。下面介紹下查看ntpserver狀態的兩條命令及其差別。
1.ntpstat
ntpstat 命令查看時間同步狀態,這個一般需要5-10分鍾後才能成功連接和同步。所以,伺服器啟動後需要稍等下。
剛啟動的時候,一般是:
# ntpstat
unsynchronised
time server re-starting
polling server every 64 s
連接並同步後:
synchronised to NTP server (202.120.2.101) at stratum 4
time correct to within 1192 ms
polling server every 64 s
2.ntpq -p
[root@localhost ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
=======================================================
dns1.synet.e. .INIT. 16 u - 1024 0 0.000 0.000 0.000
*time.ume.tubita .PPS. 1 u 107 128 377 397.503 -24.042 0.538
-211.233.84.186 204.123.2.5 2 u 100 128 377 124.228 24.973 0.524
+dns.sjtu.e.cn 79.213.241.147 3 u 94 128 377 20.878 3.339 0.512
+Hshh.org 216.218.192.202 2 u 45 128 377 31.205 10.731 1.278
dns2.synet.e. .INIT. 16 u - 1024 0 0.000 0.000 0.000
說明:
*表示目前使用的ntp server,這里選擇的本機;
st:即stratum階層,值越小表示ntp serve的精準度越高;
when:幾秒前曾做過時間同步更新的操作;
Poll表示,每隔多少毫秒與ntp server同步一次;
reach:已經向上層NTP伺服器要求更新的次數;
delay:網路傳輸過程鍾延遲的時間;
offset:時間補償的結果;
jitter:Linux系統時間與BIOS硬體時間的差異時間
注意:NTP服務端重啟後,客戶機要等5分鍾再與其進行時間同步,否則會提示「no server suitable for synchronization found」錯誤。等待的時間可以通過命令 watch ntpq -p來監控。
Ⅲ ntpq-p顯示x
ntpq-p命令列出了所有作為時鍾源校正過本地NTP伺服器時鍾上層NTP伺服器的列表,每一列的含義分別如下:
remote:響應請求的NTP伺服器的名稱(IP地址或域名),帶「*」的表示本地NTP伺服器與該伺服器同步
refid:遠程NTP伺服器使用的上一級ntp伺服器的IP地址
st:遠程NTP伺服器的級別,由於NTP是層級結構,有頂端的伺服器,多層的RelayServer再到客戶端。所以伺服器從高到低,級別可以設定為1~16級。為了減緩負荷和網路堵塞,原則上應該避免直接連接到級別為1的伺服器。
t:本地NTP伺服器與遠程NTP伺服器的通信方式。u:單播;b:廣播;I:本地when:上次成功請求後到現在的秒數poll:本地NTP伺服器與遠程NTP伺服器同步的時間間隔。
reach:這是一個八進制的值,用來測試衡量前八次查詢是否成功和伺服器連接。377表示都成功,0表示不成功delay:網路延時,單位為微秒(μs)
offset:本地NTP伺服器與遠程NTP伺服器的時間偏移,單位為毫秒(ms)。offset越接近於0,主機與NTP伺服器的時間越接近jitter:查詢偏差的分布值,用於表示遠程NTP的網路延時是否穩定,單位為微秒(μs)。
Ⅳ linux配置多台伺服器時間同步.
一、設置A伺服器為時間伺服器(加入A伺服器IP為172.18.102.2)
1 修改 /etc/ntp.conf,如下所示:
命令:vi /etc/ntp.conf
內容:
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
server 127.127.1.0 # local clock
#fudge 127.127.1.0 stratum 10
2 啟動時間伺服器,命令如下:
service ntpd status
service ntpd start
3 查看啟動結果,如下所示:
命令:ntpq -p
結果:
remote refid st t when poll reach delay offset jitter
==============================================================================
*LOCAL(0) .LOCL. 5 l 2 64 377 0.000 0.000 0.000
4 設置自啟動,命令如下:
chkconfig ntpd on
二、設置需要同步的伺服器
1 修改 /etc/ntp.conf,如下:
命令:vi /etc/ntp.conf
內容:
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
server 172.18.102.2 # local clock 與伺服器A機時間同步
fudge 172.18.102.2 stratum 10
2 啟動時間伺服器,命令如下:
service ntpd status
service ntpd start
3 查看啟動結果,如下所示:
命令:ntpq -p
結果:
remote refid st t when poll reach delay offset jitter
==========================《Linux就該這么學》一起學習linux
172.18.102.2 LOCAL(0) 6 u 5 64 1 1.377 -7077.8 0.000
4 設置自啟動,命令如下:
chkconfig ntpd on
5 立即同步
ntpdate -d 172.18.102.2
Ⅳ linux系統上驗證系統時間和ntp server的時間是否一致。
GMT/UTC/CST;/etc/localtime,/usr/share/zoneinfo/*時區文件,/etc/profile加TZ變數;硬體時間RTC,系統時間;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;設置NTP伺服器不難但是NTP本身是一個很復雜的協議.
1. 時間和時區
如果有人問你說現在幾點? 你看了看錶回答他說晚上8點了. 這樣回答看上去沒有什麼問題,但是如果問你的這個人在歐洲的話那麼你的回答就會讓他很疑惑,因為他那裡還太陽當空呢.
這里就有產生了一個如何定義時間的問題. 因為在地球環繞太陽旋轉的24個小時中,世界各地日出日落的時間是不一樣的.所以我們才有劃分時區(timezone) 的必要,也就是把全球劃分成24個不同的時區. 所以我們可以把時間的定義理解為一個時間的值加上所在地的時區(注意這個所在地可以精確到城市)
地理課上我們都學過格林威治時間(GMT), 它也就是0時區時間. 但是我們在計算機中經常看到的是UTC. 它是Coordinated Universal Time的簡寫. 雖然可以認為UTC和GMT的值相等(誤差相當之小),但是UTC已經被認定為是國際標准,所以我們都應該遵守標准只使用UTC
那麼假如現在中國當地的時間是晚上8點的話,我們可以有下面兩種表示方式
20:00 CST
12:00 UTC
這里的CST是Chinese Standard Time,也就是我們通常所說的北京時間了. 因為中國處在UTC+8時區,依次類推那麼也就是12:00 UTC了.
為什麼要說這些呢?
第一,不管通過任何渠道我們想要同步系統的時間,通常提供方只會給出UTC+0的時間值而不會提供時區(因為它不知道你在哪裡).所以當我們設置系統時間的時候,設置好時區是首先要做的工作
第二,很多國家都有夏令時(我記得小時候中國也實行過一次),那就是在一年當中的某一天時鍾撥快一小時(比如從UTC+8一下變成UTC+9了),那麼同理到時候還要再撥慢回來.如果我們設置了正確的時區,當需要改變時間的時候系統就會自動替我們調整
現在我們就來看一下如何在Linux下設置時區,也就是time zone
2. 如何設置Linux Time Zone
在Linux下glibc提供了事先編譯好的許多timezone文件, 他們就放在/usr/share/zoneinfo這個目錄下,這里基本涵蓋了大部分的國家和城市 # ls -F /usr/share/zoneinfo/
Africa/ Chile/ Factory Iceland Mexico/ posix/ Universal
America/ CST6CDT GB Indian/ Mideast/ posixrules US/
Antarctica/ Cuba GB-Eire Iran MST PRC UTC
Arctic/ EET GMT iso3166.tab MST7MDT PST8PDT WET
Asia/ Egypt GMT0 Israel Navajo right/ W-SU
Atlantic/ Eire GMT-0 Jamaica NZ ROC zone.tab
Australia/ EST GMT+0 Japan NZ-CHAT ROK Zulu
Brazil/ EST5EDT Greenwich Kwajalein Pacific/ Singapore
Canada/ Etc/ Hongkong Libya Poland Turkey
CET Europe/ HST MET Portugal UCT 在這裡面我們就可以找到自己所在城市的time zone文件. 那麼如果我們想查看對於每個time zone當前的時間我們可以用zmp命令 # zmp Hongkong
Hongkong Fri Jul 6 06:13:57 2007 HKT 那麼我們又怎麼來告訴系統我們所在time zone是哪個呢? 方法有很多,這里舉出兩種
第一個就是修改/etc/localtime這個文件,這個文件定義了我么所在的local time zone.
我們可以在/usr/share/zoneinfo下找到我們的time zone文件然後拷貝去到/etc/localtimezone(或者做個symbolic link)
假設我們現在的time zone是BST(也就是英國的夏令時間,UTC+1) # date
Thu Jul 5 23:33:40 BST 2007我們想把time zone換成上海所在的時區就可以這么做# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# date
Fri Jul 6 06:35:52 CST 2007這樣時區就改過來了(注意時間也做了相應的調整)
第二種方法也就設置TZ環境變數的值. 許多程序和命令都會用到這個變數的值. TZ的值可以有多種格式,最簡單的設置方法就是使用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. 也就是說當TZ變數沒有定義的時候系統才使用/etc/localtime來確定time zone. 所以你想永久修改time zone的話那麼可以把TZ變數的設置寫入/etc/profile里 3. Real Time Clock(RTC) and System Clock
說道設置時間這里還要明確另外一個概念就是在一台計算機上我們有兩個時鍾:一個稱之為硬體時間時鍾(RTC),還有一個稱之為系統時鍾(System Clock)
硬體時鍾是指嵌在主板上的特殊的電路, 它的存在就是平時我們關機之後還可以計算時間的原因
系統時鍾就是操作系統的kernel所用來計算時間的時鍾. 它從1970年1月1日00:00:00 UTC時間到目前為止秒數總和的值 在Linux下系統時間在開機的時候會和硬體時間同步(synchronization),之後也就各自獨立運行了
那麼既然兩個時鍾獨自運行,那麼時間久了必然就會產生誤差了,下面我們來看一個例子# date
Fri Jul 6 00:27:13 BST 2007 [root@rhe5 /]# hwclock --help
hwclock - query and set the hardware clock (RTC) Usage: hwclock [function] [options...]Functions:
--help show this help
--show read hardware clock and print result
--set set 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:
--utc the 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
--date specifies 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 2007 12:27:17 AM BST -0.968931 seconds通過hwclock --show命令我們可以查看機器上的硬體時間(always in local time zone), 我們可以看到它和系統時間還是有一定的誤差的, 那麼我們就需要把他們同步
# hwclock –hctosys 把硬體時間設置成系統時間 # hwclock –systohc 把系統時間設置成硬體時間# hwclock --set --date="mm/dd/yy hh:mm:ss" 設置硬體時間我們可以開機的時候在BIOS里設定.也可以用hwclock命令# date -s "dd/mm/yyyy hh:mm:ss" 修改系統時間用date命令就最簡單了現在我們知道了如何設置系統和硬體的時間. 但問題是如果這兩個時間都不準確了怎麼辦? 那麼我們就需要在互聯網上找到一個可以提供我們准確時間的伺服器然後通過一種協議來同步我們的系統時間,那麼這個協議就是NTP了. 接下去我們所要說的同步就都是指系統時間和網路伺服器之間的同步了 4. 設置NTP Server前的准備
其實這個標題應該改為設置"NTP Relay Server"前的准備更加合適. 因為不論我們的計算機配置多好運行時間久了都會產生誤差,所以不足以給互聯網上的其他伺服器做NTP Server. 真正能夠精確地測算時間的還是原子鍾. 但由於原子鍾十分的昂貴,只有少部分組織擁有, 他們連接到計算機之後就成了一台真正的NTP Server. 而我們所要做的就是連接到這些伺服器上同步我們系統的時間,然後把我們自己的伺服器做成NTP Relay Server再給互聯網或者是區域網內的用戶提供同步服務. 1). 架設一個NTP Relay Server其實非常簡單,我們先把需要的RPM包裝上 # rpm -ivh ntp-4.2.2p1-5.el5.rpm2).找到在互聯網上給我們提供同步服務的NTP Server ,http://www.pool.ntp.org是NTP的官方網站,在這上面我們可以找到離我們城市最近的NTP Server. NTP建議我們為了保障時間的准確性,最少找兩個個NTP Server
那麼比如在英國的話就可以選擇下面兩個伺服器
0.uk.pool.ntp.org
1.uk.pool.ntp.org
它的一般格式都是number.country.pool.ntp.org中國的ntp伺服器地址: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 (國家授時中心伺服器IP地址)3).在打開NTP伺服器之前先和這些伺服器做一個同步,使得我們機器的時間盡量接近標准時間. 這里我們可以用ntpdate命令 # ntpdate 0.uk.pool.ntp.org
6 Jul 01:21:49 ntpdate[4528]: step time server 213.222.193.35 offset -38908.575181 sec
# ntpdate 0.pool.ntp.org
6 Jul 01:21:56 ntpdate[4530]: adjust time server 213.222.193.35 offset -0.000065 sec 假如你的時間差的很離譜的話第一次會看到調整的幅度比較大,所以保險起見可以運行兩次. 那麼為什麼在打開NTP服務之前先要手動運行同步呢?
1. 因為根據NTP的設置,如果你的系統時間比正確時間要快的話那麼NTP是不會幫你調整的,所以要麼你把時間設置回去,要麼先做一個手動同步
2. 當你的時間設置和NTP伺服器的時間相差很大的時候,NTP會花上較長一段時間進行調整.所以手動同步可以減少這段時間5. 配置和運行NTP Server
現在我們就來創建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,並且設置其在開機後自動運行# /etc/init.d/ntpd start
# chkconfig --level 35 ntpd on6. 查看NTP服務的運行狀況
現在我們已經啟動了NTP的服務,但是我們的系統時間到底和伺服器同步了沒有呢? 為此NTP提供了一個很好的查看工具: ntpq (NTP query)
我建議大家在打開NTP伺服器後就可以運行ntpq命令來監測伺服器的運行.這里我們可以使用watch命令來查看一段時間內伺服器各項數值的變化 # watch ntpq -p
Every 2.0s: ntpq -p Sat Jul 7 00:41:45 2007
remote refid st t when poll reach delay offset jitter
==============================================================================
+193.60.199.75 193.62.22.98 2 u 52 64 377 8.578 10.203 289.032
*mozart.musicbox 192.5.41.41 2 u 54 64 377 19.301 -60.218 292.411 現在我就來解釋一下其中的含義
remote: 它指的就是本地機器所連接的遠程NTP伺服器
refid: 它指的是給遠程伺服器(e.g. 193.60.199.75)提供時間同步的伺服器
st: 遠程伺服器的級別. 由於NTP是層型結構,有頂端的伺服器,多層的Relay Server再到客戶端. 所以伺服器從高到低級別可以設定為1-16. 為了減緩負荷和網路堵塞,原則上應該避免直接連接到級別為1的伺服器的.
t: 這個.....我也不知道啥意思^_^
when: 我個人把它理解為一個計時器用來告訴我們還有多久本地機器就需要和遠程伺服器進行一次時間同步
poll: 本地機和遠程伺服器多少時間進行一次同步(單位為秒). 在一開始運行NTP的時候這個poll值會比較小,那樣和伺服器同步的頻率也就增加了,可以盡快調整到正確的時間范圍.之後poll值會逐漸增大,同步的頻率也就會相應減小
reach: 這是一個八進制值,用來測試能否和伺服器連接.每成功連接一次它的值就會增加
delay: 從本地機發送同步要求到伺服器的round trip time
offset: 這是個最關鍵的值, 它告訴了我們本地機和伺服器之間的時間差別. offset越接近於0,我們就和伺服器的時間越接近
jitter: 這是一個用來做統計的值. 它統計了在特定個連續的連接數里offset的分布情況. 簡單地說這個數值的絕對值越小我們和伺服器的時間就越精確
那麼大家細心的話就會發現兩個問題: 第一我們連接的是0.uk.pool.ntp.org為什麼和remote server不一樣? 第二那個最前面的+和*都是什麼意思呢?
第一個問題不難理解,因為NTP提供給我們的是一個cluster server所以每次連接的得到的伺服器都有可能是不一樣.同樣這也告訴我們了在指定NTP Server的時候應該使用hostname而不是IP
第二個問題和第一個相關,既然有這么多的伺服器就是為了在發生問題的時候其他的伺服器還可以正常地給我們提供服務.那麼如何知道這些伺服器的狀態呢? 這就是第一個記號會告訴我們的信息
*
它告訴我們遠端的伺服器已經被確認為我們的主NTP Server,我們系統的時間將由這台機器所提供
+
它將作為輔助的NTP Server和帶有*號的伺服器一起為我們提供同步服務. 當*號伺服器不可用時它就可以接管
-
遠程伺服器被clustering algorithm認為是不合格的NTP Server
x
遠程伺服器不可用
了解這些之後我們就可以實時監測我們系統的時間同步狀況了7. NTP安全設置
運行一個NTP Server不需要佔用很多的系統資源,所以也不用專門配置獨立的伺服器,就可以給許多client提供時間同步服務, 但是一些基本的安全設置還是很有必要的
那麼這里一個很簡單的思路就是第一我們只允許區域網內一部分的用戶連接到我們的伺服器. 第二個就是這些client不能修改我們伺服器上的時間
在/etc/ntp.conf文件中我們可以用restrict關鍵字來配置上面的要求
首先我們對於默認的client拒絕所有的操作 restrict default kod nomodify notrap nopeer noquery
然後允許本機地址一切的操作restrict 127.0.0.1
最後我們允許區域網內所有client連接到這台伺服器同步時間.但是拒絕讓他們修改伺服器上的時間restrict 192.168.1.0 mask 255.255.255.0 nomodify
把這三條加入到/etc/ntp.conf中就完成了我們的簡單配置. NTP還可以用key來做authenticaiton,這里就不詳細介紹了8. NTP client的設置
做到這里我們已經有了一台自己的Relay Server.如果我們想讓區域網內的其他client都進行時間同步的話那麼我們就都應該照樣再搭建一台Relay Server,然後把所有的client都指向這兩台伺服器(注意不要把所有的client都指向Internet上的伺服器). 只要在client的ntp.conf加上這你自己的伺服器就可以了 代碼:
server ntp1.leonard.com
server ntp2.leonard.com
9. 一些補充和拾遺
1. 配置文件中的driftfile是什麼?
我們每一個system clock的頻率都有小小的誤差,這個就是為什麼機器運行一段時間後會不精確. NTP會自動來監測我們時鍾的誤差值並予以調整.但問題是這是一個冗長的過程,所以它會把記錄下來的誤差先寫入driftfile.這樣即使你重新開機以後之前的計算結果也就不會丟失了
2. 如何同步硬體時鍾?
NTP一般只會同步system clock. 但是如果我們也要同步RTC的話那麼只需要把下面的選項打開就可以了 可以通過ps –ef |grep ntp或者使用pgrep –lf ntp查看一下你的ntp服務是否啟動了。然後可以通過snoop命令進行ntp的檢測。
Snoop |grep –i ntp進行檢測。
在建立好ntp服務以後,可以用2個工具命令對ntp服務進行管理。
一個是ntpq是一個互動式應用命令,在它的下面有很多的子命令可以供大家使用.使用peers可以查看同步進程。如果還需要其他的命令可以輸入help 進行查看。還有一個工具命令是ntpdate這個命令一般用於ntp的客戶端使用。可以在/var/adm/messages中看到ntp的同步信息的情況。如果需要更加詳細的ntpq和ntpdate的信息可以使用man幫助進行查詢。
Ⅵ 如何用linux一台伺服器時間去同步其他伺服器的時間
至少需要兩台linux伺服器,其中一台是NTP Server, 另一台是NTP client.
Linux NTP配置詳解 (Network Time Protocol)
LINUX絕大多數的發行版本都已經自帶了NTP程序,只須按以下配置即可。
相關配置文件
/etc/ntp.conf
NTP服務的主要配置文件,所有的更改全部在這里。
/usr/share/zoneinfo
由 tzdata 所提供,規定了各主要時區的時間設定文件,例如中國的時區設置文件是/usr/share/zoneinfo/Asia/Chongqing。
/etc/sysconfig/clock
Linux的主要時區設定文件。每次啟動後Linux操作系統會自動讀取這個文件來設定系統預設要顯示的時間。如這個文件內容為」ZONE=Asia/Chongqing」,則表示Linux操作系統的時間設定使用/usr/share/zoneinfo/Asia/Chongqing這個文件。
/etc/localtime
本地系統的時間設定文件,如果clock文件中規定了使用的時間設定文件為/usr/share/zoneinfo/Asia/Chongqing,Linux操作系統就會將Chongqing那個文件復制一份為/etc/localtime,所以系統的時間顯示就會以Chongqing那個時間設定文件為准。
相關的命令
/bin/date
這個我們最經常使用了,更改及輸出日期與時間命令。
/sbin/hwclock
使用hwclock才能將修改過後的時間寫入BIOS 。
/usr/sbin/ntpd
NTP服務的守護進程,配置文件為/etc/ntp.conf 。
/usr/sbin/ntpdate
用來連接NTP伺服器命令,比如ntpdate 192.168.6.51 。
/usr/sbin/ntpq
NTP查詢命令。
設置NTP伺服器
就如前邊說的NTP配置文檔只有一個 /etc/ntp.conf,看看我的ntp.conf
#紅字的是我添加的,其它為默認!
grep -Ev '^$|^#' /etc/ntp.conf
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 131.107.13.100 //允許該NTP伺服器進入
restrict 114.80.81.1 //沒有任何何參數的話,這表示『該 IP或網段不受任何限制』
restrict 202.118.1.199
restrict 127.0.0.1
restrict -6 ::1
restrict 192.168.0.0 mask 255.255.0.0 nomodify //該網段可以進行校時
restrict 0.0.0.0 mask 0.0.0.0 notrust //拒絕沒有認證的用戶端
server time-nw.nist.gov prefer //prefer 該伺服器優先
server 0.rhel.pool.ntp.org
server 1.rhel.pool.ntp.org
server 2.rhel.pool.ntp.org
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
別忘了啟動NTP伺服器
/etc/init.d/ntp start
客戶端測試
對了客戶端只需要是用ntpdate命令即可,192.168.6.51 為ntp 伺服器ip 地址,就這么就簡單!
相關命令
ntpstat //列出我們的NTP 伺服器是否與上層連接。
synchronised to NTP server (131.107.13.100) at stratum 2
time correct to within 461 ms
polling server every 64 s
ntpq -p //列出目前我們的NTP伺服器 與上層NTP伺服器 的狀態,* 代表目前正在使用的上層 NTP伺服器
remote refid st t when poll reach delay offset jitter
==============================================================================
*131.107.13.100 .ACTS. 1 u 30 64 67 237.165 1.539 20.382
202.118.1.199 202.112.31.197 2 u 33 64 63 163.526 91.844 10.208
上邊只是簡單設置,沒有考慮安全方面如認證等等,如需更詳細請參考這里。
許可權管理使用 restrict 公式如下:
restrict IP mask [參數] / restrict 192.168.0.0 mask 255.255.0.0 nomodify
其中參數主要有底下這些:
* ignore:拒絕所有類型的NTP的連線;
* nomodfiy:用戶端不能使用NTPC與ntpq這兩支程式來修改伺服器的時間參數,但使用者端仍可透過這部主機來進行網路校時的;
* noquery:用戶端不能夠使用ntpq,NTPC等指令來查詢發表伺服器,等於不提供的NTP的網路校時冪;
* notrap:不提供陷阱這個遠端事件郵箱(遠程事件日誌)的功能。
* notrust:拒絕沒有認證的用戶端。
Ⅶ 如何查看ntp服務是否開啟
1、首先在電腦上打開linux系統。再cd和su命令進入root用戶。
Ⅷ 各位是否知道ntpd服務默認向上級請求時間是多長嗎
想查看時間同步信息使用ntpq -p ...ntpq 命令開啟NTP查詢程序,你man一下ntpq就知道了其作用, ntpq -p,-p參數顯示所有已知的連接到NTP伺服器的客戶機信息
Ⅸ 關於HP-UNIX下使用ntpq -p 的問題
ntpq 命令開啟NTP查詢程序,你man一下ntpq就知道了其作用,
ntpq -p,-p參數顯示所有已知的連接到NTP伺服器的客戶機信息列表以及他們的狀態匯總,你這個結果顯然是目前沒有連接到NTP伺服器的客戶端。
自己多看看文檔有幫助的
文檔部分原文:
Purpose
Starts the standard Network Time Protocol (NTP) query program. This command only
applies to AIX 4.2 or later.
-p Displays a list of the peers known to the server and a summary of their
state. Same as using the peers subcommand.
xntpd是一個關於網路時間協議的守護進程,它遵循了網際網路時間伺服器的通用標准。在啟動 xntpd 時, xntpd 會讀取 /etc/ntp.conf 配置文件來確定網路中系統時鍾伺服器,以 ntp 伺服器的系統時間為標准,來調整本機的系統時間。
可以用 ntpq 命令來顯示 xntpd 進程的內部變數。使用 ntp 時應注意,xntpd 伺服器和 xntpd 客戶端的時鍾不能相差超過1000秒。若有大於1000秒的偏移,在客戶端啟動 xntpd 守護進程前,用 data 命令或 ntpdate 命令調整本機的系統時間,使偏移量在1000秒之內。 然後啟動 xntpd.
1. 構造一個NTP環境的基本步驟(假設NTP不是運行在SP上):
1.1 設置NTP 伺服器 (MASTER) , 其它NTP客戶伺服器以此伺服器的時間為准,與其進行時間同步.
1.1.1 編輯 /etc/ntp.conf 文件, 內容如下:
----------------------------
#broadcastclient
server 127.127.1.0
driftfile /etc/ntp.drift
tracefile /etc/ntp.trace
----------------------------
請注意文件中的 server 127.127.1.0 這一行, 此處的127.127.1.0 是一特殊的地址,表示NTP主伺服器是與自身的系統時鍾同步.
1.1.2 編輯好 /etc/ntp.conf後, 啟動xntpd守護進程
# startsrc -s xntpd
也可通過調用smitty , 使 xntpd 在以後重啟伺服器時能自動啟動.
# smitty xntpd
1.1.3 xntpd 狀態查詢 , 使用 #lssrc -ls xntpd
剛啟動xntpd時, sys peer 為 'insane', 表明xntpd還沒有完成同步, .
#lssrc -ls xntpd
Program name: --/usr/sbin/xntpd
Version: -------3
Leap indicator: 11 (Leap indicator is insane.)
Sys peer: ------no peer, system is insane
...
等待 6 - 10 分鍾後, sys peer 就不再是 'insane' 了.
#lssrc -ls xntpd
Program name: --/usr/sbin/xntpd
Version: -------3
Leap indicator: 00 (No leap second today.)
Sys peer: ------127.127.1.0
...
1.2. NTP客戶端的設置
1.2.1 編輯 NTP 客戶端上的 /etc/ntp.conf文件, 內容如下:
----------------------------
#broadcastclient
server 9.185.43.189
driftfile /etc/ntp.drift
tracefile /etc/ntp.trace
----------------------------
其中的 server 9.185.43.189 表明, 此客戶端與IP地址為 9.185.43.189 的NTP伺服器進行時間同步.
1.2.2 在NTP客戶端啟動xntpd守護進程
# startsrc -s xntpd
也可通過調用smitty , 使 xntpd 在以後重啟伺服器時能自動啟動.
# smitty xntpd
1.2.3 查詢xntpd的狀態
當 system peer 不為 'insane' 時, 表明客戶端已與伺服器端成功地進行了同步.
# lssrc -ls xntpd
Program name: --/usr/sbin/xntpd
Version: -------3
Leap indicator: 00 (No leap second today.)
Sys peer: ------9.185.43.189
...
Ⅹ ntpq -p poll變化
ntpq -p poll變化是指:本地NTP伺服器與遠程NTP伺服器同步的時間間隔。
(10)ntpq命令詳細解析擴展閱讀:
ntpq -p命令列出了所有作為時鍾源校正過本地NTP伺服器時鍾上層NTP伺服器的列表,每一列的含義分別如下:remote:響應請求的NTP伺服器的名稱(IP地址或域名),帶「*」的表示本地NTP伺服器與該伺服器同步,refid:遠程NTP伺服器使用的上一級ntp伺服器的IP地址,st:遠程NTP伺服器的級別,由於NTP是層級結構,有頂端的伺服器,多層的Relay Server再到客戶端。所以伺服器從高到低,級別可以設定為1~16級。為了減緩負荷和網路堵塞,原則上應該避免直接連接到級別為1的伺服器。t:本地NTP伺服器與遠程NTP伺服器的通信方式。u:單播;b:廣播;I:本地,when:上次成功請求後到現在的秒數。reach:這是一個八進制的值,用來測試衡量前八次查詢是否成功和伺服器連接。377表示都成功,0表示不成功。delay:網路延時,單位為微秒(μs)。offset:本地NTP伺服器與遠程NTP伺服器的時間偏移,單位為毫秒(ms)。offset越接近於0,主機與NTP伺服器的時間越接近。jitter:查詢偏差的分布值,用於表示遠程NTP的網路延時是否穩定,單位為微秒(μs)。