ブート後にNTPDに日付/時刻を強制的に更新させる方法は?


63

Raspberry Piにはハードウェアクロックがありません。ブートのたびにNTPDに日付/時刻を強制的に更新させるにはどうすればよいですか?

Raspbianを実行していますが、Raspberry Piはイーサネットケーブルを使用して接続されています


私はすでに箱から出してそれを行っています。どのdistoを使用していますか?
ガーベン

Raspbian Wheezyに
アレッサンドロ・ダRugna

なんとなくそのまま動作します
レニック

1
@Thorb Piはイーサネットケーブル/ dhcpで接続されています。起動後に有効な日付が取得されないだけで、しばらく時間がかかります(
10〜45

1
数分後に自動的に実行されます。ここで説明されているように、National Bureau of Standardsのtime.nist.govでマスタークロックを使用するように設定してください: raspberrypi.stackexchange.com/questions/68811/…–
SDsolar

回答:


40

を行いますapt-get install ntpdate

ntpdateイーサネットインターフェイスが起動されたときに実行され、ntpサーバーから時刻を設定します(を参照/etc/default/ntpdate)。

ntpd実行中の場合、ntpdateは何もしませんが、起動時ntpdateより前に実行されます。ntpdしたがって、イーサネット接続がある限り、起動時に時間を設定するために動作するはずです。


ストックRaspbianはこれらすべてをすでに持っています。
13

7
@scruss mineはしませんでした。(2013年2月9日喘鳴rasbian)
ピートKirkham

1
私もそうしなかった、手動でそれをしなければならなかった。
vaindil

正しくセットアップされていれば、自動的に実行されますが、数分かかる場合があります。
SDsolar

Linux raspberrypi 4.14.30-v7+ #1102 SMP Mon Mar 26 16:45:49 BST 2018 armv7l GNU/Linux持っていなかった。
-emix

36

時計がずれている場合は、次を実行してntpを強制的に同期する必要があります。

sudo /etc/init.d/ntp stop
sudo ntpd -q -g
sudo /etc/init.d/ntp start

1
エラー「sudo:ntpd:command not found」が返されます
Pygmalion

1
コマンドを使用するにはntpdをインストールする必要があります
-thaspius

3
それインストールされています、私はその無知ではありません:)
ピグマリオン

raspberrypi.stackexchange.com/questions/47542/…をご覧ください。そこに詳細を掲載しました。
ピグマリオン

3
これは私の問題の絶対的な解決策でしたが、再起動するまで一時的なものであることがわかりました。最終的には、シャットダウン時に、hwクロックに将来の日付があるためにhwclockを更新できなかったというエラーを検出しました(どのように発生したかわかりません)。しかし、解決策はhwclock更新力でした。これにより、偽のハードウェアクロックが強制的に更新され、起動時に時刻が少なくとも現在時刻に近づいたため、ntpは正常に動作します。
ピワフ

34

周りを検索した後、この方法はうまくいきました。ご存知のように、Raspberry Pi 3ではデフォルトでNTPが無効になっています。したがって、これを入力するだけで、NTPサポートが有効になります。

sudo timedatectl set-ntp True

結果を確認 timedatectl status

警告の場合、あなたも走らなければならないかもしれませsudo timedatectl set-local-rtc trueん。


おかげで、これはようやく私を助け、以前の回答にもかかわらず、適切な方法のようです。
チャーリーズ

1
それが最良の答えであり、私を大いに助けてくれました。「sudo」を使用して、パスワードの入力を回避できます(パスワードを実行するスクリプトに便利です)。secondsコマンドの目的は何ですか?set-local-rtc-
アラド

12

raspi-configインターネットに接続している場合、Raspberry Pi でタイムゾーンを設定すると、起動時に自動的に時刻が更新されます。

  1. sudo raspi-config
  2. 選択する Internationalisation Options
  3. 選択する I2 Change Timezone
  4. 地域を選択してください
  5. 最寄りの都市を選択してください
  6. 選択する Finish
  7. Yes今すぐ再起動することを選択します

これは私のためによく働い
AlexG

I2 Change Timezoneオプションはもう存在しません
21:59に

12

フォーラムの投稿を参照してください。Pi3 および公式のドングルでTimeが同期しません

