青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Error

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks

date顯示時間
tsselect設(shè)置時區(qū)



本文是基本是[Linux的時間設(shè)置與同步(NTP)]的原文,只在一些地方更新和完善了一下。

  一、時間和時區(qū)

  如果有人問你說現(xiàn)在幾點(diǎn)? 你看了看表回答他說晚上8點(diǎn)了. 這樣回答看上去沒有什么問題,但是如果問你的這個人在歐洲的話那么你的回答就會讓他很疑惑,因?yàn)樗抢镞€太陽當(dāng)空呢.

  這里就有產(chǎn)生了一個如何定義時間的問題. 因?yàn)樵诘厍颦h(huán)繞太陽旋轉(zhuǎn)的24個小時中,世界各地日出日落的時間是不一樣的.所以我們才有劃分時區(qū)(timezone) 的必要,也就是把全球劃分成24個不同的時區(qū). 所以我們可以把時間的定義理解為一個時間的值加上所在地的時區(qū)(注意這個所在地可以精確到城市)

  地理課上我們都學(xué)過格林威治時間(GMT), 它也就是0時區(qū)時間. 但是我們在計算機(jī)中經(jīng)常看到的是UTC. 它是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點(diǎn)的話,我們可以有下面兩種表示方式

  20:00 CST
  12:00 UTC

  這里的CST是Chinese Standard Time,也就是我們通常所說的北京時間了. 因?yàn)橹袊幵赨TC+8時區(qū),依次類推那么也就是12:00 UTC了.

  第一,不管通過任何渠道我們想要同步系統(tǒng)的時間,通常提供方只會給出UTC+0的時間值而不會提供時區(qū)(因?yàn)樗恢滥阍谀睦?.所以當(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

  二、如何設(shè)置Linux Time Zone

  在Linux下glibc提供了我們事先編譯好的許多timezone文件, 他們就放在/usr/share/zoneinfo這個目錄下,這里基本涵蓋了大部分的國家和城市

?View Code BASH
1 2 3 4 5 6 7 
  # ls -F /usr/share/zoneinfo/   Africa/      Asia/       Canada/  Cuba   EST      Factory  GMT0       Hongkong  Iran         Japan      Mexico/   Navajo    Poland      PRC      ROK        Universal  W-SU America/     Atlantic/   CET      EET    EST5EDT  GB       GMT-0      HST       iso3166.tab  Kwajalein  Mideast/  NZ        Portugal    PST8PDT  Singapore  US/        zone.tab Antarctica/  Australia/  Chile/   Egypt  Etc/     GB-Eire  GMT+0      Iceland   Israel       Libya      MST       NZ-CHAT   posix/      right/   Turkey     UTC        Zulu Arctic/      Brazil/     CST6CDT  Eire   Europe/  GMT      Greenwich  Indian/   Jamaica      MET        MST7MDT   Pacific/  posixrules  ROC      UCT        WET

  在這里面我們就可以找到自己所在城市的time zone文件. 那么如果我們想查看對于每個time zone當(dāng)前的時間我們可以用zdump命令

?View Code BASH
1 2 3 
# zdump  /usr/share/zoneinfo/Asia/Chongqing    # /usr/share/zoneinfo/Asia/Chongqing  Fri May 27 10:35:24 2011 CST

  那么我們又怎么來告訴系統(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)

?View Code BASH
1 2 
# date 2011年 05月 27日 星期五 10:52:05 CST

  我們想把time zone換成重慶所在的時區(qū)就可以這么做

?View Code BASH
1 2 3 4 
# ln -sf /usr/share/zoneinfo/posix/Asia/Chongqing  /etc/localtime    # date 2011年 05月 27日 星期五 10:39:18 CST

  這樣時區(qū)就改過來了(注意時間也做了相應(yīng)的調(diào)整)

  第二種方法也就設(shè)置TZ環(huán)境變量的值. 許多程序和命令都會用到這個變量的值. TZ的值可以有多種格式,最簡單的設(shè)置方法就是使用tzselect命令

?View Code BASH
1 2 3 4 
# tzselect  ...   TZ='Asia/Chongqing'; export TZ

  tzselect是一個交互式腳本,會讓你選擇所在的國家和城市(這里省略了這些步驟),最后輸出相應(yīng)的TZ變量的值.那么如果你設(shè)置了TZ的值之后時區(qū)就又會發(fā)生變化

  注:交互選擇這個過程,其實(shí)就是為了確定TZ變量的值,如果你知道正確的值,可以設(shè)定就可以了。

?View Code BASH
1 2 
# date 2011年 05月 27日 星期五 10:52:05 CST

  通過這兩個例子我們也可以發(fā)現(xiàn)TZ變量的值會優(yōu)先于/etc/localtime. 也就是說當(dāng)TZ變量沒有定義的時候系統(tǒng)才使用/etc/localtime來確定time zone. 所以你想永久修改time zone的話那么可以把TZ變量的設(shè)置寫入/etc/profile里

  好了現(xiàn)在我們知道怎么設(shè)置時區(qū)了,下面我們就來看看如何設(shè)置Linux的時間吧

  三、Real Time Clock(RTC) and System Clock

  說道設(shè)置時間這里還要明確另外一個概念就是在一臺計算機(jī)上我們有兩個時鐘:一個稱之為硬件時間時鐘(RTC),還有一個稱之為系統(tǒng)時鐘(System Clock)

  硬件時鐘是指嵌在主板上的特殊的電路, 它的存在就是平時我們關(guān)機(jī)之后還可以計算時間的原因

  系統(tǒng)時鐘就是操作系統(tǒng)的kernel所用來計算時間的時鐘. 它從1970年1月1日00:00:00 UTC時間到目前為止秒數(shù)總和的值 在Linux下系統(tǒng)時間在開機(jī)的時候會和硬件時間同步(synchronization),之后也就各自獨(dú)立運(yùn)行了

  那么既然兩個時鐘獨(dú)自運(yùn)行,那么時間久了必然就會產(chǎn)生誤差了,下面我們來看一個例子

?View Code BASH
1 2 3 4 5 
# date 2011年 05月 27日 星期五 10:59:27 CST   # hwclock --show 2011年05月27日 星期五 11時02分29秒  -0.863266 seconds

  通過hwclock –show或hwclock -r命令我們可以查看機(jī)器上的硬件時間(always in local time zone), 我們可以看到它和系統(tǒng)時間還是有一定的誤差的, 那么我們就需要把他們同步

  如果我們想要把硬件時間設(shè)置成系統(tǒng)時間我們可以運(yùn)行以下命令

?View Code BASH
1 2 3 
# hwclock --hctosys 或者 # hwclock -s

  反之,我們也可以把系統(tǒng)時間設(shè)置成硬件時間

?View Code BASH
1 2 3 
# hwclock --systohc 或者 # hwclock -w

  那么如果想設(shè)置硬件時間我們可以開機(jī)的時候在BIOS里設(shè)定.也可以用hwclock命令

?View Code BASH
1 
# hwclock --set --date="mm/dd/yy hh:mm:ss"

  如果想要修改系統(tǒng)時間那么用date命令就最簡單了

?View Code BASH
1 
# date -s "yy-mm-dd hh:mm:ss"

  現(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ù)器之間的同步了

  四、設(shè)置NTP Server前的準(zhǔn)備

  其實(shí)這個標(biāo)題應(yīng)該改為設(shè)置”NTP Relay Server”前的準(zhǔn)備更加合適. 因?yàn)椴徽撐覀兊挠嬎銠C(jī)配置多好運(yùn)行時間久了都會產(chǎn)生誤差,所以不足以給互聯(lián)網(wǎng)上的其他服務(wù)器做NTP Server. 真正能夠精確地測算時間的還是原子鐘. 但由于原子鐘十分的昂貴,只有少部分組織擁有, 他們連接到計算機(jī)之后就成了一臺真正的NTP Server. 而我們所要做的就是連接到這些服務(wù)器上同步我們系統(tǒng)的時間,然后把我們自己的服務(wù)器做成NTP Relay Server再給互聯(lián)網(wǎng)或者是局域網(wǎng)內(nèi)的用戶提供同步服務(wù)

  好了,前面講了一大堆理論,現(xiàn)在我們來動手實(shí)踐一下吧. 架設(shè)一個NTP Relay Server其實(shí)非常簡單,我們先把需要的RPM包裝上

