要求如下:
根分区剩余空间小于20%
发送告警邮件给自己
配合crond每5分钟检查一次脚本
报警脚本的具体实现如下:
#安装mailx(邮件服务包)
[root@localhost ~]# yum install mailx
#编辑邮件系统文件
[root@localhost ~]# vim /etc/mail.rc
#首先注册一个网易邮箱账号(QQ邮箱也行),然后开启相关配置(POP3/SMTP)
# 设置发件人地址
set from=13778755673@163.com
# 设置 SMTP 服务器地址
set smtp=smtp.163.com
# 开启 SMTP 认证
set smtp-auth=login
# 设置 SMTP 认证用户名
set smtp-user=13778755673@163.com
# 设置 SMTP 获取认证密钥
set smtp-password=JZCHTDWOEMBBIHNA
获取邮件认证密钥的方式:
在设置中找到SMTP服务,开启POP3/SMTP服务
开启后有一个”确定开启“然后弹出一个二维码扫描后就会出现一串密钥
##编辑警告脚本文件:
[root@localhost ~]# vim free.sh
#!/bin/bash
# 获取根分区剩余空间百分比
root_usage=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
# root_usage='df-h | grep -w / | tr -s """" | cut -d " " -f 5 | cut -d % -f 1'
# 判断剩余空间是否小于20%
if [ "$root_usage" -lt 20 ]; then
# 发送告警邮件给自己
echo "根分区剩余空间已低于20%,请及时处理。" | mail -s "磁盘空间警告" your_email@example.com
fi
#编辑crontab配置文件:
[root@localhost ~]# crontab -e
#在编辑器中添加以下信息来设置每5分钟执行脚本的计划任务:
*/5 * * * * /bin/bash /root/free.sh
#查看crontab正在执行的任务
[root@localhost ~]# crontab -l
*/5 * * * * /bin/bash /root/free.sh