我在羣集上運行一些作業,其中每個節點上的日期稍微偏離彼此。有沒有一種簡單的方法來從互聯網上的某個地方通過python獲得時間,還是我需要讓sysadmin更頻繁地同步機器之間的時間?在Python中獲取正確時間的簡單方法
我想在每個作業的輸出中加上一個時間戳,但顯然Python的time.strftime()
等的準確性將取決於機器知道正確的時間。我希望在幾秒鐘內就能夠獲得準確性,但現在只需幾分鐘。
我在羣集上運行一些作業,其中每個節點上的日期稍微偏離彼此。有沒有一種簡單的方法來從互聯網上的某個地方通過python獲得時間,還是我需要讓sysadmin更頻繁地同步機器之間的時間?在Python中獲取正確時間的簡單方法
我想在每個作業的輸出中加上一個時間戳,但顯然Python的time.strftime()
等的準確性將取決於機器知道正確的時間。我希望在幾秒鐘內就能夠獲得準確性,但現在只需幾分鐘。
嘗試使用ntplib for python。我已經玩了一下,看起來很穩定。
鏈接已過期。這是更新的一個https://pypi.python.org/pypi/ntplib/ – shshnk 2016-03-21 23:32:57
聽起來像你應該看看使用類似NTP的東西來保持機器的時間相互同步(最好是全球標準時間源)。
我處理與運行的是Linux 2.6.33,Python的2.6.5,可惜一個獨立的傳感器設備缺少一個實時時鐘,但確實具有聯網能力。此外,該設備使用BusyBox,因此它具有最小化的一組工具功能。
我創建了下面的腳本,它在網絡運行後執行以糾正系統時間。我的解決方案可能不完全解決原始問題(聽起來像Noah是用戶而不是系統管理員),但是這個問題是通過NTP使用Python搜索同步系統時鐘時出現的問題。我認爲這可能會幫助其他人降落在這裏。
在使用腳本之前,您需要安裝ntplib。下載鏈接和安裝說明如下:https://pypi.python.org/pypi/ntplib/。
將以下代碼的內容複製到一個文件中(我命名爲我的「synctime.py」)。然後,在網絡運行後,執行腳本(例如「python synctime.py」)。您需要使用提升(root)權限來執行此操作,以便正常工作。
import time
import os
try:
import ntplib
client = ntplib.NTPClient()
response = client.request('pool.ntp.org')
os.system('date ' + time.strftime('%m%d%H%M%Y.%S',time.localtime(response.tx_time)))
except:
print('Could not sync with time server.')
print('Done.')
看看:http://stackoverflow.com/questions/908550/python-getting-date-online – 2011-03-07 17:36:41
這是一個解決的問題。你的系統管理員應該照顧它;你的機器的時間沒有任何理由超過幾分之一秒。 – kindall 2011-03-07 17:47:45