웹사이트 검색

Ubuntu 18.04에서 시간 동기화를 설정하는 방법


소개

정확한 시간 기록은 최신 소프트웨어 배포의 중요한 구성 요소가 되었습니다. 로그가 올바른 순서로 기록되는지 또는 데이터베이스 업데이트가 올바르게 적용되는지 여부에 관계없이 동기화되지 않은 시간은 오류, 데이터 손상 및 기타 디버그하기 어려운 문제를 유발할 수 있습니다.

Ubuntu 18.04에는 시간 동기화 기능이 내장되어 있으며 systemd의 timesyncd 서비스를 사용하여 기본적으로 활성화됩니다. 이 기사에서는 몇 가지 기본 시간 관련 명령을 살펴보고 timesyncd가 활성화되어 있는지 확인하고 대체 네트워크 시간 서비스를 설치하는 방법을 알아봅니다.

전제 조건

이 자습서를 시작하기 전에 이 Ubuntu 18.04 서버 설정 자습서에 설명된 대로 루트가 아닌 sudo 활성화 사용자가 있는 Ubuntu 18.04 서버가 필요합니다.

기본 시간 명령 탐색

서버의 시간을 알아내는 가장 기본적인 명령은 날짜입니다. 모든 사용자는 다음 명령을 입력하여 날짜와 시간을 출력할 수 있습니다.

  1. date
Output
Tue Jul 10 14:48:52 UTC 2018

대부분의 경우 서버는 위의 출력에서 강조 표시된 대로 UTC 표준 시간대로 기본 설정됩니다. UTC는 경도 0도에서의 시간인 Coordinated Universal Time입니다. 세계 표준시를 일관되게 사용하면 인프라가 여러 표준 시간대에 걸쳐 있을 때 혼란이 줄어듭니다.

요구 사항이 다르고 시간대를 변경해야 하는 경우 timedatectl 명령을 사용하여 변경할 수 있습니다.

먼저 사용 가능한 시간대를 나열합니다.

  1. timedatectl list-timezones

시간대 목록이 화면에 인쇄됩니다. 페이지 아래로 이동하려면 SPACE를 누르고 위로 이동하려면 b를 누르십시오. 올바른 시간대를 찾으면 기록해 둔 다음 q를 입력하여 목록을 종료하십시오.

이제 timedatectl set-timezone으로 시간대를 설정하고 아래 강조 표시된 부분을 목록에서 찾은 시간대로 바꾸십시오. 이렇게 변경하려면 sudotimedatectl과 함께 사용해야 합니다.

  1. sudo timedatectl set-timezone America/New_York

date를 다시 실행하여 변경 사항을 확인할 수 있습니다.

  1. date
Output
Tue Jul 10 10:50:53 EDT 2018

표준 시간대 약어는 새로 선택한 값을 반영해야 합니다.

시계를 확인하고 시간대를 설정하는 방법을 알았으니 이제 시간이 제대로 동기화되고 있는지 확인하겠습니다.

timedatectl로 timesyncd 제어

최근까지 대부분의 네트워크 시간 동기화는 Network Time Protocol 데몬 또는 ntpd에 의해 처리되었습니다. 이 서비스는 지속적이고 정확한 시간 업데이트를 제공하는 다른 NTP 서버 풀에 연결됩니다.

Ubuntu의 기본 설치는 이제 ntpd 대신 timesyncd를 사용합니다. timesyncd는 동일한 시간 서버에 연결하고 거의 동일한 방식으로 작동하지만 더 가볍고 systemd 및 낮은 수준의 Ubuntu 작업과 더 통합됩니다.

인수 없이 timedatectl을 실행하여 timesyncd의 상태를 쿼리할 수 있습니다. 이 경우 sudo를 사용할 필요가 없습니다.

  1. timedatectl
Output
Local time: Tue 2018-07-10 10:54:12 EDT Universal time: Tue 2018-07-10 14:54:12 UTC RTC time: Tue 2018-07-10 14:54:12 Time zone: America/New_York (EDT, -0400) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no

그러면 현지 시간, 세계 표준시(UTC 시간대에서 전환하지 않은 경우 현지 시간과 동일할 수 있음) 및 일부 네트워크 시간 상태 정보가 인쇄됩니다. System clock synchronized: yes는 시간이 성공적으로 동기화되었음을 나타내고 systemd-timesyncd.service active: yes는 timesyncd가 활성화되어 실행 중임을 나타냅니다.

