쉘 스크립트 고수분을 찾습니다 ㅠㅠ
본문
몇일 간격으로 이유를 알수 없이 DB 가 끊기는 현상이 발생합니다.
이유를 알아낼때까지는 DB가 끊겼을때 자동으로 재 시작하는 쉘 스크립트를 만들려고 했습니다.
#!/bin/bash
mysqlCheck=`pgrep mysql | wc -l`
if [[ $mysqlCheck == "0" ]]; then
echo mysql is string
elif [[ $mysqlCheck -eq 0 ]]; then
echo mysql is integer
else
echo othertype
fi
문제는 if 문 걸리는 곳에서 /etc/init.d/mysqld start 만 넣어주면 끝이라 생각했는데,
mysqlCheck 변수를 찍어보면 2 가 나와서 othertype 이 찍힙니다.
DB가 끊긴 상태라 0 이 나와야 하는데, 무조건 2가 나오네요...
제가 어떤 실수를 한걸까요? 많은 분들의 애정어린 답변 구합니다. ㅠㅠ 살려주세요
답변 3
if [ "$mysqlCheck" -eq "0" ] ; then
....
fi
이렇게 한번 해 보세요.
어찌 어찌 해결은 했습니다;;
if [[ $(pgrep mysql | wc -l) = 0 ]];
then
/etc/init.d/mysqld restart
fi
다만, crontab 에서 스크립트 경로 앞에
/bin/bash 를 넣어야 되더군요.
* * * * * /bin/bash /path/is/script.sh
2가 나온다는 것은 데몬이 죽지 않고 살아 있는 것 아닐까요?
디비 연결만 안되는 것이고, mysql 서비스는 떠 있을 것으로 생각됩니다.