
私は、ユーザーが調整または変更できる内部 RTC クロックを備えた Debian Jessie Linux システムを持っています。外部 IP に接続されている場合と接続されていない場合があり、したがって NTP にアクセスできる場合とできない場合があります。クロック設定 UI で「NTP から設定」するオプションを提供したいのですが (利用可能な場合)、システム クロックが NTP から常に更新されることは望んでいません。
- ntpd をアクティブにして、システム クロックを更新しないように設定するにはどうすればよいですか?
- システム クロックと一緒に表示される「ntp 時間」を読み取って表示するにはどうすればよいですか? (C または Python で問題ありません)
答え1
NTP によるシステム クロックの更新を回避する最も簡単な解決策は、NTP を実行しないことです。
代わりに、on demand のようなものを使いntpdate
、潜在的なリモート NTP サーバーにローカル クロックがどの程度間違っているかを問い合わせます。
ntpdate -qu 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org
server 212.47.239.163, stratum 2, offset 0.000638, delay 0.03052
server 92.243.6.5, stratum 3, offset -0.001490, delay 0.03011
...
4 Oct 00:00:55 ntpdate[10962]: adjust time server 91.121.167.54 offset -0.000156 sec
このモードでは、ntpdate
root として実行する必要がないため、ローカル クロックを「誤って」更新する可能性はありません。
ところで、ntpd
上流のタイム サーバーから切断されても処理できること、またデーモンを長期間実行しておくと、ほとんどのシステム クロックに固有のドリフトを最小限に抑えることができることをご存知ですか?