shell监控脚本实例—监控mysql主从复制

分享一例shell脚本,用于监测mysql数据库的主从复制,有需要的朋友不妨参考学习下。 转自:http://www.jbxue.com/article/14103.html(转载请注明出处)

本节内容:

监控mysql主从复制的shell脚本。


说明:
监控脚本在 rhel5 下测试正常,其它版本的linux系统请自行测试。

代码:

 1 #监控mysql 主从复制
 2 cat chk_mysql_rep.sh 
 3 #!/bin/bash 
 4 # 
 5 #script_name:chk_mysql_rep.sh 
 6 #check mysql replication 
 7 # 
 8 #ssh root@xen "/usr/local/mysql/bin/mysql -uroot -pdongnan -e 'show slave status\G' -ss" | awk '/Running:/ {print $2}' 
 9 #Yes 
10 #Yes 
11 # 
12 #variables 
13 ssh=/usr/bin/ssh 
14 sh_dir=/root/sh/ 
15 crondir=${sh_dir}crontab 
16 source ${sh_dir}CONFIG 
17 hosts="$DB_SLAVE_HOSTS"
18 #main 
19 #主循环遍历机器 www.jbxue.com
20 for HOST in $hosts;do 
21 log=$crondir/log/mysql_replication_error.log 
22 key=$($ssh root@$HOST "/usr/local/mysql/bin/mysql -uroot -pdongnan -e 'show slave status\G' -ss" | awk '/Running:/ {printf $2}') 
23     #无法连接的主机,跳过本次循环 
24     test -z "$key" && continue 
25     #返回结果真 
26     if [ "$key" == "YesYes" ];then 
27         #flag真,解除报警 
28         if [ -f "${crondir}/log/$HOST.mysql" ];then 
29             #sms 
30             #for mobile in $MOBILES;do 
31                 #echo "$HOST replication ok" | /usr/local/bin/gammu --sendsms TEXT "$mobile" -unicode 
32             #done 
33             #mail 
34             for mail in $MAILS;do 
35                 echo "$HOST replication ok" | mail -s "$HOST replication ok" $mail 
36             done 
37             #flag 
38             rm -f "${crondir}/log/$HOST.mysql" 
39         fi 
40     #返回结果假 
41     else   
42 check_date=$(date '+ %F %T') 
43         #flag假,报警 
44         if [ ! -f "${crondir}/log/$HOST.mysql" ];then 
45             #sms www.jbxue.com
46             #for mobile in $MOBILES;do 
47                 #echo "$HOST replication error" | /usr/local/bin/gammu --sendsms TEXT "$mobile" -unicode 
48             #done 
49             #mail 
50             for mail in $MAILS;do 
51                 echo "$HOST replication error" | mail -s "$HOST replication error" $mail 
52             done 
53             #flag 
54             echo "replication error" >"${crondir}/log/$HOST.mysql" 
55             #log 
56             echo "$check_date $HOST mysql replicaton error" >> $log 
57         fi 
58     fi 
59 # 
60 done 
61 #
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值