shell监控mysql发邮件_shell脚本监控线上db数据并发送邮件。

看到同事写了shell脚本通过访问线上的db,监控业务数据并发送邮件。蛮有意思的,记录下。

#!/bin/bash

myHome=`cd $(dirname $0); pwd`

cd $myHome

mailfile="$myHome/quantity-lock-error.`date +'%Y-%m-%d'`"

echo "sc_item_id,store_code,quantity,lock_quantity,occupy_quantity,gmt_modified" > $mailfile

sh check_quantity_lock.sh | tr -s '\t' ',' >> $mailfile

TO="abc@abc.com"

if [ `wc -l $mailfile | awk '{print $1}'` -ne 1 ]; then

$myHome/email -V -smtp-server 121.0.29.128 -smtp-port 25 -from-addr abc@ddd.com -from-name "abc" -subject "bcd"

-no-encoding $TO < $mailfile

else

wc -l $mailfile

fi

执行db的脚本;

#!/bin/bash

for i in `seq 0 4095`

do

scitemid=`echo $i `

tbIndex=`./calkey.sh $scitemid | head -1`

dbIndex=`./calkey.sh $scitemid | sed -n 2p`

dbHost=`./calkey.sh $scitemid | sed -n 3p | cut -d : -f 1`

port=`./calkey.sh $scitemid | sed -n 3p | cut -d : -f 2`

echo "use tmall_inventory_`printf %04d $dbIndex`;" > sql

echo "select sc_item_id, store_code, quantity, lock_quantity, occupy_quantity, gmt_modified from ipc_inventory_`printf %04d $tbIndex` where quantity < occupy_quantity and inventory_type=1 and app=1 and is_deleted=0 and gmt_modified > \"2013-04-01 00:00:00\"; " >> sql

mysql -h $dbHost -P $port -u username -ppassword < sql | grep -v sc_item_id

done

其中calkey.sh是辅助脚本,用来取得配置信息;

email 是一个发送邮件的脚本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值