리눅스 / 명령어 / rdate / 타임서버의 시간과 동기화해주는 명령어

rdate는 원격 시간 서버에서 시간을 가져와 확인하거나 시스템 시계를 한 번 맞추는 명령입니다. 다만 같은 이름의 구현마다 옵션 의미가 다르므로, 설치된 프로그램의 매뉴얼을 먼저 확인해야 합니다. 계속 시간을 동기화하려면 chrony 같은 시간 동기화 서비스를 사용하는 편이 적합합니다.

rdate와 시간 동기화의 차이

rdate는 실행할 때 원격 서버에 요청을 보내는 도구입니다. 한 번 시계를 맞추더라도 명령 자체가 계속 실행되며 오차를 보정하지는 않습니다. 로그, 예약 작업, 인증서 검증처럼 시각에 민감한 서비스를 운영한다면 지속적인 동기화 상태를 확인해야 합니다.

아래 실습은 Ubuntu 24.04의 rdate 매뉴얼에 설명된 OpenRdate를 기준으로 합니다. 다른 구현에서는 같은 옵션이 다른 뜻일 수 있으므로 예제를 그대로 적용하지 마세요.

설치와 구현 확인

Ubuntu에서 패키지 저장소에 접근할 수 있다면 다음과 같이 설치합니다. 패키지가 없다고 나오면 배포판 버전과 사용 중인 저장소를 확인하세요.

sudo apt update
sudo apt install rdate

설치 후 매뉴얼을 열어 실제 프로그램의 옵션을 확인합니다. 매뉴얼의 종료 키는 q입니다.

command -v rdate
man rdate

OpenRdate에서는 -p가 시계를 변경하지 않고 서버 시간을 출력하며, -s는 출력하지 않는다는 뜻입니다. 다른 rdate 구현에서는 -s가 시계를 설정한다는 뜻일 수 있습니다. 따라서 옵션 이름만 보고 동작을 추측하지 마세요. 특히 OpenRdate에서는 -p 없이 실행하면 시계 설정을 시도할 수 있습니다.

서버 시간만 확인하기

OpenRdate의 기본 통신 방식은 RFC 868 시간 프로토콜의 TCP 37번 포트입니다. 일반적인 NTP(Network Time Protocol) 서버가 RFC 868도 제공한다고 가정할 수는 없습니다. 다음 예제는 독일 물리기술연방연구소(PTB)의 NTP 서버에 OpenRdate의 -n 옵션으로 단순 네트워크 시간 프로토콜(SNTP)을 사용해 조회합니다. 서버 이용 정책과 네트워크 접근 가능 여부를 확인하고 필요하면 조직에서 지정한 NTP 서버로 바꾸세요.

rdate -n -p ptbtime1.ptb.de

정상 응답을 받으면 원격 시간이 출력되고 로컬 시스템 시계는 변경되지 않습니다. SNTP는 UDP 123번 포트를 사용합니다. OpenRdate 매뉴얼에 따르면 NTP 서버를 이용할 때 윤초 보정이 필요한 경우가 있으므로, 정확한 시각이 중요하면 매뉴얼의 -c 설명과 시간 소스의 조건을 확인하세요. 응답이 없으면 서버 주소와 DNS, 방화벽, 서버의 서비스 여부를 확인하세요. 서버가 실제로 지원하는 프로토콜을 먼저 확인해야 하며, 이름이 시간 서버라고 해서 모든 프로토콜을 지원하는 것은 아닙니다.

시계를 한 번 맞추기 전 확인

시스템 시간이 갑자기 앞뒤로 바뀌면 로그의 순서, 예약 작업, 인증 및 실행 중인 서비스에 영향을 줄 수 있습니다. 운영 중인 시스템에서는 시간 소스의 신뢰성과 변경 영향을 검토하고 적절한 작업 시간을 확보하세요. 이미 chrony나 다른 동기화 서비스가 관리하는 시계를 별도로 반복 변경하지 않도록 현재 운영 방침도 확인합니다.

OpenRdate에서 다음 명령은 -p 없이 SNTP 서버의 시간으로 시스템 시계를 설정하려고 합니다. 관리자 권한이 필요하며, 실행 전 위의 조회 명령으로 서버 응답과 현재 시간을 확인하세요. 이 예제는 OpenRdate용입니다.

date
timedatectl
sudo rdate -n ptbtime1.ptb.de
date
timedatectl

명령이 실패하면 오류를 확인하고 성공했다고 가정하지 마세요. date와 timedatectl은 로컬 시간과 시간대를 확인하는 데 도움이 됩니다. 화면에 표시되는 시간대가 다르다고 해서 시계의 기준 시각이 반드시 틀린 것은 아닙니다. 시간 변경은 조회처럼 간단히 되돌릴 수 없으므로, 이전 값을 무작정 다시 설정하기보다 운영 절차에 따라 신뢰할 수 있는 시간 소스와 동기화하세요.

지속적인 동기화 확인하기

rdate를 한 번 실행한 것만으로 지속적인 동기화가 구성되지는 않습니다. systemd 환경에서는 다음 명령으로 동기화 서비스와 시계 상태를 확인할 수 있습니다.

timedatectl status

NTP service가 활성이라고 표시되는 것과 System clock synchronized가 동기화되었다고 표시되는 것은 서로 다른 상태입니다. 서비스가 실행 중이어도 서버에 도달하지 못하면 동기화되지 않을 수 있습니다. 표시 항목은 시스템과 버전에 따라 다를 수 있습니다.

chrony를 사용하는 시스템에서는 chronyc tracking과 chronyc sources -v로 상태와 시간 소스를 살펴볼 수 있습니다. 명령을 사용할 수 없다면 설치·서비스 상태와 배포판의 설정을 확인하세요. Red Hat의 chrony 시간 동기화 문서에서 소스와 동기화 상태를 확인하는 방법을 볼 수 있습니다.