마지막 timedatectl 동기화/강제 동기화 시간을 즉시 가져옵니다.

마지막 timedatectl 동기화/강제 동기화 시간을 즉시 가져옵니다.

실제 시간과 1분 넘게 동기화되지 않는 Ubuntu 서버가 있습니다. timedatectl을 실행하면 다음을 얻습니다.

Local time: Tue 2018-04-24 14:47:57 MDT
Universal time: Tue 2018-04-24 20:47:57 UTC
RTC time: Tue 2018-04-24 20:47:57
Timezone: America/Denver (MDT, -0600)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
          Sun 2018-03-11 01:59:59 MST
          Sun 2018-03-11 03:00:00 MDT
Next DST change: DST ends (the clock jumps one hour backwards) at
          Sun 2018-11-04 01:59:59 MDT
          Sun 2018-11-04 01:00:00 MST

내 이해는 NTP 동기화를 사용해야 한다는 것입니다. ntp가 제대로 작동하지 않을 수 있습니다. ntpq -p를 실행하면 다음과 같은 결과가 나타납니다.

remote           refid      st t when poll reach   delay   offset  jitter
======================================================================
propjet.latt.ne .INIT.          16 u    - 1024    0    0.000    0.000   0.000
time-a-g.nist.g .INIT.          16 u    - 1024    0    0.000    0.000   0.000
linode227395.st .INIT.          16 u    - 1024    0    0.000    0.000   0.000
dev.smatwebdesi .INIT.          16 u    - 1024    0    0.000    0.000   0.000
pugot.canonical .INIT.          16 u    - 1024    0    0.000    0.000   0.000

마지막 동기화 시간과 서버를 알 수 있는 방법이 있습니까? 또한 문제를 해결하기 위해 지금 강제로 동기화하는 방법은 무엇입니까? 날짜를 수동으로 설정할 수는 있지만 완전히 올바르게 설정할 수는 없으며 실제로 동기화를 수정하고 싶습니다.

답변1

상태 확인

Ubuntu 16.04부터 systemd의 일부인 timesyncd가 이제 날짜/시간 동기화를 담당합니다. 다음 명령을 사용하여 상태를 확인할 수 있습니다 systemctl.

$ systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
   Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
           └─disable-with-time-daemon.conf
   Active: active (running) since Sun 2018-08-05 10:14:44 EDT; 11min ago
     Docs: man:systemd-timesyncd.service(8)
 Main PID: 3714 (systemd-timesyn)
   Status: "Synchronized to time server 108.59.2.24:123 (0.debian.pool.ntp.org)."
   CGroup: /system.slice/systemd-timesyncd.service
           └─3714 /lib/systemd/systemd-timesyncd

Aug 05 10:14:44 pi-hole systemd[1]: Starting Network Time Synchronization...
Aug 05 10:14:44 pi-hole systemd[1]: Started Network Time Synchronization.
Aug 05 10:14:45 pi-hole systemd-timesyncd[3714]: Synchronized to time server 108.59.2.24:123 (0.debian.pool.ntp.org).

또는 다음을 통해 journalctl:

$ journalctl -u systemd-timesyncd
-- Logs begin at Thu 2016-11-03 13:16:42 EDT, end at Sun 2018-08-05 10:20:01 EDT. --
Aug 05 10:14:44 pi-hole systemd[1]: Starting Network Time Synchronization...
Aug 05 10:14:44 pi-hole systemd[1]: Started Network Time Synchronization.
Aug 05 10:14:45 pi-hole systemd-timesyncd[3714]: Synchronized to time server 108.59.2.24:123 (0.debian.pool.ntp.org).

다음을 시청할 수도 있습니다 systemd/clock.

$ stat /var/lib/systemd/clock
  File: /var/lib/systemd/clock
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: b302h/45826d    Inode: 18750       Links: 1
Access: (0644/-rw-r--r--)  Uid: (  100/systemd-timesync)   Gid: (  103/systemd-timesync)
Access: 2018-08-05 10:22:13.838262405 -0400
Modify: 2018-08-05 10:22:13.838262405 -0400
Change: 2018-08-05 10:22:13.838262405 -0400
 Birth: -