ntpdは、ToSフィールドが0xc0に設定されたIP / UDPパケットを送信します。したがって、これは、Wi-Fi内部インターフェイス上で操作するときに私(および他の多くの人)がRaspberry Pi3で抱えている他の問題と非常によく似ています。

回避策として、コマンドを追加します

/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00

ファイルに

/etc/rc.local

出口0行の前。次に、再起動して確認します。


1
XMas用に入手したRPi3をインストールしたのと同じ問題があり、問題を解決しました。すばらしいです !!!
jfmessier 16

8

すでに時間を更新しているはずです。NTPDサーバーは、スワップファイルの直後、SSHDの前に起動する必要があります。

/etc/ntp.confファイルをチェックして、構成されていることを確認します。

少なくとも1つのサーバーをリストする必要があります。私は自分のサーバーにtime.nrc.caを使用しています。

ntp.confのマニュアルページはこちら:http : //linux.die.net/man/5/ntp.conf


3

私の息子のRasberry Piはそのままではタイムアウトを更新せず、上記のすべての提案を試した後、手動では更新できますが、自動では更新できません。最後に、成功せずに他の場所を調べたところ、Rasberry Piに付属のntp.confファイルには次の行がコメントアウトされていることがわかりました。

#restrict 127.0.0.1
#restrict ::1

使った

sudo nano /etc/ntp.conf

ターミナルでntp confファイルを編集して、次のようにします。

# Local users may interrogate the ntp server more closely. 
restrict 127.0.0.1
restrict ::1

これで問題は解決しました。WiFiとイーサネットケーブルの両方で更新されます。上記のrc.localを変更せずにWiFiで更新するかどうかはわかりません。上記の解決策を見つけるまでに、すでにその変更を行っており、元に戻していないためです。


2

timedatectlは同様の問題を抱えていたときに私を助けるアプリケーションを見つけました。デフォルトでインストールされており、「-help」はツールの使用方法の非常に優れたシンプルな概要を提供します。

注:タイムゾーンが適切に設定されていることを確認してください。このツールでも同様に実行できます。


1

これが、私が最終的に取ったアプローチです。これらの回答の多くは、Raspianシステムを調べたときにチェックアウトしなかったことを示しているように見えました。

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

何もしていないこと、NICのアップ状態で同期しtimedatectlていること、またはntpNTPDがインストール/設定されていることを示すログには何も表示されませんでした。

最後に、私はこれを自分のに追加しただけ/etc/rc.localです:

$ cat /etc/rc.local
logger "Beginning force syncing NTP..."
service ntp stop
ntpd -gq
service ntp start
logger "Finished force syncing NTP..."

インストール済みntp

$ sudo apt-get install ntp

これは次のようになり/var/log/syslogます:

