一、安装并配置邮件客户端程序
1.安装s-nail
s-nail是一个邮件客户端程序,它提供了发送、接收和管理电子邮件的功能。s-nail是UNIX和类UNIX系统上的一种替代邮件客户端工具,可以在命令行界面中使用。
yum install s-nail -y
2.启用qq邮箱的smtp服务
授权码需要开启邮箱的smtp服务进行获取,进入“邮箱设置-账号-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”,点击管理服务获取授权码,点击生成授权码,根据提示短信验证通过后即可得到一个随机授权码。
3.配置s-nail
vim /etc/s-nail.rc #打开配置文件,在底部添加如下内容
set v15-compat #启用 v15-compat 兼容性选项
set from="xx@qq.com" #发件人信息
set mta=smtps://账号:授权码@smtp.qq.com:465
set smtp-auth=login
4.发送邮件测试
s-nail -s "邮件主题" xx@163.com < /etc/passwd #xx@163.com为收件人信息
二、编写告警脚本
监控日志目录,当目录大小以G为单位时就发送邮件提醒
#!/usr/bin/env bash
function send_waring(){
echo "$1"|s-nail -s "$2" xx@163.com
}
function waring(){
local dir="/var/log/"
local dir_G=$(du -sh ${dir}|cut -d'/' -f1|grep "G")
local now_time=$(date)
if [[ ${dir_G} =~ "G" ]];then
send_waring "请注意,当前【${dir}】目录占用已达到【${dir_G}】" "告警时间:${now_time}"
fi
}
waring
添加-a参数时还可以发送附件到指定邮箱
echo "这是日志打包文件"|s-nail -s "日志打包" -a 202401301421.log.tar.gz xx@163.com
三、配置定时任务
配置定时任务,当匹配到阈值时就会自动发送邮件告警通知了
* * * * * bash /root/mail_waring.sh