
systemtimectl, ntpd, ntpdate, rdate, hwclock 의 개념 과 시스템 시간 차이 개선 방안
* 최근 시스템들은 개인정보 보호를 위해서 망분리를 하고 있기 때문에 일반적인 시스템 시간 관리는 많은 문제를 야기 합니다. 내부적으로 NPT 서버를 구성하고 내부 시스템의 시간을 동기화 하는 것은 금융과 같이 시간을 기반으로 하는 비즈니스에서는 치명적인 관리 포인트 입니다.
이번 연재에서는 일반적인 시간 관리의 방법보다는 시간 관리의 원리 측면에서 정리를 하고자 합니다.
Red Hat 계열 리눅스에서 시간 관리를 위해 NTP(네트워크 타임 프로토콜)와 Chrony 데몬을 사용합니다.
NTP는 네트워크를 통해 표준 시간원과 주기적으로 통신하며 시스템 클록을 미세 조정하는 프로토콜입니다. Chrony는 NTP 클라이언트 및 서버로, 네트워크 상태에 맞춰 시간을 동기화하는 데 매우 효율적입니다.
Red Hat Enterprise Linux 8부터 NTPd 대신 chronyd 데몬을 이용합니다. nptd 패키지 대신 chronyd 패키지를 사용할 수 있습니다.
NTPv4(RFC 5905) 서버 또는 피어로서 네트워크의 다른 컴퓨터에 시간 서비스를 제공합니다.
- 리눅스 시스템의 시간은 System Clock이 있고, ntpd 또는 chronyd 데몬이 이를 관리합니다.
- 오른쪽에는 Hardware Clock(RTC)이 있으며, 부팅 시 시스템 클럭으로 초기화되고 종료 시 hwclock --systohc로 갱신됩니다.
- 중앙에는 timedatectl과 hwclock 명령어가 두 시계를 연결하는 흐름을 보여줍니다
다음 두가지 문제를 반드시 체크 하기 바랍니다.
1. 재부팅을 하고 나면 시스템 시간이 달라진다.
- h/w시간과 Os의 시간이 달라서**
2. Cron으로 ntpdate로 시간 갱신이 안된다.
- ntp 데몬이 작동 중인 상태에서 ntpdate 명령은 오류가 난다.**
☆ nptd는 시스템시간을 관리하는 데몬으로 재부팅시 hwclock을 기반으로 재부팅이되며 , 재부팅시 시간의 변화로 인한 오류가 발생 가능하므로 하드웨어 시간도 정기적인 동기화를 요구합니다.
🕰️ hwclock --systohc 개념:
- hwclock --hctosys는 하드웨어 시계를 시스템 시간으로 복구하는 방법입니다.
- System Clock → Hardware Clock 동기화 하는 명령으로 현재 OS가 관리하는 시스템 시간(System Clock)을 하드웨어 시계(RTC, Real-Time Clock)에 저장합니다.
- 즉, "지금 OS가 맞춰둔 정확한 시간을 메인보드 배터리로 유지되는 RTC에 기록"하는 동작입니다.
ㅁ 시스템 시간의 동기화가 필요한 이유 : hwclock --systohc
(1) 리눅스 시스템 재부팅 시 date 초기화 문제 방지 (hwclock 명령)
- 리눅스는 부팅할 때 RTC 값을 읽어와서 시스템 시간을 초기화합니다.
- 만약 RTC가 틀린 시간을 가지고 있으면, 부팅 직후 시스템 시간이 잘못 설정됩니다.
- ntpd나 chronyd가 다시 교정하긴 하지만, 그 사이 로그 타임스탬프나 서비스 시작 시간이 꼬일 수 있습니다.
(2) 정전/네트워크 장애 대비
- NTP 서버에 연결되지 못하는 상황(네트워크 장애, 방화벽 차단 등)에서는 RTC가 유일한 시간 기준이 됩니다.
- RTC가 정확하지 않으면 시스템이 잘못된 시간을 계속 사용하게 됩니다.
- 리눅스 시간 Gap(차이) 최소화
- ntpd/chronyd는 시스템 클럭만 맞추고 RTC는 자동 갱신하지 않습니다.
- 따라서 주기적으로 hwclock --systohc를 실행해 RTC를 최신 상태로 유지해야, 시스템 클럭과 RTC 간의 차이가 줄어듭니다.
Red Hat 계열 리눅스 서버에서의 시간 관리 방법
— systemtimectl, ntpd, ntpdate, rdate, hwclock의 개념과 Gap 문제를 해결 방안
Red Hat 계열 리눅스에서 시간 관리를 위해 사용되는 주요 명령어와 도구들
—timedatectl, ntpd, ntpdate, chronyd , rdate, hwclock—의 개념, 특징, 사용 방법
🕰️1. 시간 관련 구성 요소
- System Clock (시스템 클럭)
- OS가 사용하는 현재 시간 (
date명령). ntpd또는chronyd가 NTP 서버와 동기화하여 정확히 유지.
- OS가 사용하는 현재 시간 (
- Hardware Clock (RTC, Real-Time Clock)
- 메인보드에 있는 하드웨어 시계 (
hwclock명령). - 전원이 꺼져도 배터리로 유지.
- 부팅 시 RTC → 시스템 클럭으로 복사, 종료 시 시스템 클럭 → RTC로 복사.
- 메인보드에 있는 하드웨어 시계 (
- 시스템 시간 (System Time)
- 시스템 클럭과 동일한 의미로 사용됨 .
- OS가 인식하는 현재 시간. 대부분 시스템 클럭을 지칭
- 시스템 시간 관리 (System Time Management)
- 시스템/하드웨어 클럭을 정확히 유지하는 작업 .
- ntpd, chronyd, hwclock, timedatectl 등으로 관리
🕰️ 2. 리눅스 시간 관리 도구 개념 및 사용법 정리
| 도구 | 개념 | 특징 | 사용 예시 |
|---|---|---|---|
| timedatectl | systemd 기반 시간 설정 관리 도구 | RHEL 7 이상에서 사용. NTP 활성화, 시간대 변경, RTC 설정 가능 | timedatectl set-ntp true timedatectl status timedatectl set-timezone Asia/Seoul |
| ntpd | NTP(Network Time Protocol) 데몬 | 시스템 클럭을 NTP 서버와 지속적으로 동기화. RHEL 6 이하에서 주로 사용 | ntpd -gq (초기 동기화) systemctl start ntpd |
| ntpdate | NTP 서버와 1회 시간 동기화 | ntpd와 병행 사용 불가. 데몬 없이 단발성 동기화에 적합 |
ntpdate -u pool.ntp.org ntpdate -q ntp.example.com |
| chronyd | ntpd 대체, 빠르고 정확한 동기화 | chronyc tracking systemctl start chronyd | |
| rdate | 원격 서버에서 시간 받아오기 (TCP 기반) | 오래된 방식. 보안 취약점 많아 현대 시스템에서는 비권장 | rdate -s time.bora.net |
| hwclock | 하드웨어 클럭(RTC) 관리 도구 | 시스템 클럭과 RTC 간 동기화. 부팅/종료 시 RTC 갱신에 사용 | hwclock --systohc hwclock --hctosys hwclock --show |
- RHEL 7 이상: chronyd + timedatectl로 자동 관리 가능
- RHEL 6 이하: ntpd + cron으로 hwclock --systohc 주기적 실행 필요
- RTC 갱신 필수: 시스템 클럭이 정확하더라도 RTC가 틀리면 재부팅 시 문제가 발생
🔍3. 도구별 상세 설명
timedatectl, ntpd, ntpdate, chronyd, rdate, hwclock 여섯 가지 명령어의 개념, 동작 원리, 사용 방법을 Red Hat 계열 리눅스 기준으로 정리
🕰️ 리눅스 시간 관리 명령어 정리
1. timedatectl
- 개념: systemd 기반의 시간 관리 명령어 (RHEL 7 이상).
- 원리: systemd의
systemd-timesyncd또는chronyd와 연계하여 시스템 클럭과 RTC를 관리. - 특징:
- NTP 동기화 활성/비활성 제어
- 시간대(Timezone) 변경
- RTC와 시스템 클럭 관계 설정
- 사용 예시:
timedatectl status # 현재 시간/동기화 상태 확인 timedatectl set-ntp true # NTP 동기화 활성화 timedatectl set-timezone Asia/Seoul timedatectl set-time "2026-01-02 15:00:00"
2. ntpd
- 개념: NTP(Network Time Protocol) 데몬 (RHEL 6 이하 기본 설치).
- 원리: NTP 서버와 지속적으로 통신하여 시스템 클럭을 보정.
- 특징:
- 시스템 클럭을 NTP 서버와 지속적으로 동기화
- 장기적으로 시스템 시간을 안정적으로 유지
- 초기 오차가 큰 경우
-gq옵션으로 강제 동기화 가능
- 사용 예시:
ntpd -gq # 초기 강제 동기화 후 종료 systemctl start ntpd # ntpd 데몬 실행
3. ntpdate
- 개념: NTP 서버와 1회성 단발성 시간 동기화 명령어.
- 주의:
ntpd와 병행 사용 불가 (포트 충돌) - 원리: NTP 서버에 요청을 보내 현재 시간을 받아 시스템 클럭을 즉시 맞춤.
- 특징:
- 데몬 없이 NTP서버와 단발성 시간 동기화
ntpd와 병행 사용 불가 (포트 충돌)-u옵션으로 임시 포트 사용 가능
- 사용 예시:
ntpdate -u pool.ntp.org # 단발성 동기화 ntpdate -q ntp.example.com # 시간 확인만
4. chronyd
- 개념: RHEL 7 이상에서 기본 제공되는 NTP 동기화 데몬.
- 원리: NTP 서버와 빠르고 정확하게 동기화, 네트워크 불안정 환경에서도 안정적.
- 특징:
- ntpd보다 빠른 초기 동기화
- 네트워크가 불안정해도 보정 능력이 뛰어남
- systemd와 연계 (
timedatectl set-ntp true)
- 사용 예시:
# 설치 sudo dnf install chrony -y sudo systemctl enable --now chronyd # 기동/종료 systemctl start chronyd systemctl stop chronyd # 작동 확인 chronyc tracking # 동기화 상태 확인 chronyc makestep # 즉시 시간 보정 timedatectl status # 현재 시간/동기화 상태 확인
5. rdate
- 개념: 원격 서버에서 TCP 기반으로 시간을 가져오는 구식 명령어.
- 원리: 지정된 시간 서버에 접속해 현재 시간을 받아 시스템 클럭을 맞춤.
- 특징:
- 보안 취약점 많음 (암호화 없음)
- TCP 기반으로 원격 시간 서버에서 시간 수신
- 현대 시스템에서는 거의 사용하지 않음
- 사용 예시:
rdate -s time.bora.net # 원격 서버 시간으로 설정
6. hwclock
- 개념: 하드웨어 클럭(RTC, Real-Time Clock)을 관리하는 리눅스 명령어.
- 원리: 시스템 클럭과 RTC 간의 동기화 수행.
- 특징:
- 하드웨어 클럭(RTC) 확인 및 설정
- 시스템 클럭과 RTC 간 동기화 : 시스템 클럭 ↔ RTC 간 동기화
- 사용 예시:
hwclock --show # RTC 확인 hwclock --systohc # 시스템 클럭 → RTC hwclock --hctosys # RTC → 시스템 클럭
📊 요약 비교
| 명령어 | 개념 | 원리 | 특징 | 사용 예시 |
|---|---|---|---|---|
| timedatectl | systemd 기반 시간 관리 | systemd-timesyncd/chronyd 연계 | RHEL7+, NTP 활성화/시간대 변경 | timedatectl set-ntp true |
| ntpd | NTP 데몬 | NTP 서버와 지속 동기화 | RHEL6 기본, 장기적 안정성 | ntpd -gq |
| ntpdate | 1회성 NTP 동기화 | NTP 서버에서 즉시 시간 수신 | 데몬 없이 단발성, ntpd와 병행 불가 | ntpdate -u pool.ntp.org |
| chronyd | NTP 데몬 (RHEL7+) | 빠르고 정확한 동기화 | 네트워크 불안정 환경에 강함 | chronyc tracking |
| rdate | TCP 기반 시간 가져오기 | 원격 서버에서 시간 수신 | 구식, 보안 취약 | rdate -s time.bora.net |
| hwclock | RTC 관리 | 시스템 ↔ RTC 동기화 | 부팅/종료 시 RTC 갱신 | hwclock --systohc |
✅ 운영 팁:
- RHEL 7 이상:
chronyd+timedatectl조합이 안정적인 표준 - RHEL 6 이하:
ntpd+hwclock --systohccron 등록 권장 ntpdate는 단발성 동기화 에만 사용,rdate는 보안상 사용 자제, ntp도구로 대체 사용 권장- RTC는 주기적으로 시스템 클럭에 맞춰 갱신 필요
🕰️ Red Hat 계열 리눅스 시스템 시간 관리 방법 정리
timedatectl, ntp, chrony로 서버 시간을 정확하게 맞추는 기술적인 방법들을 정리 합니다.
1. Red Hat 계열에서 시간 동기화 방식
(1) RHEL 6 이하 (SysV init 기반)
- ntpd 데몬 사용.
- 초기 동기화:
ntpd -gq→ 이후service ntpd start. - 종료 시
/etc/init.d/halt스크립트에서hwclock --systohc실행. - 필요 시 cron으로
hwclock --systohc주기적 실행 가능.
(2) RHEL 7 이상 (systemd 기반)
- chronyd가 기본 시간 동기화 서비스 실행 (RTC 자동 갱신).
systemctl enable chronyd && systemctl start chronyd- RTC 갱신은 systemd가 자동 관리 (
timedatectl set-ntp true). - 초기 강제 동기화:
chronyc makestep.
(3) RHEL 8/9 최신
chronyd가 표준,ntpd는 기본 제공되지 않음.- RTC와 시스템 클럭 동기화는 systemd가 자동 처리.
- 관리자는 필요 시 수동으로
hwclock --systohc실행 가능.
2. 주요 명령어 요약
| linux date 관리 | ||
|---|---|---|
| 목적 | 명령어 | 설명 |
| 시스템 시간 확인 | date |
현재 시스템 클럭 확인 |
| 하드웨어 시간 확인 | hwclock --show |
RTC 확인 |
| RTC → 시스템 클럭 복사 | hwclock --hctosys |
RTC 값을 시스템 클럭에 반영 |
| 시스템 클럭 → RTC 복사 | hwclock --systohc |
시스템 시간을 RTC에 저장 |
| NTP 동기화 상태 확인 | timedatectl status |
NTP 활성 여부 확인 |
| chrony 동기화 확인 | chronyc tracking |
chronyd 동기화 상태 확인 |
4. 시스템 date Gap 방지 전략
- ntpd/chronyd는 시스템 클럭만 관리 → RTC는 자동 갱신되지 않음.
- Gap 방지를 위해:
- systemd 환경:
timedatectl set-ntp true설정 → 종료 시 자동으로 RTC 갱신. - 구버전 환경: cron에
hwclock --systohc등록 (예: 매일 새벽 3시). 0 3 * * * /sbin/hwclock --systohc- 부팅 시 초기 동기화:
- RHEL6:
ntpd -gq후 데몬 실행. - RHEL7+:
chronyc makestep후 데몬 실행.
- RHEL6:
- systemd 환경:
📌 핵심 정리
ntpd/chronyd→ 시스템 클럭 관리hwclock→ RTC 관리- 시스템 시간 Gap 방지를 위해 시스템 클럭을 RTC에 주기적으로 반영해야 함.
- 최신 RHEL은 systemd가 자동 처리하므로 별도 cron 작업이 필요 없음.
- 구버전은 cron으로
hwclock --systohc를 등록하는 것이 안전.
(참고)
1. [꿀팁] Centos 8에서 표준시간 설정하는 방법 :
https://couplewith.tistory.com/180
2. (꿀팁) Red Hat 계열 리눅스 시간 관리 방법 :
https://couplewith.tistory.com/900
3. (꿀팁) 리눅스 시스템 시간 동기화 하기 :
https://couplewith.tistory.com/320
#리눅스_시간동기화
'InfraPlatform' 카테고리의 다른 글
| 웹서버 취약점 - SSL 보안 설정 및 점검 가이드 (0) | 2026.01.07 |
|---|---|
| Windows WSL에 Ollama/CUDA 커스텀 경로 설치 가이드(Ubuntu 22.04) (1) | 2026.01.06 |
| (꿀팁) 리눅스 시스템 시간 동기화 하기 (Chrony,NTP ) (36) | 2026.01.05 |
| 리눅스에서 숫자 계정 생성 정책 허용 (useradd --badname 활용) (11) | 2025.11.29 |
| 디자인 과학 연구 방법론(Design Science Research Methodology, DSRM) (0) | 2025.10.29 |
| VMware 가용성 HA와 FT (0) | 2025.10.15 |
| Linux - firewall-cmd 서비스 명칭 기반 관리 (0) | 2025.10.15 |