群发quota报警邮件脚本

简介:

群发quota报警邮件脚本


1、是群发邮件(通过`cat /log/aspera/warn_mail.txt`调用)

2、在邮件内容前增加自定义的3行(sed -e '1i Hi All,':在第1行前增加“Hi All,”;sed -e '2G':在第2行前增加空行)

3、mail -b表示隐藏抄送人,-c不隐藏



#!/bin/bash


Date=`date +%Y%m%d`

Date2=`date +%Y%m%d -d "7 days ago"`


Dir=/aa/shell/Thinclient


/bin/rm -rf $Dir/users_use.txt

/bin/rm -rf $Dir/used.txt

/bin/rm -rf $Dir/warn_$Date2.txt

/bin/touch $Dir/users_use.txt

/bin/touch $Dir/used.txt

/bin/touch $Dir/warn_$Date.txt


ssh 10.0.0.2 "quota report -x" | grep thinclient > $Dir/thinclient.txt


/bin/cat $Dir/thinclient.txt | awk -F[:" "]+ '{print $2}' | grep SPRD > $Dir/users2.txt

sed -i 's/SP/ /g' $Dir/users2.txt

tr -d ' \' $Dir/users.txt

/bin/cat $Dir/users2.txt | tr -d '\' > $Dir/users.txt



for i in `cat $Dir/users.txt`

do

Used=`cat $Dir/thinclient.txt | grep -w $i | awk -F[:" "]+ '{print $5}'`

UsedF=`cat $Dir/thinclient.txt | grep -w $i | awk -F[:" "]+ '{print $8}'`

Usedd=`echo $Used | awk '{$1/=1024*1024;printf "%.0f\n",$1}'`G

Useed=`echo $Used | awk '{$1/=1024*1024;printf "%.0f\n",$1}'`

Total=`cat $Dir/thinclient.txt | grep -w $i | awk -F[:" "]+ '{print $6}'`

TotalF=`cat $Dir/thinclient.txt | grep -w $i | awk -F[:" "]+ '{print $9}'`

Totall=`echo $Total | awk '{$1/=1024*1024;printf "%.0f\n",$1}'`G

Totaal=`echo $Total | awk '{$1/=1024*1024;printf "%.0f\n",$1}'`

Avg=$(($Useed * 100 / $Totaal))%

AvgF=$(($UsedF * 100 / $TotalF))%

/bin/echo $i used:$Usedd,Total:$Totall,Per:$Avg >> $Dir/users_use.txt

/bin/echo $i used:$UsedF,Total:$TotalF,Per:$AvgF >> $Dir/users_use.txt

done 



for ii in `cat $Dir/users_use.txt | awk -F[:" "]+ '{print $5}' | tr -d '%'`

do

if [ $ii -gt 80 ];then

/bin/cat $Dir/users_use.txt | grep -w $ii'%' >> $Dir/warn_$Date.txt

fi

done



echo "                              " >> $Dir/warn_$Date.txt

echo "                              " >> $Dir/warn_$Date.txt



for iii in `cat $Dir/users_use.txt | awk -F[:" "]+ '{print $9}' | tr -d '%'`

do

if [ $iii -gt 80 ];then

/bin/cat $Dir/users_use.txt | grep -w $iii'%' >> $Dir/warn_$Date.txt

fi

done



/usr/bin/sort -nk 1 $Dir/warn_$Date.txt | uniq > $Dir/warn2_$Date.txt



sed -e 's/$/\r/' $Dir/warn2_$Date.txt > $Dir/warn3_$Date.txt




for I in `cat $Dir/warn3_$Date.txt | awk -F[:" "]+ '{print $1}'`

do

echo $I@ming.com > $Dir/warn_mail.txt

II=`cat $Dir/warn3_$Date.txt | grep $I`

echo $II > $Dir/warn4_$Date.txt

cat $Dir/warn4_$Date.txt | sed -e '1i Hi,' | sed -e '2i your quota of A:(//nas1/thinclient) warn(>80%),please clean' | sed -e '2G' > $Dir/mail_context.txt


/usr/bin/mail -s "$I internal VDI A: quota warn(>80%)" -b zhi.yang@ming.com,zhi.ming@ming.com `cat $Dir/warn_mail.txt`  < $Dir/mail_context.txt

本文转自linux博客51CTO博客,原文链接http://blog.51cto.com/yangzhiming/1893016如需转载请自行联系原作者

yangzhimingg


相关文章
|
2月前
|
存储 监控 安全
邮件告警通知
【10月更文挑战第20天】
|
运维 监控 关系型数据库
脚本实现电话短信报警
无需任何资质,脚本2分钟实现电话短信钉钉飞书企业微信报警
517 0
|
监控 小程序 开发工具
Zabbix配置微信报警和邮件报警
Zabbix配置微信报警和邮件报警
Zabbix配置微信报警和邮件报警
|
Prometheus 监控 数据可视化
使用 Zabbix 实现邮件自动报警
使用 Zabbix 实现邮件自动报警
229 0
使用 Zabbix 实现邮件自动报警
|
监控 测试技术 API
通过微信企业号发送 zabbix 报警
最近飞信不能用了…zabbix报警无法收到短信 …  其实搭建的方法很简单,微信官网的API文档也非常详细了.只是之前网上没有找到具体的文档..自己饶了不少弯路.. 刚开始用微信公众平台试了下..有一个非官网的sdk..可以模拟登陆..但是需要关注的用户48小时内和公众号有过互动…这个显然是不行的…不然每天早上起床还得记得往自己的公众号上面发个消息 …..才能收到发出来的报警消息。
2178 0
|
监控 数据安全/隐私保护 机器学习/深度学习
zabbix4.0配置发送告警邮件
zabbix4.0配置发送告警邮件
7069 0
|
监控 Linux Windows