timedatectl 및 chronyd 를 사용하여 정확한 시스템 시간 유지 관리
이 단계에서는 timedatectl 명령어를 사용하여 정확한 시스템 시간을 유지하는 방법과 chronyd 서비스의 역할을 배우게 됩니다. 정확한 시간 관리는 로깅, 보안 및 많은 네트워크 서비스에 매우 중요합니다.
1. timedatectl을 사용하여 시스템 시간 및 시간대 관리:
timedatectl 명령어는 로컬 시간, 협정 세계시 (UTC), RTC 시간, 시간대 및 NTP 동기화 상태를 포함하여 현재 시간 관련 시스템 설정에 대한 개요를 제공합니다.
시스템의 현재 시간 설정을 확인해 보겠습니다.
timedatectl
다음과 유사한 출력을 볼 수 있습니다 (정확한 시간과 날짜는 현재 시스템 시간을 반영합니다).
Local time: Sun 2025-06-15 21:46:11 EDT
Universal time: Mon 2025-06-16 01:46:11 UTC
RTC time: Mon 2025-06-16 01:46:10
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
list-timezones 옵션을 사용하여 사용 가능한 모든 시간대를 나열할 수 있습니다.
timedatectl list-timezones | less
q를 눌러 less를 종료합니다. 시간대는 IANA(Internet Assigned Numbers Authority) 시간대 데이터베이스를 기반으로 명명되며, 일반적으로 대륙/대양, 다음으로 가장 큰 도시를 기준으로 합니다.
시스템의 시간대를 변경하려면 set-timezone 옵션을 사용합니다. 예를 들어, 시간대를 America/Phoenix로 변경해 보겠습니다. 이를 위해서는 sudo 권한이 필요합니다.
sudo timedatectl set-timezone America/Phoenix
이제 변경 사항을 확인합니다.
timedatectl
시간대가 America/Phoenix로 업데이트된 것을 볼 수 있습니다.
set-time 옵션을 사용하여 시스템의 현재 시간을 수동으로 설정할 수도 있습니다. 형식은 "YYYY-MM-DD hh:mm:ss"이지만 날짜 또는 시간을 생략할 수 있습니다. 시간을 09:00:00으로 설정해 보겠습니다 (현재 날짜 기준).
sudo timedatectl set-time 09:00:00
시간 변경을 확인합니다.
timedatectl
마지막으로, set-ntp 옵션은 자동 시간 조정을 위해 NTP 동기화를 활성화하거나 비활성화합니다. 인수로 true 또는 false를 사용합니다. 잠시 NTP 동기화를 비활성화해 보겠습니다 (나중에 다시 활성화합니다).
sudo timedatectl set-ntp false
NTP 서비스 상태를 확인합니다.
timedatectl
NTP service: inactive가 표시됩니다.
2. chronyd 서비스 이해 및 구성:
chronyd 서비스는 시스템의 RTC(Real-Time Clock) 를 NTP(Network Time Protocol) 서버와 동기화하여 정확하게 유지하는 데몬입니다. Red Hat Enterprise Linux 의 기본 NTP 클라이언트입니다.
chronyd의 구성 파일은 /etc/chrony.conf입니다. 기본적으로 공용 NTP 서버를 사용합니다. 실제 시나리오에서는 내부 NTP 서버를 사용하도록 구성할 수 있습니다.
기본 chrony.conf 파일을 살펴보겠습니다.
cat /etc/chrony.conf
NTP 소스를 정의하는 server 또는 pool로 시작하는 줄을 볼 수 있습니다. iburst 옵션은 보다 정확한 초기 동기화를 위해 4 번의 측정을 빠르게 수행하므로 권장됩니다.
NTP 시간 소스의 stratum은 품질을 나타냅니다. stratum 0은 기준 시계이고, stratum 1은 기준 시계에 직접 연결되며, stratum 2는 stratum 1 서버에서 동기화됩니다.
이 컨테이너 환경에서는 systemctl을 사용할 수 없으므로 구성 변경 사항을 적용하기 위해 chronyd를 직접 다시 시작할 수 없습니다. 그러나 파일을 수정하여 구성 변경을 시뮬레이션할 수 있습니다.
timedatectl을 사용하여 NTP 동기화를 다시 활성화해 보겠습니다.
sudo timedatectl set-ntp true
NTP 서비스 상태를 다시 확인합니다.
timedatectl
NTP service: active가 표시됩니다.
chronyc 명령어는 chronyd 서비스의 클라이언트 역할을 합니다. 이를 사용하여 동기화 상태를 모니터링할 수 있습니다. chronyc sources 명령어는 현재 시간 소스와 해당 동기화 상태를 표시합니다.
chronyc sources -v
출력에는 NTP 소스에 대한 세부 정보가 표시됩니다. S(Source state) 필드의 별표 *는 chronyd가 현재 동기화된 소스를 나타냅니다.
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 100.100.61.88 1 5 377 16 +1824us[+2180us] +/- 85ms
...output omitted...
이 출력은 시스템이 NTP 서버와 시간을 적극적으로 동기화하고 있음을 확인합니다.