?View Code BASH
1 
# rpm -ivh ntp-4.2.2p1-9.el5.centos.2.1.x86_64.rpm

  那么第一步我們就要找到在互聯(lián)網(wǎng)上給我們提供同步服務(wù)的NTP Server

  http://www.pool.ntp.org是NTP的官方網(wǎng)站,在這上面我們可以找到離我們城市最近的NTP Server. NTP建議我們?yōu)榱吮U蠒r間的準(zhǔn)確性,最少找兩個個NTP Server
那么比如在中國的話就可以選擇下面幾個服務(wù)器

?View Code BASH
1 2 3 
server 1.cn.pool.ntp.org server 0.asia.pool.ntp.org server 3.asia.pool.ntp.org

  它的一般格式都是number.country.pool.ntp.org

  第二步要做的就是在打開NTP服務(wù)器之前先和這些服務(wù)器做一個同步,使得我們機(jī)器的時間盡量接近標(biāo)準(zhǔn)時間. 這里我們可以用ntpdate命令

?View Code BASH
1 2 3 4 5 
# ntpdate 1.cn.pool.ntp.org 27 May 11:18:56 ntpdate[26465]: adjust time server 61.153.197.226 offset 0.276787 sec   # ntpdate 0.asia.pool.ntp.org 27 May 11:20:01 ntpdate[26470]: adjust time server 122.226.192.4 offset 0.211920 sec

  假如你的時間差的很離譜的話第一次會看到調(diào)整的幅度比較大,所以保險起見可以運(yùn)行兩次. 那么為什么在打開NTP服務(wù)之前先要手動運(yùn)行同步呢?

  1. 因?yàn)楦鶕?jù)NTP的設(shè)置,如果你的系統(tǒng)時間比正確時間要快的話那么NTP是不會幫你調(diào)整的,所以要么你把時間設(shè)置回去,要么先做一個手動同步
  2. 當(dāng)你的時間設(shè)置和NTP服務(wù)器的時間相差很大的時候,NTP會花上較長一段時間進(jìn)行調(diào)整.所以手動同步可以減少這段時間

  五、配置和運(yùn)行NTP Server

  現(xiàn)在我們就來創(chuàng)建NTP的配置文件了, 它就是/etc/ntp.conf. 我們只需要加入上面的NTP Server和一個driftfile就可以了

