쉘 스크립트 고수분을 찾습니다 ㅠㅠ

쉘 스크립트 고수분을 찾습니다 ㅠㅠ

QA

쉘 스크립트 고수분을 찾습니다 ㅠㅠ

본문

몇일 간격으로 이유를 알수 없이 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

2가 나온다는 것은 데몬이 죽지 않고 살아 있는 것 아닐까요?

디비 연결만 안되는 것이고, mysql 서비스는 떠 있을 것으로 생각됩니다. 

 

어찌 어찌 해결은 했습니다;;

if [[ $(pgrep mysql | wc -l) = 0 ]];
then
    /etc/init.d/mysqld restart
fi

 

다만, crontab 에서 스크립트 경로 앞에

/bin/bash 를 넣어야 되더군요.

* * * * * /bin/bash /path/is/script.sh

답변을 작성하시기 전에 로그인 해주세요.
전체 123,478 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT