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 是一个发送邮件的脚本。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值