?View Code BASH
1 2 3 4 5 6 7 8 9 10 11 12 13 14 
# vi /etc/ntp.conf   #注釋掉缺省的NTP服務(wù)器并添加兩個位置比較近的NTP服務(wù)器   #server 0.centos.pool.ntp.org #server 1.centos.pool.ntp.org #server 2.centos.pool.ntp.org server 1.cn.pool.ntp.org server 0.asia.pool.ntp.org driftfile /var/lib/ntp/drift   #預(yù)設(shè)的一個內(nèi)部時鐘資料,用在沒有外部NTP服務(wù)器時,這里我們可以將它注解掉: # server    127.127.1.0     # local clock # fudge     127.127.1.0 stratum 10

  ntp.conf配置說明

  利用server設(shè)定上層NTP伺服器,上層 NTP 伺服器的設(shè)定方式為:

  server [IP or hostname] [prefer]

  在server后端可以接IP或主機(jī)名稱,perfer表示[優(yōu)先使用]的主機(jī)。

  以driftfile記錄時間差異

  設(shè)定的方式如下:

  driftfile [可以被ntpd寫入的目錄與檔案]

  因?yàn)轭A(yù)設(shè)的NTP Server本身的時間計算是依據(jù)BIOS的晶片震蕩周期頻率來計算的,但是這個數(shù)值與上層Time Server有誤差.所以NTP這個daemon(ntpd)會自動的去計算我們自己主機(jī)的頻率與上層Time server的頻率,并且將兩個頻率的誤差記錄下來,記錄下來的檔案就是在driftfile后面接的完整文件名中了!

  關(guān)于文件名你必須要知道:

  driftfile后面接的文件需要使用完整路徑;
  該文件不能是連結(jié)檔;
  該文件需要設(shè)定成 ntpd 這個 daemon 可以寫入的權(quán)限。
  該文件所記錄的數(shù)值單位為:百萬分之一秒(ppm)。
  driftfile后面接的檔案會被ntpd自動更新,所以他的權(quán)限一定要能夠讓ntpd 寫入才行。在CentOS 5.x預(yù)設(shè)的NTP伺服器中,使用的ntpd的owner是ntp ,這部份在/etc/sysconfig/ntpd中設(shè)置的!

  如何同步硬件時鐘?
  
  NTP一般只會同步system clock。但是如果我們也要同步RTC的話那么只需要把下面的選項(xiàng)打開就可以了

?View Code BASH
1 2 
# vi /etc/sysconfig/ntpd SYNC_HWCLOCK=yes

  接下來我們就啟動NTP Server,并且設(shè)置其在開機(jī)后自動運(yùn)行

?View Code BASH
1 2 3 
# /etc/init.d/ntpd/start    # chkconfig --level 35 ntpd on

  六、查看NTP服務(wù)的運(yùn)行狀況

  現(xiàn)在我們已經(jīng)啟動了NTP的服務(wù),但是我們的系統(tǒng)時間到底和服務(wù)器同步了沒有呢? 為此NTP提供了一個很好的查看工具: ntpq(NTP query)

  我建議大家在打開NTP服務(wù)器后就可以運(yùn)行ntpq命令來監(jiān)測服務(wù)器的運(yùn)行.這里我們可以使用watch命令來查看一段時間內(nèi)服務(wù)器各項(xiàng)數(shù)值的變化

