• <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>

            行進(jìn)中開火

            C++夜未眠

            Linux中的時(shí)間

                在Windwos中,系統(tǒng)時(shí)間的設(shè)置很簡(jiǎn)單,界面操作,通俗易懂。而且設(shè)置后,重啟,關(guān)機(jī)都沒關(guān)系。系統(tǒng)時(shí)間會(huì)自動(dòng)保存在Bios的時(shí)鐘里面,啟動(dòng)計(jì)算機(jī)的時(shí)候,系統(tǒng)會(huì)自動(dòng)在Bios里面取硬件時(shí)間,以保證時(shí)間的不間斷。

                但在Linux下,默認(rèn)情況下,系統(tǒng)時(shí)間和硬件時(shí)間,并不會(huì)自動(dòng)同步。在Linux運(yùn)行過程中,系統(tǒng)時(shí)間和硬件時(shí)間以異步的方式運(yùn)行,互不干擾。硬件時(shí)間的運(yùn)行,是靠Bios電池來維持,而系統(tǒng)時(shí)間,是用CPU tick來維持的。

                在系統(tǒng)開機(jī)的時(shí)候,會(huì)自動(dòng)從Bios中取得硬件時(shí)間,設(shè)置為系統(tǒng)時(shí)間。

             

            一.Linux系統(tǒng)時(shí)間的設(shè)置

                在Linux中設(shè)置系統(tǒng)時(shí)間,可以用date命令:

            //查看時(shí)間

            [root@localhost ~]# date
            2008年 12月 12日 星期五 14:44:12 CST

            //修改時(shí)間
            [root@localhost ~]# date --set "1/1/09 00:01" <== (月/日/年時(shí):分:秒)
            2009年 01月 01日 星期四 00:01:00 CST

            //date 有幾種時(shí)間格式可接受,這樣也可以設(shè)置時(shí)間:

            [root@localhost ~]# date 012501012009.30  <== 月日時(shí)分年.秒
            2009年 01月 25日 星期日 01:01:30 CST

             

             二.Linux硬件時(shí)間的設(shè)置

                硬件時(shí)間的設(shè)置,可以用hwclock或者clock命令。其中,clock和hwclock用法相近,只用一個(gè)就 行,只不過clock命令除了支持x86硬件體系外,還支持Alpha硬件體系。

            //查看硬件時(shí)間 可以是用 hwclock ,hwclock --show 或者 hwclock -r

            [root@localhost ~]# hwclock --show
            2008年12月12日 星期五 06時(shí)52分07秒  -0.376932 seconds

            //設(shè)置硬件時(shí)間

            [root@localhost ~]# hwclock --set --date="1/25/09 00:00" <== 月/日/年時(shí):分:秒
            [root@localhost ~]# hwclock
            2009年01月25日 星期日 00時(shí)00分06秒  -0.870868 seconds

             

            三.系統(tǒng)時(shí)間和硬件時(shí)間的同步

                同步系統(tǒng)時(shí)間和硬件時(shí)間,可以使用hwclock命令。

            //以系統(tǒng)時(shí)間為基準(zhǔn),修改硬件時(shí)間

            [root@localhost ~]# hwclock --systohc <== sys(系統(tǒng)時(shí)間)to(寫到)hc(Hard Clock)
            [root@localhost ~]# hwclock -w

            //以硬件時(shí)間為基準(zhǔn),修改系統(tǒng)時(shí)間

            [root@localhost ~]# hwclock --hctosys
            [root@localhost ~]# hwclock -s

             

            四.不同機(jī)器之間的時(shí)間同步

                為了避免主機(jī)時(shí)間因?yàn)殚L(zhǎng)期運(yùn)作下所導(dǎo)致的時(shí)間偏差,進(jìn)行時(shí)間同步(synchronize)的工作是非常必要的。Linux系統(tǒng)下,一般使用ntp服務(wù)器來同步不同機(jī)器的時(shí)間。一臺(tái)機(jī)器,可以同時(shí)是ntp服務(wù)器和ntp客戶機(jī)。在網(wǎng)絡(luò)中,推薦使用像DNS服務(wù)器一樣分層的時(shí)間服務(wù)器來同步時(shí)間。

                同步時(shí)間,可以使用ntpdate命令,也可以使用ntpd服務(wù)。

                使用ntpdate比較簡(jiǎn)單。格式如下:

            [root@linux ~]# ntpdate [-nv] [NTP IP/hostname]
            [root@linux ~]# ntpdate 192.168.0.2
            [root@linux ~]# ntpdate time.ntp.org

                但這樣的同步,只是強(qiáng)制性的將系統(tǒng)時(shí)間設(shè)置為ntp服務(wù)器時(shí)間。如果cpu tick有問題,只是治標(biāo)不治本。所以,一般配合cron命令,來進(jìn)行定期同步設(shè)置。比如,在crontab中添加:

            0 12 * * * * /usr/sbin/ntpdate 192.168.0.1

                 這樣,會(huì)在每天的12點(diǎn)整,同步一次時(shí)間。ntp服務(wù)器為192.168.0.1。

                使用ntpd服務(wù),要好于ntpdate加cron的組合。因?yàn)椋琻tpdate同步時(shí)間,會(huì)造成時(shí)間的跳躍,對(duì)一些依賴時(shí)間的程序和服務(wù)會(huì)造成影響。比如sleep,timer等。而且,ntpd服務(wù)可以在修正時(shí)間的同時(shí),修正cpu tick。理想的做法為,在開機(jī)的時(shí)候,使用ntpdate強(qiáng)制同步時(shí)間,在其他時(shí)候使用ntpd服務(wù)來同步時(shí)間。

                要注意的是,ntpd 有一個(gè)自我保護(hù)設(shè)置: 如果本機(jī)與上源時(shí)間相差太大, ntpd 不運(yùn)行. 所以新設(shè)置的時(shí)間服務(wù)器一定要先 ntpdate 從上源取得時(shí)間初值, 然后啟動(dòng) ntpd服務(wù)。ntpd服務(wù) 運(yùn)行后, 先是每64秒與上源服務(wù)器同步一次, 根據(jù)每次同步時(shí)測(cè)得的誤差值經(jīng)復(fù)雜計(jì)算逐步調(diào)整自己的時(shí)間, 隨著誤差減小, 逐步增加同步的間隔. 每次跳動(dòng), 都會(huì)重復(fù)這個(gè)調(diào)整的過程.

             

            五.ntpd服務(wù)的設(shè)置

                ntpd服務(wù)的相關(guān)設(shè)置文件如下:

            1./etc/ntp.conf:這個(gè)是NTP daemon的主要設(shè)文件,也是 NTP 唯一的設(shè)定文件。

            2./usr/share/zoneinfo/:在這個(gè)目錄下的文件其實(shí)是規(guī)定了各主要時(shí)區(qū)的時(shí)間設(shè)定文件,例如北京地區(qū)的時(shí)區(qū)設(shè)定文件在 /usr/share/zoneinfo/Asia/Beijing 就是了。這個(gè)目錄里面的文件與底下要談的兩個(gè)文件(clock 與localtime)是有關(guān)系的。

            3./etc/sysconfig/clock:這個(gè)文件其實(shí)也不包含在NTP 的 daemon 當(dāng)中,因?yàn)檫@個(gè)是 linux 的主要時(shí)區(qū)設(shè)定文件。每次開機(jī)后,Linux 會(huì)自動(dòng)的讀取這個(gè)文件來設(shè)定自己系統(tǒng)所默認(rèn)要顯示的時(shí)間。

            4./etc/localtime:這個(gè)文件就是“本地端的時(shí)間配置文件”。剛剛那個(gè)clock 文件里面規(guī)定了使用的時(shí)間設(shè)置文件(ZONE) 為 /usr/share/zoneinfo/Asia/Beijing ,所以說,這就是本地端的時(shí)間了,此時(shí), Linux系統(tǒng)就會(huì)將Beijing那個(gè)文件另存為一份 /etc/localtime文件,所以未來我們的時(shí)間顯示就會(huì)以Beijing那個(gè)時(shí)間設(shè)定文件為準(zhǔn)。

            5. /etc/timezone:系統(tǒng)時(shí)區(qū)文件

             

                下面重點(diǎn)說說 /etc/ntp.conf文件的設(shè)置。在 NTP Server 的設(shè)定上面,其實(shí)最好不要對(duì) Internet 無限制的開放,盡量?jī)H提供您自己內(nèi)部的 Client 端聯(lián)機(jī)進(jìn)行網(wǎng)絡(luò)校時(shí)就好。此外, NTP Server 總也是需要網(wǎng)絡(luò)上面較為準(zhǔn)確的主機(jī)來自行更新自己的時(shí)間啊,所以在我們的 NTP Server 上面也要找一部最靠近自己的 Time Server 來進(jìn)行自我校正。事實(shí)上, NTP 這個(gè)服務(wù)也是 Server/Client 的一種模式。

            [root@linux ~]# vi /etc/ntp.conf
            # 1. 關(guān)于權(quán)限設(shè)定部分
            #   權(quán)限的設(shè)定主要以 restrict 這個(gè)參數(shù)來設(shè)定,主要的語法為:
            #   restrict IP mask netmask_IP parameter
            #   其中 IP 可以是軟件地址,也可以是 default ,default 就類似 0.0.0.0
            #   至于 paramter 則有:
            #   ignore :關(guān)閉所有的 NTP 聯(lián)機(jī)服務(wù)
            #   nomodify:表示 Client 端不能更改 Server 端的時(shí)間參數(shù),不過,

            #   Client 端仍然可以透過 Server 端來進(jìn)行網(wǎng)絡(luò)校時(shí)。
            #   notrust :該 Client 除非通過認(rèn)證,否則該 Client 來源將被視為不信任網(wǎng)域
            #   noquery :不提供 Client 端的時(shí)間查詢

            #   notrap :不提供trap這個(gè)遠(yuǎn)程事件登入

            #  如果 paramter 完全沒有設(shè)定,那就表示該 IP (或網(wǎng)域)“沒有任何限制”

            restrict default nomodify notrap noquery # 關(guān)閉所有的 NTP 要求封包
            restrict 127.0.0.1    #這是允許本級(jí)查詢
            restrict 192.168.0.1 mask 255.255.255.0 nomodify
            #在192.168.0.1/24網(wǎng)段內(nèi)的服務(wù)器就可以通過這臺(tái)NTP Server進(jìn)行時(shí)間同步了
            # 2. 上層主機(jī)的設(shè)定
            #  要設(shè)定上層主機(jī)主要以 server 這個(gè)參數(shù)來設(shè)定,語法為:
            #  server [IP|HOST Name] [prefer]
            #  Server 后面接的就是我們上層 Time Server 啰!而如果 Server 參數(shù)
            #  后面加上 perfer 的話,那表示我們的 NTP 主機(jī)主要以該部主機(jī)來作為
            #  時(shí)間校正的對(duì)應(yīng)。另外,為了解決更新時(shí)間封包的傳送延遲動(dòng)作,
            #  所以可以使用 driftfile 來規(guī)定我們的主機(jī)
            #  在與 Time Server 溝通時(shí)所花費(fèi)的時(shí)間,可以記錄在 driftfile 
            #  后面接的文件內(nèi),例如下面的范例中,我們的 NTP server 與 
            #  cn.pool.ntp.org聯(lián)機(jī)時(shí)所花費(fèi)的時(shí)間會(huì)記錄在 /etc/ntp/drift文件內(nèi)
            server 0.pool.ntp.org

            server 1.pool.ntp.org

            server 2.pool.ntp.org

            server cn.pool.ntp.org prefer

            #其他設(shè)置值,以系統(tǒng)默認(rèn)值即可

            server  127.127.1.0     # local clock

            fudge   127.127.1.0 stratum 10

            driftfile /var/lib/ntp/drift
            broadcastdelay  0.008
            keys /etc/ntp/keys

            總結(jié)一下,restrict用來設(shè)置訪問權(quán)限,server用來設(shè)置上層時(shí)間服務(wù)器,driftfile用來設(shè)置保存漂移時(shí)間的文件。

             

            六.ntp服務(wù)的啟動(dòng)與觀察

            在啟動(dòng)NTP服務(wù)前,先對(duì)提供服務(wù)的這臺(tái)主機(jī)手動(dòng)的校正一次時(shí)間咯。(因?yàn)閱?dòng)服務(wù)器,端口會(huì)被服務(wù)端占用,就不能手動(dòng)同步時(shí)間了)

            [root@linux ~] # ntpdate cn.pool.ntp.org

            25 Apr 14:33:51 ntpdate[8310]: step time server 80.85.129.2 offset 6.655976 sec

            然后,啟動(dòng)ntpd服務(wù):

            [root@linux ~] # service ntpd start

            或 [root@linux ~] # /etc/init.d/ntpd start

            查看端口:

            [root@linux ~] # netstat -ln|grep 123

            udp        0      0 192.168.228.153:123        0.0.0.0:*

            udp        0      0 127.0.0.1:123               0.0.0.0:*

            udp        0      0 0.0.0.0:123                  0.0.0.0:*

            udp        0      0 :::123                       :::*

            如何確認(rèn)我們的NTP服務(wù)器已經(jīng)更新了自己的時(shí)間呢?

            [root@linux ~] # ntpstat

            synchronized to NTP server(127.127.1.0) at stratum 11

            time correct to within 950ms

            polling server every 64 s

            #改指令可列出NTP服務(wù)器是否與上層聯(lián)機(jī)。由上述輸出結(jié)果可知,時(shí)間校正約

            #為950*10(-6)秒。且每隔64秒會(huì)主動(dòng)更新時(shí)間。

            常見的錯(cuò)誤:

            25 Apr 15:30:17 ntpdate[11520]: no server suitable for synchronization found

            其實(shí),這不是一個(gè)錯(cuò)誤。而是由于每次重啟NTP服務(wù)器之后大約要3-5分鐘客戶端才能與server建立正常的通訊連接。當(dāng)此時(shí)用客戶端連接服務(wù)端就會(huì)報(bào)這樣的信息。一般等待幾分鐘就可以了。

            [root@linux ~] # ntptrace –n 127.0.0.1

            127.0.0.1:stratum 11, offset 0.000000,synch distance 0.950951

            222.73.214.125:stratum 2,offset –0.000787,synch distance 0.108575

            209.81.9.7:stratum 1,offset 0.000028,synch distance 0.00436,refid ‘GPS’

            #這個(gè)指令可以列出目前NTP服務(wù)器(第一層)與上層NTP服務(wù)器(第二層)彼此之間的

            #關(guān)系

            [root@linux ~] # ntpq –p

            指令“ntpq -p”可以列出目前我們的NTP與相關(guān)的上層NTP的狀態(tài),以上的幾個(gè)字段的意義如下:

            remote:即NTP主機(jī)的IP或主機(jī)名稱。注意最左邊的符號(hào),如果由“+”則代表目前正在作用鐘的上層NTP,如果是“*”則表示也有連上線,不過是作為次要聯(lián)機(jī)的NTP主機(jī)。

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

            st:即stratum階層

            when:幾秒前曾做過時(shí)間同步更新的操作

            poll:下次更新在幾秒之后

            reach:已經(jīng)向上層NTP服務(wù)器要求更新的次數(shù)

            delay:網(wǎng)絡(luò)傳輸過程鐘延遲的時(shí)間

            offset:時(shí)間補(bǔ)償?shù)慕Y(jié)果

            jitter:Linux系統(tǒng)時(shí)間與BIOS硬件時(shí)間的差異時(shí)間

             

                最后提及一點(diǎn),ntp服務(wù),默認(rèn)只會(huì)同步系統(tǒng)時(shí)間。如果想要讓ntp同時(shí)同步硬件時(shí)間,可以設(shè)置/etc/sysconfig/ntpd 文件。

            在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 這樣,就可以讓硬件時(shí)間與系統(tǒng)時(shí)間一起同步。

            posted on 2009-11-25 20:27 Jakcie 閱讀(856) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Linux & QT

            国产成人精品久久亚洲高清不卡| 天天久久狠狠色综合| 国产精品久久婷婷六月丁香| 性做久久久久久久久浪潮| 一本大道久久东京热无码AV | 久久国产精品免费一区| 久久久久久久国产免费看| 思思久久99热只有频精品66| 成人综合伊人五月婷久久| 欧美激情精品久久久久久| 老色鬼久久亚洲AV综合| 国产精品无码久久综合网| 久久午夜福利无码1000合集| 狠狠久久亚洲欧美专区| 久久强奷乱码老熟女网站| 国产精品久久久久影院嫩草 | 国产精品久久99| 午夜精品久久久内射近拍高清| 熟妇人妻久久中文字幕| 亚洲v国产v天堂a无码久久| 国内精品久久久久| 伊人热热久久原色播放www| 久久久精品午夜免费不卡| 亚洲AV无一区二区三区久久| 欧美日韩精品久久久免费观看| 亚洲AV无码久久精品成人| 亚洲综合久久夜AV | 欧美日韩成人精品久久久免费看| 国产 亚洲 欧美 另类 久久| 国内精品久久久久伊人av| 人妻无码αv中文字幕久久| 久久久久久精品免费免费自慰| 伊人久久精品影院| 2021最新久久久视精品爱 | 久久青青草视频| 国产精品亚洲美女久久久| 91麻豆精品国产91久久久久久| 久久发布国产伦子伦精品| 日韩精品久久久肉伦网站| 99久久无码一区人妻a黑| 国产成人久久AV免费|