![두 서버 NTP의 ntp 상태를 확인하는 스크립트](https://linux55.com/image/173366/%EB%91%90%20%EC%84%9C%EB%B2%84%20NTP%EC%9D%98%20ntp%20%EC%83%81%ED%83%9C%EB%A5%BC%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8.png)
우리는 서버 시계를 NTP 시간 서버와 동기화하고 싶습니다. 이 ntp 서버가 시간 초과되거나 아웃소싱된 시간 제한(소켓 시간 초과) 내에 응답하지 않는 경우 NTP 요청을 시간 서비스(파리: ntp-p1.obspm.fr)에 보내고 응답을 재개하는 스크립트(스크립트 bach)를 설계합니다. ) 예를 들어 15초 후에 두 번째 서버로 요청을 보냅니다(예: besenson: ntp-p1.obspm.fr). 그 사람도 응답하지 않으면 이메일을 통해 관리자에게 알리십시오.
답변1
이상적으로 NTP는 데몬으로 실행되어 하루 종일 여러 서버와 통신합니다. 이를 통해 평균화 및 통계 방법을 활용하여 이상값과 불량 서버를 식별할 수 있습니다. NTP가 이 모드에서 실행 중인 경우 해당 피어에 대한 자세한 정보를 이미 유지 관리하고 있습니다. 다음을 실행하여 이 데이터를 볼 수 있습니다.
$ ntpq -c associations
ind assid status conf reach auth condition last_event cnt
===========================================================
1 27930 962a yes yes none sys.peer sys_peer 2
2 27931 941d yes yes none candidate 1
$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*ntpserver .GPS. 1 u 553 1024 377 0.169 0.300 0.223
+ntpserver2 10.41.200.62 2 u 193 1024 377 0.493 0.307 0.168
마지막 두 줄의 첫 번째 문자는 "카운트 코드"라고 하며 특히 관심을 가질 수 있습니다. 여기에 ""가 표시되면 피어가 사용되지 않는다는 의미입니다. 액세스할 수 없거나 사용을 방해하는 또 다른 심각한 문제가 있기 때문입니다. 보다ntpq 매뉴얼 페이지더 알아보기. 다음과 같이 모니터링에 연결할 수 있습니다.
#!/bin/bash
output=`ntpq -p | tail -n +3 | cut -d' ' -f1`
for line in $output; do
tallycode=${line:0:1}
host=${line:1}
if [[ "$tallycode" == [#+\*] ]]; then
echo "Info: Found good NTP peer $host"
exit 0
else
echo "Warning: bad NTP peer $host"
fi
done
echo "Error: None of the peers provides useful time!"
exit -1
각 서버에 대해 어리석은 단일 테스트를 수행하려는 경우 해당 출력을 구문 분석할 수 있습니다 sntp -t 15 <servername>
. 그러나 위의 접근 방식은 더욱 강력해야 합니다.