樹莓派3b添加python時間同步腳本


樹莓派沒有電池,因此斷電后系統時間會停止,直到你開機后又繼續計時,所以會造成系統時間和實際時間有很大的誤差。

因為項目需要用到本地時間,精度要求不高不想折騰(如果需要高精度,需要安裝ntp),所以考慮用python腳本同步百度的時間,精度誤差很小在0.5-1秒之內,需要網絡支持。

1、創建python程序

sudo nano date.py

2、寫入python代碼

# -*- coding: UTF-8 -*-
import os
import time
import httplib

#獲取遠程服務器時間並同步本地
def get_webservertime(host):
    conn=httplib.HTTPConnection(host)
    conn.request("GET", "/")
    r=conn.getresponse()
    ts=  r.getheader('date') #獲取http頭date部分
    ltime= time.strptime(ts[5:25], "%d %b %Y %H:%M:%S") #將GMT時間轉換成北京時間
    ttime=time.localtime(time.mktime(ltime)+8*60*60) #時區+8小時
    currenttime="%u-%02u-%02u %02u:%02u:%02u"%(ttime.tm_year,ttime.tm_mon,ttime.tm_mday,ttime.tm_hour,ttime.tm_min,ttime.tm_sec)
    os.system('sudo date -s "' + currenttime  + '"')

time.sleep(20)
get_webservertime("www.baidu.com")

while 1:
    time.sleep(120)
    get_webservertime("www.baidu.com")

3、給予權限

sudo chmod 777 date.py

4、測試程序

先將系統時間改為過期時間

sudo date -s '2016-02-03 10:00:00'

查看系統時間是否修改成功

sudo date

執行編寫好的python程序,20秒后使用date命令查看系統時間是否同步成功!

sudo python date.py

5、將python程序加入開機自啟

編輯系統啟動文件

sudo nano /etc/rc.local

在 exit 0 之前加入腳本(注意程序路徑)

/usr/bin/python /home/pi/date.py > /home/pi/GetDate.log

6、重啟樹莓派,20秒后查看系統時間是否同步成功

sudo reboot

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM