이 포스팅과 함께 이 글도 참조 할 것
ntpq -p output
-> ntp 관련 명령어 실행시의 파라미터 값에 대한 설명 안내.
아래와 같이 ntpq -p 명령을 통해 ntp 서버와의 상태를 확인하면 서버 호스트(ip) 앞에 기호가 없는 경우가 있을 수 있다.
그럴때 ntpstat와 ntptime 명령을 통해 실제 ntp 서버와의 통신에 문제가 있는지 확인하여 문제가 없다면 시간 동기화에는 이상이 없다고 판단할 수 있겠다.
| [root@node01 ~]# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== 106.247.248.106 203.248.240.140 3 u - 64 1 2.984 2.454 0.000 send.mx.cdnetwo .INIT. 16 u - 64 0 0.000 0.000 0.000 112.220.115.166 .INIT. 16 u - 64 0 0.000 0.000 0.000 |
- 기호가 없다가도 곧 나타날 수 있으며, 유동적이다.
아래는 시스템 시간을 + - 1초 차이를 두게 함
| - 시스템 시간 1초 증가 시키기 # echo `date '+%H:%M:%S'` | awk -F\: '{printf "%02d:%02d:%02d" ,$1 ,$2 ,($3+61)%60}' | date '+%H:%M:%S' --set "`xargs`" - 시스템 시간 1초 감소 시키기 # echo `date '+%H:%M:%S'` | awk -F\: '{printf "%02d:%02d:%02d" ,$1 ,$2 ,($3+59)%60}' | date '+%H:%M:%S' --set "`xargs`" - 특정 시간으로 시스템 시간 변경 # date -s "2015-08-06 20:49:20" - ntptime 상태 확인 # watch -d -n1 'ntptime | grep returns' or # for num in `seq 0 300`; do /usr/sbin/ntptime | grep return; sleep 1; done - ntp 상태 확인 # watch -d -n1 ntpstat |
- 1초 이상 차이가 나는 즉시 ntptime | grep returns (for문 이용)으로 확인하면 ERROR로 표시된다.
- 시간에 민감한 시스템에서는 임의로 시간 변경을 하면 장애로 이어질 수 있으므로 주의한다.
ntp 상태 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | = 비정상 상태 = [root@node01 ~]# ntpstat unsynchronised polling server every 64 s [root@node01 ~]# ntptime | grep returns ntp_gettime() returns code 5 (ERROR) ntp_adjtime() returns code 5 (ERROR) = 정상 상태 = [root@node02 ~]# ntpstat synchronised to NTP server (211.233.40.78) at stratum 3 time correct to within 108 ms polling server every 64 s [root@node02 ~]# ntptime | grep returns ntp_gettime() returns code 0 (OK) ntp_adjtime() returns code 0 (OK) |
tcpdump를 사용하여 ntp 통신 상태 확인
| # tcpdump -nvvv -i eth0 udp port 123 | grep Timestamp |
ntp 서버와 즉시 시간 동기화 하기
| - ntpd 데몬 정지 # /etc/init.d/ntpd stop - ntp 서버와 즉시 시간 동기화 하기 # /etc/init.d/ntpdate start -> ntpdate는 ntpd 데몬이 실행중이면 수행되지 않는다. - ntpd 데몬 시작 # /etc/init.d/ntpd start |
* 참고로 ntp.conf 파일의 서버 선언 부분에 iburst 옵션을 넣는걸 권장한다.
| [root@node01 ~]# cat /etc/ntp.conf | grep iburst server 0.rhel.pool.ntp.org iburst server 1.rhel.pool.ntp.org iburst server 2.rhel.pool.ntp.org iburst server 3.rhel.pool.ntp.org iburst |
- 만약 iburst 옵션이 없으면 ntpd 데몬이 시작하는 시점에 시스템 시각이 약 10분 이상 틀어져 있을 경우에 동기화하는데 너무 오랜 시간이 걸린다.
* ntpdate 는 서버 시작시 실행되도록 한다.
| [root@node01 ~]# chkconfig --list | grep ntpdate ntpdate 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
- 시스템이 부팅될 때 메인보드 CMOS Clock (즉, 하드웨어 시계)에 의해 OS 시각이 결정된다.
- 이 때 CMOS Clock 이 맞지 않을 경우 ntpd 에 의해 ntp 서버와 동기화 될때 까지 시간이 틀어져 있게 된다.
- ntpdate는 시스템 부팅때 ntpd 보다 먼저 실행이 되어 ntp 서버와 그 즉시 동기화를 하므로 어플리케이션 서비스가 구동되기 전에 정확한 시간을 보장 해준다.
* 기타 ntp 관련 명령
| [root@node01 ~]# ntpq -c rl associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync, version="ntpd 4.2.6p5@1.2349-o Mon Jul 15 09:22:49 UTC 2013 (1)", processor="x86_64", system="Linux/2.6.32-504.23.4.el6.x86_64", leap=00, stratum=3, precision=-24, rootdelay=63.405, rootdisp=95.586, refid=211.233.40.78, reftime=d96dda85.91443fc2 Thu, Aug 6 2015 22:07:17.567, clock=d96dda8d.d4f6694c Thu, Aug 6 2015 22:07:25.831, peer=40203, tc=6, mintc=3, offset=-11.991, frequency=-16.429, sys_jitter=3.197, clk_jitter=7.514, clk_wander=0.613 [root@node01 ~]# ntpq -c rl | grep delay stratum=3, precision=-24, rootdelay=63.405, rootdisp=95.901, |
- leap (윤초) 관련된 상태도 확인 가능하다.
댓글