timesyncd가 활성화되어 있지 않으면 timedatectl을 사용하여 켭니다.

  1. sudo timedatectl set-ntp on

timedatectl을 다시 실행하여 네트워크 시간 상태를 확인하십시오. 실제 동기화가 발생하는 데 1분 정도 걸릴 수 있지만 결국에는 Network time on:NTP 동기화됨: 모두 yes로 표시되어야 합니다.

ntpd로 전환

timesyncd는 대부분의 목적에 적합하지만 시간의 가장 작은 변동에도 매우 민감한 일부 응용 프로그램은 ntpd가 더 나은 서비스를 제공할 수 있습니다. 더 정교한 기술을 사용하여 지속적으로 점진적으로 시스템 시간을 추적하기 때문입니다.

ntpd를 설치하기 전에 timesyncd를 꺼야 합니다.

  1. sudo timedatectl set-ntp no

timesyncd가 꺼져 있는지 확인합니다.

  1. timedatectl

출력에서 systemd-timesyncd.service active: no를 찾습니다. 이는 timesyncd가 중지되었음을 의미합니다. 이제 apt를 사용하여 ntp 패키지를 설치할 수 있습니다.

  1. sudo apt update
  2. sudo apt install ntp

ntpd는 설치 후 자동으로 시작됩니다. 상태 정보에 대해 ntpd를 쿼리하여 모든 것이 작동하는지 확인할 수 있습니다.

  1. ntpq -p
Output
remote refid st t when poll reach delay offset jitter ============================================================================== 0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000 +ec2-52-0-56-137 216.239.35.0 2 u 16 64 1 7.872 -2.137 1.485 +66.220.10.2 129.6.15.30 2 u 12 64 1 65.204 3.740 2.686 +block.steinhoff 209.51.161.238 2 u 11 64 1 33.364 1.710 3.586 +eterna.binary.n 216.229.0.50 3 u 11 64 1 35.330 2.821 2.839 +2604:a880:800:1 209.51.161.238 2 u 14 64 1 0.394 0.386 2.462 +ec2-52-6-160-3. 130.207.244.240 2 u 11 64 1 8.150 2.050 3.053 +mx.danb.email 127.67.113.92 2 u 13 64 1 63.868 1.539 2.240 *hydrogen.consta 129.6.15.28 2 u 12 64 1 2.989 1.755 2.563 +ntp-3.jonlight. 127.67.113.92 2 u 10 64 1 64.561 2.122 3.593 +undef.us 45.33.84.208 3 u 12 64 1 33.508 1.631 3.647 +ntp-3.jonlight. 127.67.113.92 2 u 8 64 1 64.253 2.645 3.174 2001:67c:1560:8 145.238.203.14 2 u 22 64 1 71.155 -1.059 0.000 +test.diarizer.c 216.239.35.4 2 u 11 64 1 64.378 4.648 3.244 2001:67c:1560:8 145.238.203.14 2 u 18 64 1 70.744 -0.964 0.000 alphyn.canonica 132.246.11.231 2 u 17 64 1 7.973 -0.170 0.000 +vps5.ctyme.com 216.218.254.202 2 u 10 64 1 65.874 1.902 2.608

ntpq는 ntpd용 쿼리 도구입니다. -p 플래그는 ntpd가 연결된 NTP 서버(또는 피어)에 대한 정보를 요청합니다. 출력은 약간 다르지만 기본 Ubuntu 풀 서버와 몇 가지 다른 서버를 나열해야 합니다. ntpd가 연결을 설정하는 데 몇 분 정도 걸릴 수 있습니다.

결론

이 기사에서는 시스템 시간을 보고, 표준 시간대를 변경하고, Ubuntu의 기본 timesyncd로 작업하고, ntpd를 설치하는 방법을 보여 주었습니다. 여기에서 다룬 것보다 더 정교한 시간 기록 요구 사항이 있는 경우 전 세계 NTP 인프라의 대부분을 제공하는 글로벌 자원 봉사자 그룹인 NTP 풀 프로젝트를 참조할 수 있습니다.