일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 시마지로
- 라면
- 점심
- one tab buy
- しまじろう
- 명령어
- 토익
- 영단어
- Shimajirou
- 신쥬쿠
- TOY
- 일본
- 돈까스
- 리눅스
- 여름
- 시스템관리
- 코라쿠엔
- 자동차
- youtuber
- 사이타마
- Sekai Entertainment
- fish
- 돼지갈비
- 米沢、팽이
- 전철
- 동경 모터쇼
- 스테이크
- 원탭바이
- paypay
- 칸칸
- Today
- Total
IT Japan
MySQL replication script2 본문
SHOW SLAVE STATUS\G
슬레이브의 상태를 확인하여 문제가있을 것 인 경우 메일을 보내는 스크립트 메모입니다.
의도로는
* 슬레이브 프로세스가 달리고 있을까?
* 오류가 발생하고 있지 않은가
* 지연이 허용 범위 내에 있는지 (30 초)
덧붙여서 MySQL 자체에 연결할 수 없다 든가의 경우이 스크립트는 지원하지 않습니다.
#! / bin / sh
# watch replication
ALERT_TO = "{mail-destination}";
ALERT_SUBJECT = "[MySQL] replication alert";
CHECK_COMMAND = "SHOW SLAVE STATUS \ G";
ALLOW_DELAY_SECONDS = 30;
echo "$ CHECK_COMMAND";
slave_status =`mysql -u {user} -e "$ CHECK_COMMAND"`;
echo "$ slave_status";
# set variables from status
eval "`echo"$ slave_status "| sed -ne 's / : (*) / ="1 "/ p'`";
if [ "$ Slave_IO_Running"! = "Yes"]; then
msg = "Slave_IO_Running : $ Slave_IO_Runningn";
fi
if [ "$ Slave_SQL_Running"! = "Yes"]; then
msg = "$ {msg} Slave_SQL_Running : $ Slave_SQL_Runningn";
fi
if [ "$ Last_Errno"! = "0"]; then
msg = "$ {msg} Last_Error : $ {Last_Errno}] $ Last_Errorn";
fi
if [ "$ Seconds_Behind_Master"-gt $ ALLOW_DELAY_SECONDS]; then
msg = "$ {msg} Seconds_Behind_Master : $ Seconds_Behind_Mastern";
fi
if [ "$ msg"! = ""]; then
echo "n-- Need alert mail -";
echo "$ msg";
(echo "$ {msg} n $ {CHECK_COMMAND} n $ {slave_status}"| mailx -s "$ ALERT_SUBJECT" "$ ALERT_TO");