报警脚本,要求如下:
根分区剩余空间小于20%
发送告警邮件给自己
配合crond每5分钟检查一次脚本
具体实现如下所示
1.#安装邮件服务相关包
[root@localhost ~]# yum install mailx
2.编辑邮件系统文件
#编辑邮件系统文件
[root@localhost ~]# vim /etc/mail.rc
注册一个网易邮箱账号(QQ邮箱也行),然后开启相关配置
# 设置发件人地址
set from=@18398944893@163.com
# 设置 SMTP 服务器地址
set smtp=smtp.163.com
# 开启 SMTP 认证
set smtp-auth=login
# 设置 SMTP 认证用户名
set smtp-user=18398944893@163.com
# 设置 SMTP 获取认证密钥set smtp-auth-password=PHGFQBRUALTLHIAE
邮件密钥获取方式:
登录邮件官网(163邮件)后,点击设置,如图:
点击开启后,用手机扫二维码后,获取密钥
!!!然后再将写在刚刚那个文件里面:/etc/mail.rc
点击开启后会弹出二维码,微信扫码后会显示密钥
4.编辑报警脚本文件
[root@localhost ~]# vim /progress/03.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
5.编辑crontab配置文件
[root@localhost ~]# crontab -e
*/5 * * * * bash /progress/03.sh
#查看crontab正在运行任务
[root@localhost ~]# crontab -l
*/5 * * * * bash /progress/03.sh