1. 程式人生 > >我的openwrt學習筆記(二十二):網路時間同步

我的openwrt學習筆記(二十二):網路時間同步

在實際的LINUX 開發中,網路裝置都有工作時間,一般需要進行網路時間同步。

一般採用NTP伺服器進行同步。

NTP(Network Time Protocol,網路時間協議)是用來使網路中的各個計算機時間同步的一種協議。它的用途是把計算機的時鐘同步到世界協調時UTC,其精度在區域網內可達0.1ms,在網際網路上絕大多數的地方其精度可以達到1-50ms。

它可以使計算機對其伺服器或時鐘源(如石英鐘,GPS等等)進行時間同步,它可以提供高精準度的時間校正,而且可以使用加密確認的方式來防止惡毒的協議攻擊。

對嵌入式裝置而言,NTP方式關鍵在於選擇哪個NTP伺服器,因為有的NTP伺服器有時候會出現些問題,如無法訪問!

本文介紹一種利用HTTP header資訊的方法,需要藉助curl,curl是什麼後面會進行分析闡述。

 需要一定的shell http知識哦!

[email protected]:~/http/testcurl$ curl -sI http://nist.time.gov/timezone.cgi?UTC/s/0| awk -F': ' '/Date: /  {print $2}'

Mon, 24 Aug 2015 11:19:25 GMT

[email protected]:~/http/testcurl$ date -s "curl -sI http://nist.time.gov/timezone.cgi?UTC/s/0| awk -F': ' '/Date: /  {print $2}'"

date: invalid date `curl -sI http://nist.time.gov/timezone.cgi?UTC/s/0| awk -F\': \' \'/Date: /  {print }\''

[email protected]:~/http/testcurl$ date -s "`curl -sI http://nist.time.gov/timezone.cgi?UTC/s/0| awk -F': ' '/Date: /  {print $2}'`"

date: cannot set date: Operation not permitted

Mon Aug 24 19:20:00 CST 2015

[email protected]:~/http/testcurl$ sudo date -s "`curl -sI http://nist.time.gov/timezone.cgi?UTC/s/0| awk -F': ' '/Date: /  {print $2}'`"

[sudo] password for linux:

Sorry, try again.

[sudo] password for linux:

Mon Aug 24 19:20:09 CST 2015

換個國內的baidu.com吧,再來測試下。

[email protected]:~/http/testcurl$ sudo date -s "`curl -sI www.baidu.com| awk -F': ' '/Date: /  {print $2}'`"

[sudo] password for linux:

Wed Aug 26 13:48:49 CST 2015

[email protected]:~/http/testcurl$ curl -sI www.baidu.com

HTTP/1.1 200 OK

Date: Wed, 26 Aug 2015 05:49:09 GMT

Content-Type: text/html; charset=utf-8

Connection: Keep-Alive

Vary: Accept-Encoding

Set-Cookie: BAIDUID=5B78DC1DCE22807CBA79CEBA91B125CB:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

Set-Cookie: BIDUPSID=5B78DC1DCE22807CBA79CEBA91B125CB; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

Set-Cookie: PSTM=1440568149; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com

Set-Cookie: BDSVRTM=0; path=/

Set-Cookie: BD_HOME=0; path=/

Set-Cookie: H_PS_PSSID=16415_1428_14602_12868_16799_16904_17000_17004_12835_15582_12338_13932_16950_16968_16866; path=/; domain=.baidu.com

P3P: CP=" OTI DSP COR IVA OUR IND COM "

Cache-Control: private

Cxy_all: baidu+005986c4967689962c9f01e2f019a0d3

Expires: Wed, 26 Aug 2015 05:49:02 GMT

X-Powered-By: HPHP

Server: BWS/1.1

X-UA-Compatible: IE=Edge,chrome=1

BDPAGETYPE: 1

BDQID: 0xfc0fed0200000131

BDUSERID: 0

[email protected]:~/http/testcurl$ curl -sI www.baidu.com| awk -F': ' '/Date: /  {print $2}

> ^C

[email protected]:~/http/testcurl$ curl -sI www.baidu.com| awk -F': ' '/Date: /  {print $2}'

Wed, 26 Aug 2015 05:49:31 GMT

       MT 7688 Openwrt 中完全可以使用這種方式進行網路時間的同步!

相關推薦

Unity3D學習筆記Shader著色器1

mission inf 向量 投影 rim tags 系統 依賴 什麽是 一、GPU:圖形處理器,Graphics Processing Unit 顯卡的處理器就是圖形處理器。與CPU類似。 GPU和CPU的區別? 1.CPU主要是為了串行指令設計,GPU則是為了大規模

Unity3D學習筆記Shader著色器2- 頂點片元著色器

結構體 意義 float inline 有意義 pro spa ocl rcu Alpha測試 AlphaTest Great:大於 AlphaTest Less:小於 AlphaTest Equal:等於 AlphaTest GEqual:大於等於 AlphaTest L

Unity3D學習筆記Shader著色器3- 光照

像素 環境 斜率 偏移 target off 分辨 屬性 思路 光照模型:用數學的方法模擬現實世界中的光照效果。 場景中模型身上的光反射到相機中的光線: 1.漫反射:產生明暗效果 2.高光反射:產生鏡面反射,物體中有最亮且比較耀眼的一部分 3.自發光: 4.環境光:

