环境准备
主机 | 工具 |
Rocky_Linux | s-nail |
win10 | 163邮箱(接收端) |
qq邮箱(需启用smtp服务,作为发送端) |
安装s-nail
s-nail是一个邮件客户端程序,也被称为"Heirloom mailx"。它提供了发送、接收和管理电子邮件的功能。s-nail是UNIX和类UNIX系统上的一种替代邮件客户端工具,可以在命令行界面中使用。
yum install s-nail -y
启用qq邮箱的smtp服务
授权码需要开启邮箱的smtp服务进行获取,进入邮箱设置
开启如下所示的服务,点击管理服务获取授权码
点击生成授权码,根据提示短信验证通过后即可得到一个随机授权码
配置s-nail
打开配置文件,在底部添加如下内容
vim /etc/s-nail.rc
set from="XX@qq.com" #发件人信息
set smtp="smtp.qq.com" #qq邮件服务器地址,也可以使用163邮箱
set smtp-auth-user="XX@qq.com" #邮件服务账号,就是你的qq邮箱地址
set smtp-auth-password="XXXX" #获取授权码
set smtp-auth=login
#在新版本的 s-nail 中,不再使用 smtp 变量来配置 SMTP 服务器。取而代之的是使用 mta 变量来指定 SMTP 服务器的 URL。
set v15-compat #启用 v15-compat 兼容性选项
set from="xx@qq.com" #发件人信息
set mta=smtps://账号:授权码@smtp.qq.com:465
set smtp-auth=login
发送邮件测试
s-nail -s "系统用户" xx@163.com < /etc/passwd
结合脚本实现邮件告警
监控日志目录,当目录大小以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
最后配置定时任务,当匹配到阈值时就会自动发送邮件告警通知了
* * * * * bash /root/mail_waring.sh
添加
-a
参数时还可以发送附件到指定邮箱
echo "这是日志打包文件"|s-nail -s "日志打包" -a 202401301421.log.tar.gz xx@163.com