前言
這是我在這個網站整理的筆記,關注我,接下來還會持續更新。 作者:RodmaChen
為了防止應用在系統上運行時候,系統時間與真實時間出現誤差。可以調用ntp服務器獲取正確的時間進行調整
NTP簡介
網絡時間協議(NTP)是一種用于同步計算機時鐘的協議。它可以通過網絡將計算機時鐘同步到全球標準時間,確保計算機時鐘的準確性和一致性。
NTP的工作原理
NTP使用客戶端-服務器模型。其中一個計算機(稱為NTP服務器)充當時間源,提供全球標準時間。其他計算機(稱為NTP客戶端)通過網絡連接到NTP服務器,并使用NTP協議獲取時間信息。
當NTP客戶端與NTP服務器通信時,它們會交換時間信息。NTP客戶端使用這些信息來調整自己的時鐘,以確保其與全球標準時間保持同步。NTP客戶端還可以充當NTP服務器,向其他計算機提供時間信息。
NTP的優點
- 精度高:NTP可以將計算機時鐘與全球標準時間同步到毫秒級別。
- 穩定性好:NTP可以通過多個時間源進行校準,從而提高系統的穩定性和可靠性。
- 跨平臺:NTP可以在各種操作系統和硬件平臺上運行。
- 開放源代碼:NTP是一個開放源代碼項目,用戶可以自由使用和修改它。
NTP的應用場景
NTP廣泛應用于需要精確時間同步的領域,例如金融、電信、科學研究等。以下是一些常見的應用場景:
- 金融交易:金融交易需要精確時間同步,以確保交易的準確性和公正性。
- 電信網絡:電信網絡需要對各種設備進行時間同步,以確保網絡流量的正確路由和故障排除。
- 科學研究:科學研究需要精確時間同步,以確保實驗結果的準確性。
- 航空航天:航空航天需要對各種設備進行時間同步,以確保安全和準確性。
服務器地址
NTP(Network Time Protocol)服務器地址是由網絡服務提供商或組織提供的。一些常見的公共NTP服務器地址包括:
time.nist.gov
time.windows.com
pool.ntp.org
ntp.ubuntu.com
time.google.com
ntp.nasa.gov
time.apple.com
linux安裝使用
下載
yum install ntp
啟動查看
systemctl start ntp
systemctl status ntp
測試
修改系統時間
data -s
更新回正確時間
ntpdate -q time.nist.gov
代碼示例
python3.7
ntplib~=0.4.0
def ntf_config(self, server):# 創建NTP客戶端ntp_client = ntplib.NTPClient()# 設置客戶端的超時時間為3秒ntp_client.timeout = 3try:# 獲取NTP服務器返回的時間戳response = ntp_client.request(server)ntp_time = response.tx_time# 轉化ntp時間 UTCutc_time = time.gmtime(ntp_time)# 設置系統時間 UTCnew_time = time.strftime("%Y-%m-%d %H:%M:%S", utc_time)subprocess.check_call(["date", "-u", "-s", new_time])return Trueexcept Exception as e:logger.info("開啟ntp報錯:" + str(e))
小知識
UTC和CST都是表示時間的標準,但它們之間有一些區別。
- UTC是協調世界時(Coordinated Universal Time)的縮寫,是一種基于原子鐘的時間標準。UTC被廣泛使用作為全球標準時間,它與地球自轉無關,因此不會受到地球自轉速度變化的影響。UTC沒有時區之分,它是全球通用的時間標準。
- CST是中國標準時間(China Standard Time)的縮寫,是中國所采用的時間標準。CST是以北京時間為基準,比UTC慢8個小時。因此,如果UTC時間是12:00,那么在中國的CST時間就是20:00。
總之,UTC是全球通用的時間標準,而CST是中國所采用的時間標準,兩者之間相差8個小時。
作者:RodmaChen
本人博客:https://blog.csdn.net/weixin_46654114
轉載說明:務必注明來源,附帶本人博客連接。