?View Code BASH
1 2 3 4 5 6 7 8 
# watch ntpq -p Every 2.0s: ntpq -p                                                                                                                                                               Fri May 27 14:06:57 2011        remote           refid	 st t when poll reach   delay   offset  jitter ==============================================================================  Hshh.org        209.81.9.7	  2 u   35   64    7  103.838  361.111  87.482  time.uni.net.th 202.28.214.2     2 u   98   64    6  450.107  343.325 137.580  LOCAL(0)        .LOCL.          10 l   31   64    7    0.000    0.000   0.001

  ntpq中各參數(shù)的含義

  remote: 它指的就是本地機(jī)器所連接的遠(yuǎn)程N(yùn)TP服務(wù)器

  refid: 它指的是參考的上一層NTP主機(jī)的地址

  st: 遠(yuǎn)程服務(wù)器的級別. 由于NTP是層型結(jié)構(gòu),有頂端的服務(wù)器,多層的Relay Server再到客戶端. 所以服務(wù)器從高到低級別可以設(shè)定為1-16. 為了減緩負(fù)荷和網(wǎng)絡(luò)堵塞,原則上應(yīng)該避免直接連接到級別為1的服務(wù)器的.

  when: 用做計時,用來告訴我們還有多久本地機(jī)器就需要和遠(yuǎn)程服務(wù)器進(jìn)行一次時間同步

  poll: 本地機(jī)和遠(yuǎn)程服務(wù)器多少時間進(jìn)行一次同步(單位為秒). 在一開始運(yùn)行NTP的時候這個poll值會比較小,那樣和服務(wù)器同步的頻率也就增加了,可以盡快調(diào)整到正確的時間范圍.之后poll值會逐漸增大,同步的頻率也就會相應(yīng)減小

  reach: 這是一個八進(jìn)制值,表示已經(jīng)向上層NTP伺服器要求更新的次數(shù)。每成功連接一次它的值就會增加。

  delay: 網(wǎng)路傳輸過程當(dāng)中延遲的時間,單位為 10^(-6) 秒

  offset: 這是個最關(guān)鍵的值, 它告訴了我們本地機(jī)和服務(wù)器之間的時間差別. offset越接近于0,我們就和服務(wù)器的時間越接近。單位為10^(-3)秒

  jitter: Linux系統(tǒng)時間與BIOS硬件時間的差異時間,單位為10^(-6)秒。簡單地說這個數(shù)值的絕對值越小我們和服務(wù)器的時間就越精確。

  那么大家細(xì)心的話就會發(fā)現(xiàn)兩個問題: 第一我們連接的是1.cn.pool.ntp.org為什么和remote server不一樣? 第二那個最前面的+和*都是什么意思呢?

  第一個問題是因?yàn)镹TP提供給我們的是一個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)的時間將由這臺機(jī)器所提供

  +
  它將作為輔助的NTP Server和帶有*號的服務(wù)器一起為我們提供同步服務(wù). 當(dāng)*號服務(wù)器不可用時它就可以接管
  
  -
  遠(yuǎn)程服務(wù)器被clustering algorithm認(rèn)為是不合格的NTP Server

  x
  遠(yuǎn)程服務(wù)器不可用

  了解這些之后我們就可以實(shí)時監(jiān)測我們系統(tǒng)的時間同步狀況了

  七、NTP安全設(shè)置
 
  運(yùn)行一個NTP Server不需要占用很多的系統(tǒng)資源,所以也不用專門配置獨(dú)立的服務(wù)器,就可以給許多client提供時間同步服務(wù), 但是一些基本的安全設(shè)置還是很有必要的
那么這里一個很簡單的思路就是第一我們只允許局域網(wǎng)內(nèi)一部分的用戶連接到我們的服務(wù)器. 第二個就是這些client不能修改我們服務(wù)器上的時間

  在/etc/ntp.conf文件中我們可以用restrict關(guān)鍵字來配置上面的要求

  [restrict]參數(shù)的設(shè)定方式為:

  restrict [你的IP] mask [netmask_IP] [parameter]

  其中parameter 的參數(shù)主要有底下這些:

  ignore:拒絕所有類型的NTP連線
  nomodify:用戶端不能使用ntpc與ntpq 兩支程式來修改伺服器的時間參數(shù),但用戶端仍可透過這部主機(jī)來進(jìn)行網(wǎng)路校時的
  noquery:用戶端不能夠使用ntpq, ntpc等指令來查詢時間伺服器,等于不提供NTP的網(wǎng)路校時;
  notrap:不提供trap這個遠(yuǎn)程事件登錄(remote event logging)的功能。
  notrust:拒絕沒有認(rèn)證的用戶端。
  nopeer:不與其他同一層的ntp服務(wù)器進(jìn)行時間同步

  如果你沒有在parameter的地方加上任何參數(shù)的話,這表示該IP或網(wǎng)段不受任何限制。一般來說,我們可以先關(guān)閉NTP的使用權(quán)限,然后再一個一個的啟用允許登入的網(wǎng)段。
  
  首先我們對于默認(rèn)的client拒絕所有的操作

