url 변경 방지 스 크 립 트 (nagios 플러그 인)
기능 핵심 은 경 행 url 비교 입 니 다.curl 다운로드 페이지 를 이용 하여 hash 값 을 계산 하고 다음 비 교 를 위해 저장 합 니 다. 이 부분 사상 은 jokechoo 에서 제공 하고 스 크 립 트 는 tqh 입 니 다.변경 방지 와 달리 여 기 는 실시 간 url 비교, 경고 입 니 다.
한편, 변경 방지 기술 은 보통 2 조 서버 에서 웹 서 비 스 를 제공 하고 한 조 의 대외 서 비 스 를 제공 합 니 다. 이 서버 는 수정 권한 이 없 으 며 파일 이 수정 되면 다른 배경 서버 에 의 해 동기 화 되 어 변경 방지 가 실 현 됩 니 다.안전 을 위해 서 는 많은 대 가 를 치 러 야 한다.
플러그 인 1. inithash.sh 원본 hash 값 을 계산 하고 저장 합 니 다.(hash 파일 생 성 권한 을 수정 하거나 nagios 사용자 생 성 으로 변경) 플러그 인 2. checkhash nagios 검색 플러그 인
PS: 플러그 인 에 서 는 중국 어 를 사용 합 니 다. 인 코딩 형식 utf - 8 에 주의 하 십시오. 먼저 중국 어 를 표시 할 지 여 부 를 수 동 으로 디 버 깅 할 수 있 습 니 다.nagios 메 인 프로그램 자체 에 중국어 지원 이 없 으 면 어 지 러 운 코드 로 표 시 될 수 있 습 니 다.
코드 는 다음 과 같 습 니 다. 첨부 파일 을 다운로드 할 수 있 습 니 다.
플러그 인 inithash.sh
- #!/bin/bash
- # version 1.0 beta,2011.01.17
- # used for add/update webpage hash
- hash_lib=/tmp/test/hashfile
- url_list=/tmp/test/urlfile # 1 url
- log_file=/tmp/test/updatehash.log
-
- #######@@ # url_list, @@ , 。 check update.list update
- #if [ $# -eq 1 -a -f "$1" ]
- #then
- # url_list="$1"
- # echo $url_list
- #else
- # echo "ERROR: plz input 1 urlfile"
- # exit
- #fi
- ########@@
- ### 。
- #[ ! -e $url_list ] && echo "not exist urlfile" && exit
- ###tmp_dir=/tmp/test
- ###web_tmp=/tmp/test/tmpfile
- ###cd $tmp_dir || echo "no tmp_dir,plz create first" && exit
-
- while read LINE
- do
- curl -s -A topsec $LINE > tmpfileabc
- #URL /, ,hash URL
- #if [ ! $? -eq 0 ] #URL ,
- #then
- #echo "this page cant download"
- #fi
- hashtmp=`sha1sum tmpfileabc` # HASH
- greptmp=`grep $LINE $hash_lib` # URL hash
- if [ $? -eq 0 ]
- then
- echo "The site $LINE has checked before, update the hash value."
- sed -i "s#$greptmp#$hashtmp#" $hash_lib # # , url #
- sed -i s#tmpfileabc#"$LINE"# $hash_lib # tmpfileabc url
- echo `date +%Y%m%d_%R` "$LINE hash has updated" >> $log_file
- else
- echo "The site $LINE is a new check, add the hash value."
- echo $hashtmp>> $hash_lib
- sed -i "s#tmpfileabc#$LINE#" $hash_lib
-
- fi
- rm -f tmpfileabc
-
- done < $url_list
2. 플러그 인 2. check_url
- #!/bin/bash
- #version 1.0 ,2011.01.18
- #nagios check http plug. check whether webpage has modified . url list is from file
- #
-
- url_list=/tmp/test/urlfile
- hash_lib=/tmp/test/hashfile
- tmp_dir=/tmp/test
- log_file=/tmp/test/hashcheck.log
- need_update=/tmp/test/needupHASH.list
- cd $tmp_dir
-
-
- flag_a=0
- flag_c=0
-
- while read URL
- do
-
- curl -s -A topsec "$URL" > webtmpfile
- current_hash=`sha1sum webtmpfile | awk '{print$1}'`
-
- #####################check url hash
- if `grep $URL $hash_lib>greptmpfile` # URL HASH
- then
- if grep -q $current_hash greptmpfile # HASH
- then
- flag_a=0 #
- else
- flag_a=1 #
- echo `date +%Y%m%d_%R` "$URL web changed" >> $log_file
- echo "$URL" >>$need_update
- # url , l_file
- fi
- else
- flag_c=3 #HASH
- echo `date +%Y%m%d_%R` "$URL hash should be create" >>$log_file
- echo "$URL" >>$need_update
- fi
-
- done < $url_list
- rm -f greptmpfile
- rm -f webtmpfile
- ######################nagios checkstat
- if [ $flag_c -eq 3 ]
- then
- if [ $flag_a -eq 1 ]
- then
- echo " , URL" # , URL
- exit 3
- else
- echo " URL" # , URL 。 /
- exit 1
- fi
- else
- if [ $flag_a -eq 0 ]
- then
- echo " " #
- exit 0
- else
- echo " " #
- exit 2
- fi
-
- fi
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
✨〰️ ZI 〰️✨ Vim 구문❮ ZI ❯ 🧙♀️ Zsh를 위한 스위스 아미 나이프. 모든 것을 함께 붙일 수 있도록 설계되었습니다. zsh 유형의 파일에 있는 명령에 대한 Vim 구문 정의입니다. 📥 설치 Vim 플러그인으로 로드합니다. 예를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.