Aug  5 09:10:20 pi-hole ntp[526]: Starting NTP server: ntpd.
Aug  5 09:10:20 pi-hole ntpd[555]: proto: precision = 1.458 usec (-19)
Aug  5 09:10:20 pi-hole ntpd[555]: Listen and drop on 0 v6wildcard [::]:123
Aug  5 09:10:20 pi-hole ntpd[555]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug  5 09:10:20 pi-hole ntpd[555]: Listen normally on 2 lo 127.0.0.1:123
Aug  5 09:10:20 pi-hole ntpd[555]: Listen normally on 3 eth0 192.168.1.85:123
Aug  5 09:10:20 pi-hole ntpd[555]: Listen normally on 4 lo [::1]:123
Aug  5 09:10:20 pi-hole ntpd[555]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug  5 09:10:20 pi-hole ntpd[555]: Listening on routing socket on fd #22 for interface updates
Aug  5 09:10:21 pi-hole ntpd[555]: ntpd exiting on signal 15 (Terminated)
Aug  5 09:10:21 pi-hole ntp[661]: Stopping NTP server: ntpd.
Aug  5 09:10:21 pi-hole ntpd[674]: ntpd 4.2.8p10@1.3728-o Sat Mar 10 18:03:33 UTC 2018 (1): Starting
Aug  5 09:10:21 pi-hole ntpd[674]: Command line: ntpd -gq
Aug  5 09:10:21 pi-hole ntpd[674]: proto: precision = 0.625 usec (-21)
Aug  5 09:10:21 pi-hole ntpd[674]: Listen and drop on 0 v6wildcard [::]:123
Aug  5 09:10:21 pi-hole ntpd[674]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug  5 09:10:21 pi-hole ntpd[674]: Listen normally on 2 lo 127.0.0.1:123
Aug  5 09:10:21 pi-hole ntpd[674]: Listen normally on 3 eth0 192.168.1.85:123
Aug  5 09:10:21 pi-hole ntpd[674]: Listen normally on 4 lo [::1]:123
Aug  5 09:10:21 pi-hole ntpd[674]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug  5 09:10:21 pi-hole ntpd[674]: Listening on routing socket on fd #22 for interface updates
Aug  5 09:10:34 pi-hole ntpd[674]: Soliciting pool server 198.98.57.16
Aug  5 09:10:35 pi-hole ntpd[674]: Soliciting pool server 74.82.59.149
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 23.131.160.7
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 52.37.26.163
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 204.2.134.163
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 96.126.100.203
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 199.223.248.101
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 66.228.42.59
Aug  5 09:10:36 pi-hole ntpd[674]: Soliciting pool server 208.75.89.4
Aug  5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 204.2.134.164
Aug  5 09:10:37 pi-hole ntpd[674]: Soliciting pool server 104.236.116.147
Aug  5 09:10:38 pi-hole ntpd[674]: Soliciting pool server 204.9.54.119
Aug  5 09:10:48 pi-hole ntpd[674]: ntpd: time set +6.769186 s
Aug  5 09:10:49 pi-hole ntpd[853]: ntpd 4.2.8p10@1.3728-o Sat Mar 10 18:03:33 UTC 2018 (1): Starting
Aug  5 09:10:49 pi-hole ntpd[853]: Command line: /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 111:114
Aug  5 09:10:49 pi-hole ntp[844]: Starting NTP server: ntpd.
Aug  5 09:10:49 pi-hole ntpd[856]: proto: precision = 0.625 usec (-21)
Aug  5 09:10:49 pi-hole ntpd[856]: Listen and drop on 0 v6wildcard [::]:123
Aug  5 09:10:49 pi-hole ntpd[856]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Aug  5 09:10:49 pi-hole ntpd[856]: Listen normally on 2 lo 127.0.0.1:123
Aug  5 09:10:49 pi-hole ntpd[856]: Listen normally on 3 eth0 192.168.1.85:123
Aug  5 09:10:49 pi-hole ntpd[856]: Listen normally on 4 lo [::1]:123
Aug  5 09:10:49 pi-hole ntpd[856]: Listen normally on 5 eth0 [fe80::f5ea:7663:4ec:784d%2]:123
Aug  5 09:10:49 pi-hole ntpd[856]: Listening on routing socket on fd #22 for interface updates
Aug  5 09:10:49 pi-hole root: Finished force syncing NTP...

最小のraspbian Failed to start ntp.service: Unit ntp.service not found.では動作しません:そして、ntpdも存在しません。Piは間違いなく時間を稼ぎます。(それより前に実行するとHTTPSカールが-kなしで失敗するため、これを調査しています)
スティーブンルー

@StevenLu-A'erを更新して、ntpのインストールも含めるようにします。
SLM

@StevenLu-– apt-get install ntp
slm

1

問題を解決するためにntpを使用する必要はありません。サーバーから日付を読み取るスクリプトがあり、そのスクリプトの結果になるように日付を設定するだけです(Raspberry Piはインターネットに接続する必要があります)。次に、起動時にそのコマンドを実行する必要があります。

ステップ1:サーバーから日付を取得します。

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

ステップ2:起動時にコマンドをファイルに追加して実行します/etc/rc.local(Ubuntu 16.04で動作します)。

sudo gedit /etc/rc.local

クレジット:

1- https://askubuntu.com/a/655528/572294

2- https://askubuntu.com/a/1199/572294


0

追加のパッケージをインストールせずに時間を同期するために、デフォルトのイメージで以下を使用しています。

timedatectl set-local-rtc 0
timedatectl set-ntp 1
timedatectl status
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.