파일의 액세스/수정/변경 시간은 systemd-timesynd가 파일을 마지막으로 건드린 시간을 표시합니다.

강제 동기화

동기화를 직접 강제하는 방법은 없는 것 같습니다. systemd-timesyncd서비스를 다시 시작하면 실제로 재동기화가 트리거됩니다.

$ systemctl restart systemd-timesyncd

로그에서 이를 확인할 수 있습니다.

$ journalctl -u systemd-timesyncd
-- Logs begin at Thu 2016-11-03 13:16:42 EDT, end at Sun 2018-08-05 10:44:37 EDT. --
Aug 05 10:14:44 pi-hole systemd[1]: Starting Network Time Synchronization...
Aug 05 10:14:44 pi-hole systemd[1]: Started Network Time Synchronization.
Aug 05 10:14:45 pi-hole systemd-timesyncd[3714]: Synchronized to time server 108.59.2.24:123 (0.debian.pool.ntp.org).
Aug 05 10:44:37 pi-hole systemd[1]: Stopping Network Time Synchronization...
Aug 05 10:44:37 pi-hole systemd[1]: Stopped Network Time Synchronization.
Aug 05 10:44:37 pi-hole systemd[1]: Starting Network Time Synchronization...
Aug 05 10:44:37 pi-hole systemd[1]: Started Network Time Synchronization.
Aug 05 10:44:37 pi-hole systemd-timesyncd[4157]: Synchronized to time server 208.75.88.4:123 (0.debian.pool.ntp.org).

마지막 줄은 재부팅에서 나온 것입니다.

제어 간격

systemd-timesyncd구성 파일의 다음 속성을 통해 NTP 서버가 폴링되는 간격을 제어할 수 있습니다 /etc/systemd/timesyncd.conf.

   PollIntervalMinSec=, PollIntervalMaxSec=

   The minimum and maximum poll intervals for NTP messages. Each setting takes a time 
   value (in seconds). PollIntervalMinSec= must not be smaller than 16 seconds. 
   PollIntervalMaxSec= must be larger than PollIntervalMinSec=. PollIntervalMinSec= 
   defaults to 32 seconds, and PollIntervalMaxSec= defaults to 2048 seconds.

위 내용은 2017년 말에 추가된 것으로 보입니다.timesync: 폴링 간격을 구성 가능하게 만듭니다 #7268.

인용하다

답변2

@slm에 좋은 정보가 많아요답변, 그러나 이는 Debian에만 해당되는 것으로 보이며 OP는 Ubuntu에서 마지막 동기화 시간을 알고 싶어합니다. 22.04에서 가장 좋은 옵션은 다음 두 파일 중 하나인 것 같습니다 ls.stat

/var/lib/systemd/timesync/clock
/run/systemd/timesync/synchronized

마지막 동기화 시간이 제공되지만 30~40분마다 변경될 수 있습니다.

내 시스템을 실행하면 systemctl status systemd-timesyncd.service"시간 서버와 동기화" 대신 "시간 서버와 초기 동기화" 상태가 표시됩니다. 이는 도움이 되지 않으며 시스템이 한 번만 동기화되는지 궁금하게 만듭니다.

journalctl -u systemd-timesyncd마지막 부팅 중에 발생한 일만 표시되며 그 내용도 표시되지 않을 수도 있습니다.

OP의 의견은 다음과 같습니다.

나에게 있어 ntp가 작동하지 않는 이유는 방화벽이 NTP에 필요한 높은 번호의 포트에서 나가는 트래픽을 차단했기 때문입니다.

정말 말이 안 돼요. 현대 시스템에서는 timedatectl그럴 필요가 없습니다.어느방화벽은 NTP를 인식하고 포트 123에 대한 UDP 응답을 추적할 수 있으므로 명시적으로 열린 포트입니다. 방금 확인한 한 시스템에서 방화벽은 UDP 123(모든 IP 주소로부터)으로 들어오는 패킷을 차단하고 있지만 NTP는 계속 업데이트 중입니다.

관련 정보