?View Code BASH
1 
restrict default kod nomodify notrap nopeer noquery

  然后允許本機(jī)地址一切的操作

?View Code BASH
1 
restrict 127.0.0.1

  最后我們允許局域網(wǎng)內(nèi)所有client連接到這臺服務(wù)器同步時間.但是拒絕讓他們修改服務(wù)器上的時間

?View Code BASH
1 
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

  把這三條加入到/etc/ntp.conf中就完成了我們的簡單配置。 NTP還可以用key來做authenticaiton,這里就不詳細(xì)介紹了。有興趣的朋友可以參考ntp-keygen這個指令的相關(guān)說明。

  八、NTP client的設(shè)置
 
  做到這里我們已經(jīng)有了一臺自己的Relay Server。如果我們想讓局域網(wǎng)內(nèi)的其他client都進(jìn)行時間同步的話那么我們就都應(yīng)該照樣再搭建一臺Relay Server,然后把所有的client都指向這兩臺服務(wù)器(注意不要把所有的client都指向Internet上的服務(wù)器). 只要在client的ntp.conf加上這你自己的服務(wù)器就可以了

  注:多做一臺NTP的服務(wù)器是為了時間更加精準(zhǔn),并不是必需的。一臺也是可以達(dá)到網(wǎng)絡(luò)校時的效果的。

  由于ntpd的server/client之間的時間誤差不允許超過1000秒,因此你得先手動進(jìn)行時間同步,然后再設(shè)定與啟動服務(wù)。

  ntpdate基本用法

?View Code BASH
1 2 3 4 5 6 
ntpdate [-dv] [NTP IP/hostname]   選項(xiàng)與參數(shù):   -d :進(jìn)入除錯模式 (debug) ,可以顯示出更多的有效資訊。 -v :有較多訊息的顯示。
?View Code BASH
1 
# ntpdate 192.168.0.215

  配置客戶端

?View Code BASH
1 2 3 4 5 6 7 8 
vi /etc/ntp.conf   #先注釋掉缺省的NTP服務(wù)器,然后增加自己的NTP服務(wù)器 #server 0.centos.pool.ntp.org #server 1.centos.pool.ntp.org #server 2.centos.pool.ntp.org server 192.168.1.215 server 192.168.1.106
?View Code BASH
1 2 3 4 5 6 7 
vi /etc/ntp/ntpservers #This file contains a list of ntp servers to show in the system-config-date user interface. #It is not recommended that you modify this file by hand. #注釋掉缺省的NTP服務(wù)器或者清空這個文件也可以 #0.centos.pool.ntp.org #1.centos.pool.ntp.org #2.centos.pool.ntp.org
?View Code BASH
1 2 3 
vi /etc/ntp/step-tickers  #增加自己的NTP服務(wù)器 192.168.1.215

  同樣客戶端也啟動NTP服務(wù),并且設(shè)置其在開機(jī)后自動運(yùn)行

