본문 바로가기
일하는 중에

시간 맞추기 - 서버의 시간은 어떻게 맞출까?

by likebnb 2010. 8. 9.

1. 들어가는 말

종종 서버의 시간이 클라이어트의 시간과 맞질 않아서 문제가 되는 경우가 있다. 서비스를 운영하는 서버라면 시간이 맞지
않는 문제는 종종 심각한 문제를 야기시키는 원인이 되기도 한다.

시간이 맞지 않으면 바로 잡아주면 된다. 하지만 서버를 관리하는 입장에서 늘 문제가 되는 것이 하루 온종일 서버만 들여다
보고 있을 순 없다는 것이다. 그러므로 서버의 시간을 정확하게 맞추는 것도 가능하면 자동화가 필요하겠다.

언제 어디를 기준으로 얼마나 자주 시간을 동기화 할 것인가!
오늘의 주제는 바로 이것이다. 아울러 어떤 도구를 가지고 할 것인지도 고려해야 할 것이다.



2. ntpdate 유틸리티를 이용한 시간 동기화

최근의 리눅스 배포판(CentOS release 5.4 기준)에는 ntpdate라는 유틸리티가 포함되어 있다.
ntpd 등을 이용하여 타임서버간의 동기화를 구성하는 방법도 있겠지만 자신의 서버가 굳이 타임서버가 되어야 하는 것이
아니라면 이런 거창한 방법 보다는 ntpdate를 이용하는 것이 보다 간편하겠다.

/usr/sbin/에서 ntpdate 유틸리티를 찾을 수 있다. 사용법은 다음과 같다. 참고로 rdate라는 유틸리티도 있다.

ntpdate -u hostname_for_time_server 

사용법을 알았으니 이제 실습을 해봐야겠다. 그런데 타임서버의 주소를 알아야 실습을 할 수 있다. 사실 인터넷 상엔 수 없이 많은
타임 서버들이 존재한다. 하지만...



3. 타임서버(Time Server)

멀리 갈 필요 없이 국내에서 운영되고 있는 잘 알려진 타임서버들을 보자. 다음 중 맘에 드는 걸로 하나 골라서 사용하면 되겠다.
단, 접근이 가능한 지에 대한 사전 테스트는 필수.

time.bora.net
time.nuri.net
time.kriss.re.kr


자신을 타임서버로 동작하게 하는, 그러니까 ntpd에 대해선 다음 기회에 따로 한 번 정리를 해보도록 하자.



4. cron을 통해 하루에 한 번(자동화)

어지간히 문제가 있는 하드웨어가 아니라면 하루에 한 번 시간을 맞춰주는 것으로 충분하리라고 본다. 이 경우 cron 데몬을
이용하면 편리하다. cron 데몬이 관리하는 디렉토리 중 하나인 cron.daily에 짤막한 스크립트를 작성해서 넣어두면 간편하게
시간 설정을 할 수 있다. 다음은 시간 설정을 수행하는 스크립트 파일의 내용이다.

#!/bin/sh
ntpdate -u time.nuri.net


time sync

cron을 이용한 Time Sync의 예




cron.daily 디렉토리에 위 내용의 쉘스크립트를 작성하여 넣은 뒤 제대로 동작하는 지 확인을 해 볼 필요가 있다.
스크립트가 제대로 동작하는 것을 확인한 뒤에 crond를 재기동해주면 서버에 설정된 cron의 스케쥴링에 따라
자동으로 하루에 한 번 씩 시간을 맞춰줄 것이다.



참고로 윈도에서도 시간을 자동으로 맞춰주는 유틸리티가 있다. 아래 그림을 참고하자.

Windows 7에서의 인터넷 시간 설정







5. 맺음말

시간을 맞춘다는 것, 여러 가지로 함축적인 의미가 담긴 말이다.
많은 사람들이 함께 살아가기 위한, 중요한 전제조건들 중 하나가 아닐런지.