首頁>Raspberry Pi>source

我正在使用RTC。 我阅讀了此模組的文件,该文件每24小時將丢失一秒钟。 所以,我想我必须自己更新它。 谷歌搜尋後,我被吸引到了這个解決方案:

hwclock --systohc

但是後来我在其他地方讀到,系統時钟可能不準確.仅当它具有網際網路連線以获取最新日期/時間時,它才是準確的.虽然很明顯,但我不能依靠它。

所以,我想說的是我每6个小時尝試获取NTP時間.如果成功的话我会打電话

hwclock --systohc

如果不成功,請每10分钟尝試一次。

如何从命令列訪問/呼叫NTP時間?

最新回復
  • 4月前
    1 #

    我確定我不完全理解您的問题:

      Youseemto be asking how to use ntpd 更新您的el cheapoRTC。

      您似乎已经找到了如何从RPi的系統時間更新RTC,我认為@Milliways的評論也解決了這一點。

      您尚未說明準確性要求,而且您似乎還不清楚RPi的defaultSNTP是否能够满足您的要求。

      最後,也许是在进一步的困惑中,人们认為執行 ntpdsystemd-timesyncd製成awkward

      总而言之,以下內容可帮助您對其中的一些內容进行分類:

      1. Raspberry Pi上的NTP vs SNTP

      2018年的SE SE問答涵盖了 NTP的一些细节 (和 ntpd )从RPi中删除,並替換為SNTP.它也提供了有關RPi一般上的計時功能的几句话. AFAIK,那裏的两个答案仍然正確.通讀本問答,可能会為您提供建議.本文总結了NTP和SNTP之間的區別

      2.準確性期望

      在RPi內部時钟上进行的一些測量(包括在此問答中)表明,尽管您的RTC評級為el cheapo,但您的RTC仍会提供 far better accuracy 而不是RPi系統時钟! 引用的文章支援 "less than 100msec"声稱的準確性(使用NTP) ,但請註意警告。

      這表明,即使在某些網路不稳定/中斷的情况下,您的RTC也應能够將RPi的系統時钟維持在少於1秒的錯誤範圍內.如果您需要合理的精度,並且遇到網路中斷的情况,我想說您的RTC是4英镑的不錯的投資.如果您需要的更好,請考虑投資GPS或更好的RTC。

      3. systemd-timesyncd

      正如 # 1中所述 以上,RPi的預設計時服務是通過 systemd-timesyncd的SNTP .但是,您可以將預設計時替換為 ntpdchronydopenntpd -或您選擇的任何其他計時客戶-不受 systemd-timesyncd的干扰或麻煩

      實際上,您甚至都不需要通知 systemd-timesyncd -只需安裝 ntpdchronydopenntpdsystemd-timesyncd .換句话說,如果 systemd-timesyncd 檢測到這些服務之一正在執行,它將 stand down -它会自動根据您的選擇.如果所有軟體都這麼礼貌,我仍然對它的礼貌感到惊讶!

      您可以按以下方式亲自驗證:

      $ systemctl cat systemd-timesyncd | less
      

      請註意輸出清單的最後几行:

      # /lib/systemd/system/systemd-timesyncd.service.d/disable-with-time-daemon.conf
      [Unit]
      # don't run timesyncd if we have another NTP daemon installed
      ConditionFileIsExecutable=!/usr/sbin/ntpd
      ConditionFileIsExecutable=!/usr/sbin/openntpd
      ConditionFileIsExecutable=!/usr/sbin/chronyd
      ConditionFileIsExecutable=!/usr/sbin/VBoxService

      4.手動更新系統時間

      您問:

      how can I access/call NTP time from the command line?

      AFAIK,這不可能,但是(現已棄用) ntpdatentpsec-ntpdate 實用程式可以通過从NTP服務器設置系統時間来實現您的目標.可以使用 apt以常規方式將它们安裝在RPi上 .我不清楚您為什麼要手動執行此操作-除非您根本没有Internet連線,但是如果您這樣做,也许可以使用。

      如果您要手動更新系統時钟-或没有Internet連線,那麼您可能会感兴趣:

        Call +1 (808) 335-4363

        At the beep, enter the following command at the prompt:

      $ date -s 'YYYY-MM-DD HH:MM:SS'
      

      請參见 man date 如果您需要详细資訊

      总結

      希望這会有所帮助-如果您還有其他問题,請告诉我们。

相似問題

  • ping:尽管DHCP正在工作,但没有網際網路
  • raspbian:GUI登錄後啟動Ruby on Rails服務器