?View Code BASH
1 2 3 
# /etc/init.d/ntpd/start    # chkconfig --level 35 ntpd on

  
  九、ntpdate和ntpd的區(qū)別

  ntpd不僅僅是時間同步服務(wù)器,他還可以做客戶端與標(biāo)準(zhǔn)時間服務(wù)器進(jìn)行同步時間,而且是平滑同步,并非ntpdate立即同步,在生產(chǎn)環(huán)境中應(yīng)慎用ntpdate。

  由于ntpdate是立即同步,在獲得一個時間之后,ntpdate使用settimeofday(2)設(shè)置系統(tǒng)時間,就會產(chǎn)生時鐘的躍變。

  用ntpdate調(diào)整時間的方式,會有幾個非常明顯的問題:

  第一,這樣做不安全。ntpdate的設(shè)置依賴于ntp服務(wù)器的安全性,攻擊者可以利用一些軟件設(shè)計上的缺陷,拿下ntp服務(wù)器并令與其同步的服務(wù)器執(zhí)行某些消耗性的任務(wù)。由于ntpdate采用的方式是跳變,跟隨它的服務(wù)器無法知道是否發(fā)生了異常(時間不一樣的時候,唯一的辦法是以服務(wù)器為準(zhǔn))。

  第二,這樣做不精確。一旦ntp服務(wù)器宕機(jī),跟隨它的服務(wù)器也就會無法同步時間。與此不同,ntpd不僅能夠校準(zhǔn)計算機(jī)的時間,而且能夠校準(zhǔn)計算機(jī)的時鐘。

  第三,這樣做不夠優(yōu)雅。由于ntpdate是跳變,而不是使時間變快或變慢,依賴時序的程序會出錯。例如,如果ntpdate發(fā)現(xiàn)你的時間快了,則可能會經(jīng)歷兩個相同的時刻,對某些應(yīng)用而言,這是致命的。

  許多應(yīng)用程序依賴連續(xù)的時鐘,取得的時間是線性的。例如數(shù)據(jù)庫事務(wù),通常會地依賴這樣的事實(shí):時間不會往回跳躍。

  我們可以想象以下,假如Oracle服務(wù)器的時間是01:00 AM,標(biāo)準(zhǔn)時間是00:30 AM,很明顯Oracle服務(wù)器經(jīng)過他自己的時間00:40 AM。假若此時直接使用ntpdate將服務(wù)器與標(biāo)準(zhǔn)時間同步,那么意味著Oracle服務(wù)器將在同一天經(jīng)過兩個00:40 AM,這對于某些計劃任務(wù)來說可能是致命的。

  因而,唯一一個可以令時間發(fā)生跳變的點(diǎn),是計算機(jī)剛剛啟動,但還沒有啟動很多服務(wù)的那個時候。其余的時候,理想的做法是使用ntpd來校準(zhǔn)時鐘,而不是調(diào)整計算機(jī)時鐘上的時間。

  十、其它一些可用的同步時間服務(wù)器

  129.7.1.66,210.72.145.44(中國國家授時中心服務(wù)器IP地址)
  ntp.sjtu.edu.cn(上海交通大學(xué)網(wǎng)絡(luò)中心NTP服務(wù)器地址)
  202.120.2.101(上海交通大學(xué)網(wǎng)絡(luò)中心NTP服務(wù)器地址)
  time.nist.gov
  ntp.fudan.edu.cn(復(fù)旦大學(xué)網(wǎng)絡(luò)中心NTP服務(wù)器地址)
  timekeeper.isi.edu
  subitaneous.cpsc.ucalgary.ca
  usno.pa-x.dec.com
  time.twc.weather.com
  swisstime.ethz.ch
  ntp0.fau.de
  ntp3.fau.de
  time-a.nist.gov
  time-b.nist.gov
  time-nw.nist.gov
  nist1-sj.glassey.com

  十一、常見錯誤

  1、在ntp客戶端運(yùn)行ntpdate serverIP,出現(xiàn)no server suitable for synchronization found的錯誤。

?View Code BASH
1 2 3 
#ntpdate 192.168.1.106   27 May 21:58:03 ntpdate[5891]: no server suitable for synchronization found

  在ntp客戶端用ntpdate –d serverIP查看,發(fā)現(xiàn)有“Server dropped: strata too high”的錯誤,并且顯示“stratum 16”。而正常情況下stratum這個值得范圍是“0~15”。

?View Code BASH
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 
# ntpdate  -d 192.168.1.106   27 May 22:04:24 ntpdate[5949]: ntpdate 4.2.2p1@1.1570-o Sat Dec 19 00:56:14 UTC 2009 (1) Looking for host 192.168.1.106 and service ntp host found : 192.168.1.106 transmit(192.168.1.106) receive(192.168.1.106) transmit(192.168.1.106) receive(192.168.1.106) transmit(192.168.1.106) receive(192.168.1.106) transmit(192.168.1.106) receive(192.168.1.106) transmit(192.168.1.106) 192.168.1.106: Server dropped: strata too high server 192.168.1.106, port 123 stratum 16, precision -20, leap 11, trust 000 refid [192.168.1.106], delay 0.02589, dispersion 0.00005 transmitted 4, in filter 4 reference time:    00000000.00000000  Thu, Feb  7 2036 14:28:16.000 originate timestamp: d18a2ecc.72a5beb8  Fri, May 27 2011 22:08:12.447 transmit timestamp:  d18a2de8.61c6b053  Fri, May 27 2011 22:04:24.381 filter delay:  0.02628  0.02628  0.02614  0.02589           0.00000  0.00000  0.00000  0.00000  filter offset: 228.0657 228.0656 228.0656 228.0657          0.000000 0.000000 0.000000 0.000000 delay 0.02589, dispersion 0.00005 offset 228.065737   27 May 22:04:24 ntpdate[5949]: no server suitable for synchronization found

  這是因?yàn)镹TP server還沒有和其自身或者它的server同步上。

  以下的定義是讓NTP Server和其自身保持同步,如果在ntp.conf中定義的server都不可用時,將使用local時間作為ntp服務(wù)提供給ntp客戶端。

?View Code BASH
1 2 
server 127.127.1.0 fudge 127.127.1.0 stratum 8

  在ntp server上重新啟動ntp服務(wù)后,ntp server自身或者與其server的同步的需要一個時間段,這個過程可能是5分鐘,在這個時間之內(nèi)在客戶端運(yùn)行ntpdate命令時會產(chǎn)生no server suitable for synchronization found的錯誤。

  那么如何知道何時ntp server完成了和自身同步的過程呢?

  在ntp server上使用命令:

