gnu coreutils `date`はどのように機能しますか? [閉鎖]

gnu coreutils `date`はどのように機能しますか? [閉鎖]

このサイトには同様の質問はありません。 、manpage方法を説明するのに役立ちますが、使用 date、背景情報はあまりありません。ページinfo(マンページで指定されています:)でも、変数に基づいて動作するinfo '(coreutils) date invocation'方法にすぎません。TZ

dateコマンドラインユーティリティがどのように機能するかを知りたいです。具体的には、

date +%s

エポック以降の秒数を返します1467743297(例1970-01-01 00:00:00 UTC:)。

たとえば、インターネット接続は必要ないと思います。それではまたそうですか?時々特定のソースと再同期しようとしていますか?では、このソースはどのように指定されますか?そうでなければ、特定のマシンで日付別に報告された値についてどのくらい確信できますか?

セクション21.1.5このinfoページはdateシステム/ソフトウェアクロックのみを扱い、それとの同期はhwclockOSによって異なります。だから...おそらく、この質問はより適切なようです。「どのシステムがより正確に報告しますかdate +%s?」dateこれは、精度がシステムハードウェアクロックの精度に制限され、特にシステム/ソフトウェアクロックの影響を受けることを意味するとも考えられます。 (たとえば、高精度のハードウェア時計を使用しても、ソフトウェア時計が精度を妨げる可能性があります。)

ベストアンサー1

date何も同期しようとせずに、strace date ...システムに知られているエイリアスの後の時間を見つけるために、いくつかのシステムコール(Linuxに表示または表示されない場合があります)のみを実行します。

システム自体はBIOSクロックと同期できます。あるいは、仮想マシンは、実行中の親マシンから現在時刻を取得できます。あるいは、rdateNTP(またはほぼ同じ機能を持つ他のソフトウェア、レガシーまたは精密時間プロトコル(PTP)を使用)またはハードウェアGPSまたはラジオを使用して時間を設定できます。date管理者がBBCラジオを聞いてdateシステム時間を時間どおりに手動で設定しない限り(まだ時間どおりにdoot doot doot deeをしていますか?)、これらのどれも関係ありません。

システムクロックの精度は、NTP設定(または使用されている他のソフトウェア)、NTP(または同様のソフトウェア)が破損しているか、BIOSが破損しているか(4年後にシステムが起動するのを見たことがあります。サーバーですMakefile...)、ハードウェアクロックが誤動作しているかどうか、その他のさまざまな詳細。 NTPを使用している場合は、peersコマンドntpqまたはドリフトファイルを確認する価値があります。

最も正確な時間を得るために(除外各ホストに原子時計を配置する...) 読んでみたいかもしれないPTP「より高い精度に向けて」(また学んだ。時間は幻想です)。

おすすめ記事