본문 바로가기
{Programing}/Server

리눅스 쉘 스크립트 예제 분석

by 탱타로케이 2017. 10. 23.

#! /bin/sh        //쉘 스크립트의 시작.

DEV="eth0"      // 변수

VIP="10.0.0.1 10.0.0.2"  //변수 리스트.



//함수.

ip_add(){


//MAC 이라는 변수에 $DEV 장치의 ip에 해당하는 정보중에

// 파일 첫머리 부터 :를 지우고 정규식에 해당하는 내용이 only한 것이 있으면

 MAC=`ip link show $DEV | egrep -o `([0-9a-f]{2}:){5}[0-9a-f]{2}` | head -n 1 | tr -d :`


//장치에 ip를 추가.

 ip addr add $1/24 dev $DEV


//IP주소와 MAC주소를 다른서버에 통지.

 send_arp $1 $MAC 255.255.255.255 ffffffffffff

}


//함수

ip_del(){

//장치의 IP 주소를 삭제.

 ip addr del $1/24 dev $DEV

}



//함수

healthcheck(){

//$VIP 개수만큼 I 에 대입해보며 실행.

 for I in $VIP;

 do

// curl 로 I에 대입된 VIP 의 응답이 200과 다르면

//즉 VIP에 대해 헬스체크가 실패할 경우

if ["200" -ne "`curl -s -I 'http://$i/' | head -n 1 | cut -f 2 -d ' '`" ];

then

// $DEV 장치에 $i와 같은 IP 가 없으면

// VIP가 자신에게 할당된 IP가 아니라면.

if [ -z "`ip addr show $DEV | grep $i`"];

then

//ip 추가

ip_add $i

else //맞다면

//ip 삭제

ip_del $i

fi

fi

 done

}


while true;

do

healthcheck;

sleep 1;

done


'{Programing} > Server' 카테고리의 다른 글

JSON  (0) 2018.03.20
mysql 문제 발생.  (0) 2017.11.06
리눅스 쉘 스크립트  (0) 2017.10.23
(리눅스) - make 관련  (0) 2017.10.09
1. TCP 기본  (0) 2017.03.02

댓글