?View Code BASH
1 2 3 4 5 6 7 8 
# watch ntpq -p   Every 2.0s: ntpq -p                                                                                                                                                                   Fri May 27 22:39:39 2011        remote           refid	 st t when poll reach   delay   offset  jitter ==============================================================================  221.7.129.79    80.127.4.179     2 u   59   64   77   58.386   20.698   1.954 *laika.paina.jp  133.243.238.243  2 u    -   64  177  115.143   17.613   3.054

  注意:由于我在前面的配置是把讓本地做為ntp服務(wù)的選項(xiàng)關(guān)閉了的,所以這里看不見LOCAL(0)項(xiàng)的。如果你沒有關(guān)閉會看到類似下面的行

?View Code BASH
1 
LOCAL(0)        LOCAL(0)        10 l   21   64    1    0.000   0.000  0.001

  這個就是與自身同步的ntp server。

  在啟動ntp server服務(wù)后,reach這個值這個值就從0開始不斷增加,當(dāng)增加到17的時候(從0到17是5次的變更,每一次是poll的值的秒數(shù),是64秒*5=320秒的時間)后,再ntpdate看看,應(yīng)該就可以了。

  2、Server dropped: no data

  從客戶端執(zhí)行ntpdate –d時有錯誤信息如下:

?View Code BASH
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
transmit(192.168.1.6)   transmit(192.168.1.6)   transmit(192.168.1.6)   transmit(192.168.1.6)   transmit(192.168.1.6)   192.168.1.6: Server dropped: no data   server 192.168.1.6, port 123   ..... 28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found

  出現(xiàn)這個問題的原因可能有以下兩個:

  a)檢查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定義中使用了notrust的話,會導(dǎo)致以上錯誤。

  使用以下命令檢查ntp的版本:

?View Code BASH
1 
# ntpq -c version

 
  下面是來自ntp官方網(wǎng)站的說明:

  The behavior of notrust changed between versions 4.1 and 4.2.

  In 4.1 (and earlier) notrust meant “Don’t trust this host/subnet for time”.

  In 4.2 (and later) notrust means “Ignore all NTP packets that are not cryptographically authenticated.” This forces remote time servers to authenticate themselves to your (client) ntpd

  解決方法:把notrust選項(xiàng)去掉。

  b)檢查ntp server的防火墻。可能是server的防火墻屏蔽了upd 123端口。

  可先以下命令暫時關(guān)閉iptables

?View Code BASH
1 
#service iptables stop

  關(guān)掉iptables服務(wù)后,再嘗試從ntp客戶端的同步,如果成功,證明是防火墻的問題,需要更改iptables的設(shè)置。

  十二、參考資料

  http://www.google.com
  http://linux.vbird.org/linux_server/0440ntp.php#server_ntp.conf
  http://www.showlife8.com/article.asp?id=121
  http://www.linuxsir.org/bbs/lastpostinthread307840.html
  http://www.blogjava.net/spray/archive/2008/07/10/213964.html

