2. 컴퓨터 이야기/서버&서비스

서버 시간 설정, 소프트웨어 시간, 하드웨어 시간

래빗 크리스 2009. 6. 10. 09:43

이곳에 설명하는 내용은 어떤 분이 올린 글을 수정한 것입니다.
원저작자가 누구인지 기억이 나지 않아서.. ^^> 출처를 밝히지 못함을 양해 바랍니다.

*. 서론

 

 - 서버간의 시간차로 발생 가능한 문제 해소

 - 크론테이블에 지정 또는 명령행에 직접 처리

   크론테이블에 지정해 두었지만 작동하지 않는 경우도 존재

 - root 권한으로 세팅 요망

 - 소프트웨어 OS 상의 설정 및 하드웨어 상의 설정 요망

    소프트웨어 rdate, 하드웨어 clock -w

 - root 사용자의 크론테이블에 다음과 같이 등록

   0 0 * * 0 su - root /usr/bin/rdate -s time.bora.net && /sbin/clock -w

   매주 일요일 00:00 에 실행

 - 명령행에서는 다음과 같이 조치 요망

   /usr/bin/rdate -s time.bora.net && /sbin/clock -w

 

사용하는 서버의 /etc/crontab 에 아래와 같은 줄이 있다고 하면,

0 0 * * 1 root rdate -s time.kriss.re.kr && clock -w

매주 한번씩 타임서버인 time.kriss.re.kr에서 시간을 읽어와서

rdate -s 옵션으로 저장하고(man rdate 참조),
 clock 명령으로
CMOS 시간값에 저장하는 것.(man clock 참조).

 

타임서버는 가까이 있는 신뢰할만한 타임서비스 서버 이용. 

time.kriss.re.kr

time.bora.net

time.nuri.net

time-a.nist.gov

등등..
 

rdate -s 명령이나 date -s명령은 소프트웨어적인 시간을 설정.

하드웨어 시간(CMOS)까지 조정해줘야(clock -w) 리부팅후 조정시간이 반영.

 

예컨대 이런 문제도 발생할 수 있겠지요.

 

10시 1분에 일일 자료백업을 하도록 cron에 설정해두고,

10시 정각에 타임서버에 접속하여 시간을 재설정했는데

타임서버의 시간이 10시 2분이었다고 치죠.

그렇다면 10시 1분은 그냥 지나친 결과이기 때문에 예정된 작업은 수행되지 않을겁니다.

 

아무튼 date 명령으로 출력된 시간을 하드웨어(CMOS)에 기록하기 위해서는

clock -w 명령을 사용하면 되고, 리부팅시 초기에 CMOS 시간을 참조할 것이므로

조정된 시간이 반영될테지요.

 
크론탭에 등록이 되더라도 간혹 설정이 되지 않고 그냥 넘어가기도 합니다.
왜 이런 현상이 발생하는지는 잘 모르겠습니다만,
결국. 일주일에 한번이든 한달에 한번이든 date 명령으로 시간이 맞는지 확인하고
틀어져 있다면 다시 맞춰 주어야 한다는 겁니다.