답변:
모하비는 여전히을 사용 timed
하지만 ntpdate
도우미 ntpq
는 제거됩니다. 시스템 시간을 확인하고 업데이트하려면 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
.
timed는 NTP와 같은 기술을 통해 클록을 기준 클록과 동기화하여 시스템 클록 정확도를 유지합니다. 입력은 시간 내에 통합되어 사전 예방 적 시간 작업을 예약하기 위해 불확실성을 계산합니다. timed는 전원 / 배터리 상태도 알고 있습니다.
timed는 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의 기록을 알지 못합니다.
매뉴얼 페이지에 언급 된대로 시간이 지정된 바이너리를 직접 실행하지 마십시오.
timed는 인수를 취하지 않으며 사용자는 수동으로 실행하지 않아야합니다.
10.13의 ntpd, timed 및 chronyd 게시물의 Apple Developer Forums 사용자 granada29에 따르면 timed는 다음을 수행합니다.
timed는 간단한 sntp 클라이언트 인 것처럼 보입니다. 즉 NTP를 주기적으로 폴링하고 (15 분) settimeofday () 시스템 호출을 사용하여 시스템 시계를 설정합니다. 시계를 뒤로 밟지 않는 것이 영리하다고 생각하지만 말할 방법이 없습니다.
pacemaker
macOS에서 시간을 관리하는 데몬입니다. adjtime
의 내용에 따라 시계를 조정하는 데 사용 됩니다 /var/db/ntp.drift
.
ntp.drift
예를 들어, 내 파일에는 다음 내용이 포함되어 있습니다. 예를 들어 내 파일 의 내용을 보면 시계의 '끄기'상태를 확인할 수 있습니다 .
-23.640
즉, 시계는 원래 시간과 -23.64 PPM 떨어져 있습니다. 이 숫자의 단위는 PPM 또는 Part Per Million입니다. 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%
세부 사항은 참조에 도움이 될 수 있지만 다른 대답은 최신 macOS 시간 표시 세부 사항을 훌륭하게 다루고 있습니다.
첫 번째 단계는 시간이 설정되어 있는지 확인하는 것입니다.
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 초마다 한 번 이상이며 클럭 오류가 0.1 밀리 초 미만인 경우 훨씬 적게 조정됨을 나타냅니다.
오프셋이 초 이상인 경우 사용하는 시간 서버를 변경하거나 더 많은 에너지와 CPU를 사용하기 위해 페이스 메이커에 사용 된 값을 변경하려고하지만 Apple의 설정과 교환하여 실제 시간에 더 가까운 시계를 가질 수 있습니다 10.9와 함께 제공됩니다.
당신이 가면 http://time.gov 당신은 (두 번째까지) 공식 시간을 볼 수 있으며, 사용자의 시스템 시간이 정확한지 아닌지 확인하기 위해 그것을 사용합니다. 이 독립적으로 시스템 시간 (예를 들어, 당신이 볼 수있는, 공식 NIST 시간이며, 브라우저에 자체 동기화를 않습니다 여기에 OS X 분명히하지 않는 반면 time.gov 핸들, 초 도약 있음).
High Sierra로 시작하여 ntpd 시스템 데몬은 / usr / libexec / timed를 호출하는 시간 제한 시스템 데몬으로 대체되었습니다.
세부 정보를 얻는 데 가장 적합한 임원 systemsetup
은 다양한 플래그를 사용하여 (루트로 실행)입니다.
[-getusingnetworktime] [-setusingnetworktime on | off]
[-getnetworktimeserver] [-setnetworktimeserver timeserver]
결과 출력은 훨씬 덜 장황합니다 (= 보링). 예 : ∂T / 드리프트 세부 사항 없음.
분명히 시간이 초과 여러 가지가 시스템 환경 설정 / NTP를 파일에 입력하는 경우에도 - 용도를 하나의 NTP 서버 (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 -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
$
이것은 timed
NTP 데몬 대신 실행되는 High Sierra 10.13.2를 실행 하는 Mac에서 가져온 것입니다 (NTP 데몬을 ntpdate
사용하지 않기 때문에 여전히 작동합니다).
sntp
작동했습니다./var/db/ntp-kod
오류가 자동 동기화에 문제를 일으키는 지 궁금합니다 . 몇 개월 후에 오류를 만들어 다시 확인해 보겠습니다. =)