侧边栏壁纸
博主头像
爱运维 博主等级

行动起来,活在当下

  • 累计撰写 197 篇文章
  • 累计创建 143 个标签
  • 累计收到 21 条评论

目 录CONTENT

文章目录

zimbra每日邮件使用率超过85%报警

Administrator
2017-02-19 / 0 评论 / 0 点赞 / 9 阅读 / 0 字

zimbra是一个开源的邮件系统,课通过web界面设置超出报警,但是由于固定了,我们单方不能设置,只能通过脚本来实现,故写下如此脚本,实现每天早上10点如果用户状态是活动且使用率大于85%就发一封报警邮件,并且将所有超出用户汇总发送给管理员。

先介绍查询用户的邮箱使用率命令和出来的结果(马赛克公司名):

查询用户活动状态:

SHELL如下


#/bin/bash
#by:tommy
#2016-8-23
#tommy偷懒专用
rm -f /tmp/tongji.txt
rm -rf /root/sz.txt
/opt/zimbra/bin/zmprov gqu zcs4|grep -E "^sz[0-9]{6}@iyunw.cn">>/root/sz.txt
#由于此条命令执行慢,所以让他写入文件
HANG=`cat /root/sz.txt|wc -l`
for I in `seq 1 $HANG`;do
	MAILMAX=1073741824
        #给邮箱大小初始值,以防后面做浮点运算报错
	MAIL=`sed -rn "$I p" /root/sz.txt|awk '{print $1}'`
        #提取当前行邮箱
	MAILMAX=`sed -rn "$I p" /root/sz.txt|awk '{print $2}'`
        #提取当前用户邮箱最大值
	MAILZHI=`sed -rn "$I p" /root/sz.txt|awk '{print $3}'`
        #提取当前用户邮箱使用值
	MAILNUM=`echo "sclae=2; 100*$MAILZHI/$MAILMAX" | bc`
        #计算用户使用率,只取整数
	if [[ $MAILNUM -ge 85 ]];then
		MAILSTATUS=`/opt/zimbra/bin/zmprov ga $MAIL|grep ^zimbraAccountStatus|awk '{print $2}'`
                 #取用户活动状态,如果是active才发邮件
			if [[ $MAILSTATUS == "active" ]];then
				echo "$MAIL  邮件使用达到$MAILNUM% 告警通知请及时清理邮件,以防邮箱锁定,有问题请及时联系管理员"|mutt -s "$MAIL  邮件使用达到$MAILNUM% 告警通知" $MAIL
			fi
		echo "$MAIL    $MAILNUM    $MAILZHI    $MAILNUM    $MAILSTATUS">>/tmp/tongji.txt
                #汇总
	fi
done
mutt -s "$(date +%F)邮件使用告警通知" 管理员邮箱</tmp/tongji.txt


发送邮件截图

用户收到邮件

管理邮件:


0

评论区