宝塔定时任务实现磁盘使用率超阀值后自动发送邮件

服务器磁盘使用空间不足会产生各种不可预知的灾难,服务器上的应用几乎全部不能用,如果没有遇到过磁盘占满的问题,可能很难发现它。

安装邮件发送工具sendEmail

使用 yum 安装,非常简单

yum install sendEmail

在这里插入图片描述
查看安装结果:

yum list installed

磁盘检测并发送邮件shell脚本

  1. 编写脚本 disk_check.sh
#!/bin/bash
disk_list=(`df -h | awk 'NF>3&&NR>1{sub(/%/,"",$(NF-1));print $NF,$(NF-1)}'`)
limit_value=10
msg=""
notify_email()
{
    emailuser='发送邮箱'
    emailpasswd='邮箱第三方授权码'
    emailsmtp='smtp.qq.com' #发送邮件服务器
    title='Disk Space Alarm'
    for sendto in '1380xxx9024@139.com' # 要发送的邮箱(多个空格分隔)
    do
        sendEmail -f $emailuser -t $sendto -s $emailsmtp -u $title -xu $emailuser -xp $emailpasswd -m $msg
    done
    
}
for (( i=0;i<${#disk_list[@]};i+=2 ))
do
     i1=${disk_list[((i+1))]}
     i0=${disk_list[i]};
    if [ "$i1"  -lt "$limit_value" ];then
        echo "OK! $i0 used i1 %"
    else        
        if [ "$i1" -gt "$limit_value" ];then
            msg=$msg"Disk Warning!!! $i0 used $i1%\n"
        fi 
    fi
done
if [ "$msg" != "" ];then
    echo -e $msg| notify_email
fi
  1. 获取第三授权码(qq邮箱)
    登录qq邮箱
    【账户】在这里插入图片描述
    【管理服务】
    在这里插入图片描述
    【安全设置】->【生成授权码】
    在这里插入图片描述
    【扫码】
    在这里插入图片描述
  2. 发送邮件服务器
    在安全设置页面点击配置sMTP/IMAP方法
    在这里插入图片描述
    发送邮件服务器: smtp.qq.com
    在这里插入图片描述
  3. 查看sendEmail使用说明
    (1)查看sendEmail帮助文档:
  sendemail --help

(2)sendEmail使用基本参数

sendemail
-f xxx@qq.com 发件邮箱
-t test@qq.com 收件邮箱
-s smtp.qq.com 发件邮箱的smtp服务器
-u ‘标题’ 邮件的主题
-o message-content-type=html 邮件内容的格式为html,也可以是text
-o message-charset=utf8 邮件内容编码
-xu xxx@qq.com 发件邮箱
-xp 123456 发件邮箱第三方授权码
-m ‘邮件内容’ 邮件的内容

宝塔配置计划任务

  1. 登录宝塔-计划任务

在这里插入图片描述

  1. 选择 shell脚本
  2. 输入任务名称
  3. 执行周期
  4. 调用/data/shell/disk_check.sh,注意要用绝对路径
  5. 点击添加任务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值