Global It Leader!!



 
 

리눅스 ping 체크로 서버 생존여부 판별해서 sms 전송하는 쉘스크립트

페이지 정보

작성자 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 6,042회 작성일 15-04-01 15:16

본문

#!/bin/bash
# www1.test.com 에서 해당되는 모든 서버에 ping 신호를 보낸다
# ping 신호가 도착하지 않으면 특정 휴대전화로 sms 문자메세지를 보낸다.
 
HOST=("www1.test.com" "www2.test.com" "www3.test.com" "www4.test.com" "www5.test.com" www6.test.com" "www7.test.com" "www8.test.com" "www9.test.com" "www10.test.com")
 
# 루프를 위한 인덱스, 배열전체 크기를 반환하는 변수설정
FLAG=0
TOTAL_ARRAY_NUM=${#HOST[@]}
while [ "$FLAG" -lt "$TOTAL_ARRAY_NUM" ]
do
    # ping 3회 쏜다.
    # 상태값을 저장해 0이 아닌 코드가 나오면 sms 관련 루틴을 실행 시킨다.
    /bin/ping -c3 ${HOST[$FLAG]} > /dev/null 2>&1
    END_CODE=$?
    if [ "$END_CODE" != "0" ]; then
        # sms 루틴 호출
        # 커맨드모드로 호출할때 파라미터를 get/post 방식이 아닌 바이너리의 인자형태로 보낸다.
        /usr/local/bin/php -f /www/htdocs/ping.php ${HOST[$FLAG]}
    fi
    let "FLAG = $FLAG + 1"
done
exit 0
 
$ cat /www/htdocs/ping.php
<?
$host = $argv[1];
// sms 전송하는 루틴
?>
$
 
sms 전송서비스는 해당 업체를 선정해서 넣어준다.
cgi 모드에서 php를 실행시킬때 php 바이너리와 -f 옵션을 주고 해당 스크립트를 입력한다.
 
단, 아파치 모듈형태의 get/post 전송방식으로 파라미터를 넘기지않고 cgi 모드의 whitespace로 구분된 인자의 형태로 넘긴다.
파라미터를 받는 스크립트에서는 $argv 배열변수로 접근할 수 있다.
 
$argv[0] = "/www/htodcs/ping.php";
$argv[1] = "www2.test.com";

댓글목록

등록된 댓글이 없습니다.

전체 105
게시물 검색
윈도우/리눅스 목록
번호 제목 글쓴이 조회 날짜
65 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4856 04-01
열람중 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6043 04-01
63 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4795 03-31
62 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5618 03-31
61 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5366 03-24
60 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5254 03-06
59 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4747 03-03
58 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4771 01-13
57 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4948 09-12
56 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 22041 07-29
55 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4922 06-25
54 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5319 06-18
53 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5115 05-27
52 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6462 01-08
51 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6765 06-25
50 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5940 05-15
49 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 21353 05-10
48 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5383 04-26
47 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5472 04-17
46 리눅스 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5660 04-17