프로그래밍

유닉스 서버 시간 서서히 맞추기(서서히 초단위 시계 조작), AIX(IBM UNIX), HP-UX(HP UNIX) 서버 관리(ntp 프로토콜 이용이 불가능할 경우)

할랑할랑 2014. 11. 3. 16:09
반응형

유닉스 서버 시간 서서히 맞추기(서서히 초단위 시계 조작), AIX(IBM UNIX), HP-UX(HP UNIX) 서버 관리(ntp 프로토콜 이용이 불가능할 경우)

* 요약
- date -a [초단위.소수점단위] : -a 옵션으로 AIX, HP-UX 서버에서, 시간을 초단위로 서서히 바꿀 수 있다.

date 명령으로 시간을 변경해버리면, 갑자기 시간이 앞, 뒤로 변화하여버려서 어플리케이션(DBMS 데이터베이스 관리 시스템, AP, 톰캣 웹로직 등의 웹, 와스(WAS) 서버 서비스)의 정상적인 작동을 보장할 수 없다. 따라서 보통은 해당 서버의 서비스 프로그램을 모두 중단하고 시간을 변경해주게 된다.

ntp를 이용하면, SLEW 옵션인 -x 옵션(xntpd -x)을 활용하여, 서서히 시간을 맞추도록 지시할 수 있으나, 보안상 문제 혹은 네트워크 구성 상 문제로, 자동으로 타임 서버와 시각을 맞출 수 있는 NTP 설정이 불가능한 경우가 있다. 그럴 경우 대체로 사용할 수 있는 명령이 date -a 이다.
* 참고: [리눅스 초보 서버관리] 시간동기화 ntp 타임서버 클라이언트 설정http://hallang.tistory.com/368 )
(ntp slewing 관련해서 안정적으로 동기화가 되지 않아 권장하지 않는다는 문구도 보이므로, 해당 서버 매뉴얼(man) 참고하여 적용할 것)

date -a [+-초단위.소수점단위]

방화벽이나 네트워크, 보안 등의 문제로 시간 기준 서버(타임서버)로 바라볼 곳이 없어 xntpd -x, ntpd -x, ntpdate -c (AIX) 또는 ntpdate -B (HP-UX, Linux), rdate 등의 명령을 사용할 수 없다면... IBM서버(AIX OS)나 HP서버(HP-UX 운영체제)에서는 date -a 명령을 활용할 수 있다. date -a 명령이 자동으로 시각을 맞춰주진 않으나, 수동으로 서서히(slew) 시간을 소수점 단위(.fff)까지 조정할 수 있으며, 아마도 시간 역행 방지(time backward)까지 가능한 것으로 보인다.

리눅스(LINUX)에서는 마땅한 옵션을 확인하지 못했으나, AIX와 HP-UX에는 공통으로 date 명령에 해당 옵션이 존재하는 것을 확인했다. 초.밀리초 단위로 현재 시각 기준으로 보다 시계를 빠르게, 혹은 느리게 설정 가능하며, 원하는 시간 간격 만큼 조정하기 전까지 계속 자동으로 조금씩 서서히 시계가 빨리, 혹은 늦게 작동한다.

사용 예)
- 현재 서버의 시간이 10.5초 느릴 경우(시간을 더해야할 경우): date -a 10.5
- 현재 서버의 시계가 표준시보다 5초 빠를 경우(느리게 해주고 싶을 때): date -a -5 

AIX (IBM UNIX) 및 HP-UX (HP UNIX)에서, 정확하게 몇 ms(milliseconds) 단위로 시간 조정이 이뤄지는지는 자료는 찾아보지 못했으나, 대략 테스트해본 결과는 아래와 같았다.
- HP-UX(HP) 서버: 초당 0.3초 변동(10초마다 대략 3초씩 조정됨)
- AIX(IBM) 서버: 초당 0.1초 변동(10초마다 대략 1초씩 줄어들거나 늘어남)

2분 동안 테스트해본 바로는... HP-UX는 date -a 명령 시 초당 0.316초씩 증감함(120초 동안 38초 증감), AIX는 date -a 명령 시 초당 0.1초씩 증감(120초 동안 12초 증감). 즉, HP-UX에서 시계를 38초 서서히 느리게 조정하려면, date -a -38 명령을 내린 후 2분간 기다려야한다. ...라고 되는 것 처럼 보였으나, 실제로는 같은 AIX 끼리도 증감 속도가 다른 서버가 있는 것으로 확인되어... (10초 동안 5초가 증가하는 서버도 있었다), 아마 서버 OS 별로 증감 속도가 설정 가능한 것 같다.

Linux에서는 ntpdate, rdate 외에... 유사한 명령을 아직 못찾았다.(리눅스 date 명령에는 -a 옵션이 없음)

* AIX man date 페이지 설명 발췌
-a [ + | - ]sss[.fff ]
Slowly adjusts the time by sss.fff seconds (fff represents fractions of a second). This adjustment can be positive or negative. The system's clock will be sped up or slowed down until it has drifted by the number of seconds specified.

* HP-UX man date 페이지 설명 발췌 (내용이 똑같다)
-a [-]sss[.fff]
Slowly adjust the time by sss.fff seconds (fff represents fractions of a second).  This adjustment can be positive or negative.  The system's clock will be sped up or slowed down until it has drifted by the number of seconds specified.


* 관련글
- [리눅스 초보 서버관리] 시간동기화 ntp 타임서버 클라이언트 설정http://hallang.tistory.com/368 )
- [유닉스, 리눅스 서버 관리 초보] tar로 파일 묶기, 풀기 및 간단한 파일 압축(compress, uncompress)http://hallang.tistory.com/394 )
- [유닉스초보] 쉘 스크립트 날짜 계산, 유닉스 쉘에서 이틀 전, 삼일 전 날짜 구하기 (서버관리 기초) ( http://hallang.tistory.com/371 )
- [초보] vi 에디터에서 줄번호(행번호, 라인넘버) 표시 하기 ( http://hallang.tistory.com/285 )

반응형