回答:
Mojaveはまだ使用しています timed
しかし、 ntpdate
削除されました。システム時刻を確認して更新するには、次の電話をかけることができます。 sntp
直接。
$ sudo sntp -sS pool.ntp.org
Password:
sntp 4.2.8p10@1.3728-o Tue Mar 21 14:36:42 UTC 2017 (136.200.1~2533)
2018-09-29 19:42:41.448103 (-0200) +1087.742403 +/- 725.183462 pool.ntp.org 188.68.36.203 s2 no-leap
このエラーが発生した場合
kod_init_kod_db(): Cannot open KoD db file /var/db/ntp-kod: No such file or directory
試してみてください。
sudo touch /var/db/ntp-kod
sudo chmod 666 /var/db/ntp-kod
ハイシエラの用途 timed
から、 /usr/libexec/timed
システムユーザーによって実行されます。 _timed
。
NTPなどのテクノロジを介してクロックを基準クロックと同期させることで、システムクロックの精度を維持します。入力は時間内でマージされ、プロアクティブタイムジョブのスケジューリングを容易にするために不確実性が計算されます。時限はまた電源/電池の状態を知っています。
時限はLaunchDaemonによって管理されます /System/Library/LaunchDaemons/com.apple.timed.plist
。時限走行…
あなたはあなたの時計がどのくらい「オフ」であるかを見ることができます。 /var/db/timed/com.apple.timed.plist
TMTimeErrorキーおよびTMScaleFactorErrorキーのTMLastSystemTimeディクショナリの下にあります。
$ sudo defaults read /var/db/timed/com.apple.timed TMLastSystemTime
{
TMCurrentTime = "537303485.281592";
TMReliability = 1;
TMRtcTime = "351422.381868388";
TMScaleFactor = "0.9999958233107684";
TMScaleFactorError = "3.468751755688052e-05";
TMSource = TMTimeSynthesizer;
TMTimeError = "0.6127951619022057";
}
timedはで設定されたタイムサーバーを使用します。 /etc/ntp.conf
これはデフォルトでは
server time.apple.com
timedはTMTimeSynthesizerも使用します。これはiOSのCoreTimeで時計の更新に使用されるものですが、私はmacOSの歴史については知りません。
manページに記載されているように、自分でタイミングバイナリーを実行しないでください。
timedは引数を取らないので、ユーザーは手動で起動しないでください。
投稿内のApple Developer Forumsユーザーgranada29によると 10.13のntpd、timed、およびchronyd 、timedは以下を実行します。
timedは単純なsntpクライアントであるように見えます - すなわちそれは定期的に(15分)NTPをポーリングし、システムクロックを設定するためにsettimeofday()システムコールを使用します。私はそれが時計を逆方向に動かさないようにするためにいくらか巧妙さを持っていると思います、しかし言う方法がありません。
pacemaker
macOSの時間管理を担当するデーモンです。それは使用しています adjtime
の内容ごとに時計を調整する /var/db/ntp.drift
。
あなたはあなたの時計がどのくらい「オフ」であるかを見ることができます。 ntp.drift
- たとえば、私のファイルには次のものが含まれています。
-23.640
これは、クロックが本来の時刻から-23.64 PPM離れていることを意味します。この数の単位はPPM、または100万分の1です。 1 PPMは1マイクロ秒/秒、つまり3.6ms / hです。
あなたは実行することで時計の更新をより頻繁にすることができます pacemaker
とともに -a
時間移動の間に待機する時間を秒単位で指定するオプション
/usr/libexec/pacemaker -a 10
OS Xがペースメーカー用に使用しているパラメータを見るには /System/Library/LaunchDaemons/com.apple.pacemaker.plist
。
{
KeepAlive = { PathState = { "/private/var/db/ntp.drift" = :true; }; };
Label = "com.apple.pacemaker";
ProgramArguments = ( "/usr/libexec/pacemaker", "-b", "-e", "0.0001", "-a", "10" );
}
現在の設定を見つけるには、 -i
オプション:
/usr/libexec/pacemaker -i
Jan 19 18:20:08 g pacemaker[12544] <Info>: --- settings for external power ---
Jan 19 18:20:08 g pacemaker[12544] <Info>: interval = 1 seconds, tolerance = 0.000000, drift = -23.640000
Jan 19 18:20:08 g pacemaker[12544] <Info>: --- settings for internal power ---
Jan 19 18:20:08 g pacemaker[12544] <Info>: interval = 1 seconds, tolerance = 0.000024, drift = -23.640000
あなたが実行してログを表示することができます -v
オプション:
sudo /usr/libexec/pacemaker -v
Password:
Jan 19 18:23:17 g pacemaker[13202] <Info>: power status check: using external power
Jan 19 18:23:17 g pacemaker[13202] <Info>: created file monitor for /var/db/ntp.drift
Jan 19 18:23:17 g pacemaker[13202] <Info>: interval = 1 seconds, tolerance = 0.000000, drift = -23.640000
Jan 19 18:23:19 g pacemaker[13202] <Debug>: drift -23.640000 residue 0.000000 delta -23
Jan 19 18:23:20 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.640000 delta -24
Jan 19 18:23:21 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.280000 delta -23
Jan 19 18:23:22 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.920000 delta -24
Jan 19 18:23:23 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.560000 delta -24
Jan 19 18:23:24 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.200000 delta -23
⌃C%
最初のステップはあなたの時間が設定されているかどうかを確認することです。
Mac:~ me$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*time.apple.com 17.168.198.149 2 u 1046 512 37 58.475 9.477 3.674
遅延/オフセット/ジッタの値が100未満であると仮定して(時間精度がそれほど厳しくないシステムでは、通常の遅延は1000未満になる可能性があります)、端末で実行する次のコマンドは次のとおりです。 ntpq
あなたからのタイムサーバーが続きます ntpq
そしてシステムの好み。ミリ秒の差異の時間を修正して現在のハードウェアクロックが標準時間からどのようにずれているかを計算するときに、タイムキーピングシステムはタイムサーバーからの応答が近くて速いのが好ましい。
Mac:~ me$ ntpdate -q time.apple.com
server 17.151.16.12, stratum 2, offset 0.081698, delay 0.11237
server 17.151.16.20, stratum 2, offset 0.081365, delay 0.11310
server 17.151.16.21, stratum 2, offset 0.082754, delay 0.11440
server 17.151.16.22, stratum 2, offset 0.081750, delay 0.11264
server 17.151.16.23, stratum 2, offset 0.082691, delay 0.11415
server 17.151.16.38, stratum 2, offset 0.082077, delay 0.11458
server 17.171.4.13, stratum 2, offset 0.084822, delay 0.08054
server 17.171.4.14, stratum 2, offset 0.083749, delay 0.08142
server 17.171.4.15, stratum 2, offset 0.086343, delay 0.07605
server 17.171.4.33, stratum 2, offset 0.086526, delay 0.07690
server 17.171.4.34, stratum 2, offset 0.084500, delay 0.07997
server 17.171.4.35, stratum 2, offset 0.083987, delay 0.08278
server 17.171.4.36, stratum 2, offset 0.084382, delay 0.08028
server 17.171.4.37, stratum 2, offset 0.085948, delay 0.07831
server 17.151.16.14, stratum 2, offset 0.082043, delay 0.11270
19 Jan 12:09:32 ntpdate[4592]: adjust time server 17.171.4.15 offset 0.086343 sec
Mac:~ me$ ntpq
ntpq> assoc
ind assid status conf reach auth condition last_event cnt
===========================================================
1 57788 9014 yes yes none reject reachable 1
ntpq> peer
remote refid st t when poll reach delay offset jitter
==============================================================================
time.apple.com 17.168.198.148 2 u 729 512 1 133.274 51.653 371.362
ntpq> q
次に確認することはあなたのペースメーカープログラムです:
Mac:~ me$ ps -ef|grep [p]acemaker
0 76 1 0 Fri08AM ?? 0:03.64 /usr/libexec/pacemaker -b -e 0.0001 -a 10
これは、バッテリでは調整間隔が10秒に1回以下で、クロック誤差が0.1ミリ秒未満であれば調整間隔がさらに短くなることを示しています。
オフセットが数秒以上であることがわかった場合は、使用するタイムサーバーを変更するか、ペースメーカで使用する値を変更してエネルギーとCPUを増やす必要がありますが、Appleの設定と引き換えに時計を合わせる10.9で出荷されました。
に行くなら http://time.gov あなたは公式の時間(最大2秒まで)を見て、それを使ってあなたのシステムの時間が正しいかどうかを確かめることができます。これは公式のNIST時間であり、システム時間とは無関係に、ブラウザ内で独自の同期を実行することに注意してください(例として、 ここに time.govはうるう秒を処理しますが、OS Xは明らかに処理しません)。
High Sierra以降、ntpdシステムデーモンは、/ usr / libexec / timedを呼び出すtimedシステムデーモンに置き換えられました。
私が詳細を知るために私が見つけた最高の執行役は systemsetup
さまざまなフラグを付けて(rootとして実行)
[-getusingnetworktime] [-setusingnetworktime on | off]
[-getnetworktimeserver] [-setnetworktimeserver timeserver]
結果の出力は、はるかに冗長(=退屈)です。 ∂T/ドリフトの詳細はありません。
どうやら 時限 システムプリファレンス/ ntp.confファイルに複数のntp-serverが入力されている場合でも、1つのntp-server(最初にリストされたもの - WireShark / LittleSnitchで確認済み)を使用します。
さらに読む(あまり技術的ではない): 誰か時間がありますか? High Sierraによる時刻同期の変更
従来のntpdデーモンはまだ存在していますが、アンロードされています。 Terminal.appを入力してもロードできます。
sudo launchctl load [-F|-w] /System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist
SIP無効モード入り ntpq -p
それから再び働きます。
デーモンをSIP対応モードでロードするには、ファイルを/ Library / LaunchDaemons /にコピーします。
sudo cp /System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist /Library/LaunchDaemons/org.ntp.ntpd.plist
nanoまたは他のエディタでorg.ntp.ntpd-legacyからorg.ntp.ntpdにplistのラベルを変更します。
sudo nano /Library/LaunchDaemons/org.ntp.ntpd.plist
デーモンをロードします。
sudo launchctl load -w /Library/LaunchDaemons/org.ntp.ntpd.plist
デフォルトのHigh Sierraデーモンを使用して時間の詳細を取得するための優れたexecを見つけた場合、答えは更新されます。
あなたの時計がどのくらいうまく設定されているかについて信頼できる答えを得るために、デバッグモードでntpdateを実行してください:
ntpdate -d pool.ntp.org
これはしばらくの間旋回し、次のような行に終わります。
1 Apr 17:38:16 ntpdate[4711]: adjust time server 123.45.67.89 offset 0.000810 sec
この場合、これは私のローカルクロックが約810 µsオフになっていたことを意味していました(実際には、これは壮観ですが、100 msをかなり下回る値は同期が機能していることを示します)。
クロック同期をチェックするには、実行することを提案する答えと同じです ntpdate
デバッグモードでは、冗長出力を少なくするためにクエリモードで実行することもできます。
$ ntpdate -q pool.ntp.org
server 85.199.214.102, stratum 1, offset 0.006256, delay 0.05470
server 95.215.175.2, stratum 3, offset 0.005234, delay 0.05624
server 217.114.59.3, stratum 2, offset 0.007166, delay 0.06274
server 85.199.214.100, stratum 1, offset 0.006319, delay 0.05396
22 Jun 09:20:55 ntpdate[84112]: adjust time server 85.199.214.100 offset 0.006319 sec
$
これは、High Sierra 10.13.2を実行している私のMacのものです。 timed
NTPデーモンではなく( ntpdate
NTPデーモンを使用していないので、まだ動作します。