posted on 2014-01-15 13:58 Enic 閱讀(305) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久www成人免费无遮挡大片 | 一本综合久久| 亚洲人成艺术| 欧美成人免费全部观看天天性色| 卡通动漫国产精品| 免费观看亚洲视频大全| 亚洲国产天堂网精品网站| 日韩视频三区| 欧美一区二区三区视频免费播放| 久久久av网站| 欧美日韩国产一中文字不卡| 国产精品免费一区二区三区观看| 国产日韩1区| 亚洲国产婷婷香蕉久久久久久| 99精品视频一区| 9i看片成人免费高清| 欧美成人r级一区二区三区| 亚洲福利视频二区| 一本大道久久a久久综合婷婷| 午夜欧美大片免费观看| 老司机精品视频网站| 欧美日韩国产高清视频| 国产午夜精品全部视频在线播放| 在线看无码的免费网站| 亚洲综合激情| 噜噜噜噜噜久久久久久91 | 欧美成黄导航| 免费日韩视频| 亚洲黄色免费电影| 亚洲国产精品尤物yw在线观看| 亚洲国产精品视频| 亚洲伊人第一页| 老司机一区二区| 在线视频精品一| 久久久夜精品| 国产精品一区二区久久国产| 亚洲欧洲在线一区| 久久精品99国产精品酒店日本| 亚洲第一搞黄网站| 新67194成人永久网站| 欧美久久一区| 亚洲无人区一区| 校园激情久久| 日韩视频在线免费观看| 免费观看成人www动漫视频| 国产免费成人在线视频| 亚洲午夜黄色| 亚洲精品一区二区三区婷婷月| 久久久噜久噜久久综合| 国产在线拍揄自揄视频不卡99 | 欧美日韩在线播| 国产视频久久久久久久| 性久久久久久久久| 日韩视频一区二区三区在线播放免费观看 | 国产一级久久| 欧美一区二区精品在线| 亚洲欧洲精品一区二区三区不卡 | 亚洲三级性片| 欧美粗暴jizz性欧美20| 久久精品女人| 经典三级久久| 麻豆成人精品| 麻豆精品网站| 亚洲三级性片| 日韩一级在线| 国产精品夜夜夜| 久久不射中文字幕| 久久精品99| 亚洲国产天堂久久综合网| 亚洲电影在线看| 欧美日韩国产亚洲一区 | 西西裸体人体做爰大胆久久久| 一本色道久久88亚洲综合88| 欧美日韩福利| 亚洲欧美日韩中文视频| 亚洲主播在线| 韩国一区电影| 欧美激情aaaa| 欧美人成在线| 欧美亚洲在线观看| 亚洲影院污污.| 久久免费少妇高潮久久精品99| 亚洲一区精彩视频| 国产精品色午夜在线观看| 欧美亚洲网站| 久久久免费av| 亚洲乱码国产乱码精品精| 夜夜嗨av一区二区三区四季av| 欧美亚男人的天堂| 久久亚洲综合色| 欧美日韩成人一区二区| 欧美亚洲尤物久久| 欧美成人午夜激情| 亚洲欧美另类国产| 美女爽到呻吟久久久久| 亚洲伊人一本大道中文字幕| 久久国产99| 亚洲一区www| 久久人人爽人人爽| 亚洲一区二区黄色| 久久五月婷婷丁香社区| 亚洲尤物精选| 欧美电影在线观看完整版| 欧美一区二区视频观看视频| 欧美金8天国| 另类人畜视频在线| 国产精品久久久久久久久| 亚洲第一精品夜夜躁人人爽| 国产日韩欧美一区二区三区四区 | 亚洲精品欧美日韩专区| 国产日韩精品在线观看| 亚洲精品小视频在线观看| 国产真实乱子伦精品视频| 亚洲精品日韩一| 亚洲国产成人久久综合| 欧美亚洲专区| 亚洲欧美日韩专区| 欧美久久久久久久久久| 欧美成人久久| 国外视频精品毛片| 性做久久久久久久久| 亚洲免费一级电影| 欧美精品国产精品| 欧美激情性爽国产精品17p| 国产一区在线免费观看| 亚洲免费在线| 午夜视频精品| 国产精品午夜视频| 亚洲在线观看免费| 欧美一级播放| 国产日韩精品视频一区二区三区| 一区二区三区导航| 在线一区二区日韩| 韩国亚洲精品| 亚洲一区二区av电影| 亚洲福利电影| 久久精品国产精品亚洲综合| 欧美自拍偷拍| 国产日韩欧美亚洲一区| 香蕉久久夜色精品| 久久不射2019中文字幕| 国产日韩欧美一区二区三区四区 | 久久国产主播| 国产亚洲精品一区二555| 午夜亚洲影视| 久久久久国产一区二区三区| 国产一区二区三区直播精品电影| 欧美日韩一区成人| 久久―日本道色综合久久| 欧美在线三区| 国产九九精品视频| 欧美一区二区| 欧美大片一区| 亚洲乱码精品一二三四区日韩在线 | 久久免费国产| 在线观看欧美精品| 久久琪琪电影院| 欧美成人精品1314www| 尤物九九久久国产精品的分类| 久久综合九色九九| 日韩一二三区视频| 性做久久久久久免费观看欧美 | 国产精品成av人在线视午夜片| 亚洲国产电影| 亚洲久久一区二区| 国产精品va| 亚洲中字黄色| 欧美激情第4页| 一区二区精品在线| 国产日韩欧美精品在线| 久久精品国产成人| 亚洲国产美女| 欧美日韩在线视频首页| 久久国产精品99精品国产| 欧美高清视频一区| 亚洲天堂成人在线视频| 国产农村妇女毛片精品久久莱园子 | 欧美日韩一卡二卡| 亚洲网站视频| 久久亚洲春色中文字幕| 亚洲精品一区二区三区四区高清| 国产精品麻豆va在线播放| 久久国产精品99国产| 亚洲第一黄网| 欧美日韩专区在线| 国产亚洲美州欧州综合国| 亚洲精品黄网在线观看| 久久亚洲影院| 久久久久久久999精品视频| 欧美成人亚洲| 久久精品视频播放| 欧美激情欧美狂野欧美精品| 国产精品美女久久久| 一区二区三区视频观看| 亚洲国产一区二区三区青草影视 | 正在播放欧美一区| 久久久精品一品道一区| 亚洲国产导航| 久久久精品五月天| 午夜性色一区二区三区免费视频|