
私は灌漑システムに使用するラズベリーパイを持っています。問題は、ハードウェア クロックがないため、再起動するたびにシステム時間が間違ってしまい、自動的に同期するように設定できないことです。
システム時刻が間違っていると DNS リクエストが機能しないことがわかりました。そのため、リクエストを送信しようとするたびに次のメッセージが表示されます。
[root@alarmpi me]# ntpdate 3.es.pool.ntp.org
Error resolving 3.es.pool.ntp.org: Name or service not known (-2)
12 Aug 15:37:15 ntpdate[2385]: Can't find host 3.es.pool.ntp.org: Name or service not known (-2)
12 Aug 15:37:15 ntpdate[2385]: no servers can be used, exiting
ちなみに、pacman、wget、python/requests、ping を使用しようとすると、同じ接続エラーが発生します... したがって、これは間違いなく DNS の問題です。
[me@alarmpi ~]$ ping google.com
ping: google.com: Name or service not known
時刻と日付を手動で設定すると、再び動作しますが、私はこの装置がある場所から 300 km 離れたところに住んでいるので、停電がある毎日は手動で行うことができません。
[root@alarmpi me]# timedatectl
Local time: Mon 2019-08-12 15:47:40 CEST
Universal time: Mon 2019-08-12 13:47:40 UTC
RTC time: n/a
Time zone: Europe/Madrid (CEST, +0200)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
[root@alarmpi me]# timedatectl set-ntp false
[root@alarmpi me]# timedatectl set-time "2019-08.13 10:45:45 CEST"
[root@alarmpi me]# ping google.com
PING google.com (172.217.168.174) 56(84) bytes of data.
64 bytes from 172.217.168.174 (172.217.168.174): icmp_seq=1 ttl=54 time=22.7 ms
64 bytes from 172.217.168.174 (172.217.168.174): icmp_seq=2 ttl=54 time=31.6 ms
^C
--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 292ms
rtt min/avg/max/mdev = 22.739/27.161/31.583/4.422 ms
[root@alarmpi me]# ntpdate 3.es.pool.ntp.org
13 Aug 10:49:54 ntpdate[2498]: adjust time server 37.139.121.60 offset 0.004894 sec
ちょっと困惑しています。同期していないためにサービスに接続できない場合、時計を自動的に同期するにはどうすればいいでしょうか?
答え1
一部のNTPサーバーはIPアドレスを直接リッスンし、そのように宣伝します。たとえば、NIST各 NTP サーバーの IP が提供されているため、そのうちの 1 つを選択してntpdate <IP>
初期化できます。DNS 解決は必要なく、すぐに動作するはずです。
あるいは、再起動間のおおよその時間を保存するパッケージを使用することもできますfake-hwclock
。これは完璧ではなく、正確な時間を提供しませんが、NTP のドメイン名を解決するには十分かもしれません。