Unity3D學習筆記頂點偏移和溶解

mar exc car struct range pass 偏移 discard 通過 頂點偏移 沿向量方向偏移,沿自身坐標系方向偏移 沿法線方向偏移,球體放大,立方體拆分 Shader "Lesson/VFVertOffsetVertex" { Proper

Unity3D學習筆記Xlua1

免費 最終 object delta urn 自動 assets 文件的 span Xlua:騰訊研發,開源免費 配置:文件解壓,拷貝到Unity項目裏 註意:Xlua文件夾不許移動,不許重命名 運行Xlua: 1、引用命名空間 2、創建虛擬機 3、運行lua語句

openwrt學習筆記網路時間同步

在實際的LINUX 開發中,網路裝置都有工作時間,一般需要進行網路時間同步。 一般採用NTP伺服器進行同步。 NTP(Network Time Protocol,網路時間協議)是用來使網路中的各個計算機時間同步的一種協議。它的用途是把計算機的時鐘同步到世界協調時UTC,其精

Linux學習筆記iptables filter表案例、 iptables nat表應用

iptables filter表案例、 iptables nat表應用 一、iptables filter表案例需求:將80、20、21端口放行,對22端口指定特定的ip才放行以下為操作方法:vim /usr/local/sbin/iptables.sh //加入如下內容#! /bin/bas

Django學習筆記datetime.timedelta類介紹

datetime.timedelta物件代表兩個時間之間的時間差,兩個date或datetime物件相減就可以返回一個timedelta物件。  如果有人問你昨天是幾號,這個很容易就回答出來了。但是如果問你200天前是幾號,就不是那麼容易答出來。而在Python中dateti

OpenCV學習筆記——《OpenCV Computer Version with Python》閱讀摘要

現在python火啊,每次OpenCV自帶的ml模組都讓我直呼坑爹,索性準備用python來做OpenCV後期的機器學習演算法的處理。於是趕緊拿起這本書讀讀。 適合OpenCV和python都有一定基礎的。。。。由於都比較熟悉這兩個東西,我閱讀之前比較關心的只有幾個問題,具

Unity3D學習筆記Xlua2

使用 ceil list date action oat static arp 分享 Xlua支持通過子類對象訪問父類的變量屬性和方法 對於C#的ref,out參數的方法 當調用的時候:out類型的參數是不需要傳遞實參的,普通的參數和ref參數需要傳遞實參。 out,r

的php學習筆記 PHP站內搜尋多關鍵字、加亮顯示

一、SQL語句中的模糊查詢        主要通過LIKE(不區分大小寫)關鍵字實現模糊查詢。LIKE條件一般用在指定搜尋某欄位的時候, 通過"%"或者" _" 萬用字元的作用實現模糊查詢功能,萬用字元可以在欄位前面也可以在後面或前後都有。只通過LIKE是無法實現模糊查詢的

Python學習筆記網絡編程1TCP編程

包含 ipv sina spa 包括 現在 com 訪問 等等 摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432004374523e49

Python學習筆記SMTP發送郵件

email debug lib 第一個 發郵件 參數 html郵件 命令 兼容 摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432005

Linux學習筆記日常運維三

ifconfig一、linux網絡相關、 ifconfig ifconfig //查看網卡ip(yum install net-tools) ifup ens33/ifdown ens33 //開啟網卡,關閉網卡,只有一個網卡時,一旦關閉了網卡就會斷開遠程鏈接,只能去服務器主機重新打

Effective_STL 學習筆記 瞭解你的排序選擇

  排序出 20 個質量最高的 Widget,一種演算法叫作 partial_sort: 1   bool qualityCompare( const Widget & lhs, const Widget & rhs ) 2   { 3     // 返回 lhs 的質量是

Effective_STL 學習筆記 通過 mismatch 和 lexicographical 比較實現簡單的忽略大小寫字串比較

  怎麼用 STL 進行忽略大小寫的字串的比較?   首先實現兩個字元忽略大小寫的比較: 1   int ciCharCompare( char c1, char c2 )      // 忽略大小寫比較字元 2   { 3     int Ic1 = tolower(

Effective_STL 學習筆記 了解 copy_if 的正確 實現

了解 算法 十六 ota eve nbsp remove rep ack STL 提供了 11 個名字帶有 “copy” 的算法     copy        copy_backward     replace_copy     reverse_copy     re

Effective_STL 學習筆記 用純函數做判斷式

函數類 effect false 函數 轉換 bsp 對象 stl 排序 1. 判斷式是返回 bool (或者其他隱式轉換為 bool 的東西)。判斷式在 STL 中廣泛使用。標準關聯容器的比較函數是判斷式,判斷式函數常常作為參數傳給算法,比如 find_if 和多種排

Effective_STL 學習筆記 注意 count、find、binary_search、lower_bound、upper_bound 和 equal_range 的區別

  如果區間有序,可以使用對數時間的演算法,binary_search、lower_bound、upper_bound 和 equal_range  如果迭代器沒有劃分一個有序區間,只能用線性時間的演算法 count、count_if、find 和 find_if  &nb

Effective_STL 學習筆記 避免產生只寫程式碼

  假設有一個 vector<int>,想要去掉 vector 中的值小於 x 而出現在至少和 y 一樣大的最後一個元素之後的所有元素 1   vector<int> v; 2   int x, y; 3   . . . 4   v.erase( remove_if