Debian 8. 호스트 시스템, 가상화 없음. 시간 동기화 시스템이 비활성화되었습니다. ntp, rdate, sdwdate가 설치되지 않았습니다.
# timedatectl
Local time: Thu 2019-08-22 14:02:05 +03
Universal time: Thu 2019-08-22 11:02:05 UTC
RTC time: Thu 2019-08-22 11:00:10
Time zone: Europe/Minsk (+03, +0300)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
시간을 설정한 후 1초가 지나면 몇 분씩 변경됩니다.
예:
# ntpdate 0.ru.pool.ntp.org && date && sleep 1 && date
22 Aug 14:02:28 ntpdate[31388]: step time server 195.211.77.68 offset -115.009072 sec
Thu Aug 22 14:02:28 +03 2019
Thu Aug 22 14:04:24 +03 2019
# hwclock --hctosys && date && sleep 1 && date
Thu Aug 22 14:01:51 +03 2019
Thu Aug 22 14:03:46 +03 2019
# date -s "2019-08-22 14:04:53" && date && sleep 1 && date
Thu Aug 22 14:04:53 +03 2019
Thu Aug 22 14:04:53 +03 2019
Thu Aug 22 14:06:49 +03 2019
수동으로 변경하면 로그에 메시지가 나타납니다.
Aug 22 16:30:50 wisi systemd[1200]: Time has been changed
Aug 22 16:30:50 wisi systemd[1]: Time has been changed
Aug 22 16:32:45 wisi systemd[1200]: Time has been changed
Aug 22 16:32:45 wisi systemd[1]: Time has been changed
여기서 처음 두 줄은 수동 시간 변경에 관한 것이고, 두 번째 두 줄은 시스템이 시간을 "조정"했다는 사실에 관한 것입니다.
# ps afx | grep [1]200
1200 ? Ss 0:06 /lib/systemd/systemd --user
비활성화 시도타이머.대상, 시간-동기화.대상, systemd-timesyncd효과가 없습니다.
tcpdump 로그를 보면 "조정" 시 123번째 포트에 요청이 없는 것을 확인할 수 있습니다. "조정" 시간은 일정하지 않고 변화하며, 1분에서 5분까지 관찰되었습니다.
그 원인은 무엇이며 어떻게 제거합니까?
UPD1: @세스,
변경 후 timedatectl을 보는 것은 흥미로울 것입니다.
# timedatectl && ntpdate 0.ru.pool.ntp.org && timedatectl && sleep 1 && timedatectl
Local time: Fri 2019-08-23 14:10:57 +03
Universal time: Fri 2019-08-23 11:10:57 UTC
RTC time: Fri 2019-08-23 11:09:19
Time zone: Europe/Minsk (+03, +0300)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
23 Aug 14:09:25 ntpdate[19282]: step time server 192.36.143.130 offset -98.695079 sec
Local time: Fri 2019-08-23 14:09:25 +03
Universal time: Fri 2019-08-23 11:09:25 UTC
RTC time: Fri 2019-08-23 11:09:26
Time zone: Europe/Minsk (+03, +0300)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
Local time: Fri 2019-08-23 14:11:05 +03
Universal time: Fri 2019-08-23 11:11:05 UTC
RTC time: Fri 2019-08-23 11:09:27
Time zone: Europe/Minsk (+03, +0300)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
효과가 없다는 게 무슨 뜻인가요? 조정이 올바른지 여부를 매번 확인하셨나요?
예, 물론 기본 서비스가 활성화되면 문제가 시작됩니다. 테스트를 위해 중지하려고 시도했지만 결과에는 영향을 미치지 않습니다.
UPD2
테스트로 모든 네트워크 케이블을 분리해봤습니다. 모든 것이 이전과 같습니다. 그러나 이제 모든 "네트워크" 가정을 제외할 수 있습니다.
답변1
Oskam은 시간을 이전에 설정한 값으로 되돌립니다.
https://github.com/gfto/oscam/blob/2780c48789c8e1427df4078ea9b06e0b51594bbc/oscam-time.c
#if defined(CLOCKFIX)
if (tv.tv_sec > lasttime.tv_sec || (tv.tv_sec == lasttime.tv_sec && tv.tv_usec >= lasttime.tv_usec)){ // check for time issues!
lasttime = tv; // register this valid time
}
else
{
tv = lasttime;
settimeofday(&tv, NULL); // set time back to last known valid time
//fprintf(stderr, "*** WARNING: BAD TIME AFFECTING WHOLE OSCAM ECM HANDLING, SYSTEMTIME SET TO LAST KNOWN VALID TIME **** \n");
}