스크립트 내용 및 동작
수행환경 : 센트오에스 리눅스 5.9 (32비트) on vmware
내용 : 이하첨부
동작 : rsh로 상대측 서버의 DB상태 코멘트를 확인하고,
해당코멘트가 Available 이 아닌경우
hadr_takeover.sh라는 스크립트를 실행
하고, 그렇지 않은 경우 계속 감시하도록 함
( 오동작 내용 )
스크립트내용 중 "$STATUS" != "Available" 부분이 != 인데도 hadr_takeover.sh를 실행해버림
스크립트 내용을 "$STATUS" = "Operable" 로 바꾸어 동작을 확인해보니 hadr_takeover.sh를 실행해야 하는데도 실행은 안함!!
(스크립트 내용)
[db2inst1@linuxx86svr1 ~]$ cat hadr_mon.sh
#!/bin/sh
while true
do
rsh linuxx86svr0 /db2home/db2inst1/sqllib/bin/db2gcf -i db2inst1 -s | grep DB2 | awk '{ print $4 }' | read STATUS
if [ "$STATUS" != "Available" ]
then
sh hadr_takeover.sh
exit 0
fi
sleep 60
done
#!/bin/sh
while true
do
rsh linuxx86svr0 /db2home/db2inst1/sqllib/bin/db2gcf -i db2inst1 -s | grep DB2 | awk '{ print $4 }' | read STATUS
if [ "$STATUS" != "Available" ]
then
sh hadr_takeover.sh
exit 0
fi
sleep 60
done
[db2inst1@linuxx86svr1 ~]$ db2gcf -i db2inst1 -s | grep DB2 | awk '{ print $4 }'
Available
Available
도움바랍니다.
°á°ú°ªÀ» º¯¼ö·Î ´ãÀ¸½Ã·Á¸é,
STATUS=`cat ./1 | awk '{print \$4}'` ÀÌ·±ÇüÅ·ΠÀâÀ¸½Ã¸é µË´Ï´Ù.
$ cat ./1
-----------------------
1 2 3 Available
-----------------------
ex) test pass
STATUS=`cat ./1 | awk '{print \$4}'`
echo $STATUS
RSH Å×½ºÆ®´Â Çغ¸Áö ¾Ê¾Æ¼, ¾ÈµÇ´Â ºÎºÐÀº ÇØ°áÇØ º¸½ÉÀÌ...
STATUS=`rsh linuxx86svr0 "(/db2home/db2inst1/sqllib/bin/db2gcf -i db2inst1 -s | grep DB2 | awk '{print \$4}')"`
STATUS=`rsh localhost "(cat ./1 | awk '{print \$4}')"`
ÀÌ·± °ÍÀÌ ½±°Ô µÈ´Ù°í Çؼ¿ä.