磁盘监控:告警时发送邮件

1.配置邮箱

1.编辑邮箱配置文件

bash 复制代码
vim /etc/mail.rc

2.在末尾输入自己的邮箱配置,以163邮箱为例

bash 复制代码
#开启ssl
set ssl-verify=ignore
#证书目录,下方为centos系统证书默认位置,也自行生成证书并指定
set nss-config-dir=/etc/pki/nssdb
# 配置的第三方smtp服务器的地址及端口
set smtp=smtps://smtp.163.com:465                         
# 认证方式
set smtp-auth=login
# 发送邮件的邮箱账号
set smtp-auth-user=xxx@163.com
# 发送邮件的客户端授权码
set smtp-auth-password=yyy
# 设置发信人邮箱和昵称
set from=xxx@163.com

3.测试发邮箱功能是否可用

bash 复制代码
echo "测试" | mail -s "测试" 1259799716@qq.com

-s:邮件主题

1259799716@qq.com:收件人

测试结果如下:

自己的邮箱已经可以收到邮件,报错Error in certificate: Peer's certificate issuer is not recognized. 是因为没有配置smtps://smtp.163.com:465 的ssl证书,想解决这个报错的可以自行百度配置证书,本脚本是直接忽略该错误,不影响正常使用

2.编写shell脚本
  1. 编写shell脚本
bash 复制代码
cd xxx     #选择自己存放脚本的文件夹
vim console.sh

shell脚本分享如下

bash 复制代码
#!/bin/bash

# 主机名
hostname="117.50.117.58"
# 邮箱收件人  可以循环发送给多个人
addresses=("邮箱地址1" "邮箱地址2" "邮箱地址3")
# 获取磁盘使用率
rate=$(df -h | grep /dev/vdb | awk '{print $5}' | cut -d % -f1)
# 磁盘剩余空间
remain_size=$(df -h | grep /dev/vdb | awk '{print $4}')
# 获取当前时间
date=$(date "+%Y-%m-%d %H:%M:%S")

# 如果磁盘使用率超过95%  可以自己制定监控值,一般是85%
if [ ${rate} -ge 95 ]
        then
        #磁盘超过监控值,发送邮件
        echo "${date} 主机 ${hostname} 磁盘使用率已经超过95%,当前使用率为${rate}% ,剩余空间为${remain_size} ,请及时清理磁盘空间" > message.txt        
        for address in ${addresses}
                do
                        mail -s "磁盘空间告警" ${address} < message.txt 2>/dev/null
        done
fi

2.赋予脚本可执行权限

bash 复制代码
chmod 755 console.sh
3.将脚本加入到定时任务即可,可以每半个小时执行一次,按照自己的需求设置执行频率即可
相关推荐
开心大爆炸2 小时前
xrdp 连接 登录对话框输入密码后闪退
linux·运维·服务器
oushaojun22 小时前
大厂 C++ 面试:深度剖析 Linux Signal 信号机制(转)
linux
苏生Susheng3 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
Ruiery3 小时前
Linux 6.6内核 IOMMU 深度解析(七):DMA API 与 IOMMU 集成 — 从 dma_map_single 到 iommu_map
linux·运维·服务器
分支预测失败3 小时前
RISC-V AIA 中断架构实战:从 PLIC 到 APLIC 与 IMSIC 的迁移
linux·后端
GeW3 小时前
RHCE学习拿证计划:锁定核心考点,实现备考效率最大化
linux
snow@li4 小时前
服务器运维:Alibaba Cloud Linux 4 LTS 64位 根目录全景深度解析文章
linux·运维·服务器
苏生Susheng4 小时前
【软件实施】Linux企业运维常用命令手册
java·linux·运维·服务器·springboot·springcloud·软件实施
额额额对了4 小时前
Linux 进程间通信(IPC)核心机制:消息队列、共享内存与信号量详解
linux·网络·网络协议
zx_741484814 小时前
【Linux入门】Linux 安装:VMware Workstation Pro 安装 CentOS 7 保姆级图文教程
linux·centos