本指南以 CentOS 系统为例配置 Mailx,通过Mailx自动发送系统巡检报告至指定邮箱。通过定时执行脚本,我们可以监控服务器的关键性能指标,并在出现问题时及时得到通知
1.检查并安装mailx
首先,检查 mailx
是否已安装在 CentOS 系统上:
yum list installed | grep mailx
如果未安装,则使用以下命令进行安装:
yum install mailx -y
2. 配置 Mailx
/etc/mail.rc
文件以配置 SMTP 服务器和认证信息:vi /etc/mail.rc
在文件中添加以下内容(替换 [email protected]
和 your_smtp_password
为实际的值):
set from[email protected] #发件人邮箱
set smtp=smtp.qq.com:465 #QQ邮箱smtp地址
set smtp-auth-user[email protected] #SMTP认证用户即发件人邮箱
set smtp-auth-password=your_smtp_password # QQ邮箱的SMTP授权码
set smtp-auth=login #SMTP认证类型
set ssl-verify=ignore #忽略SSL证书有效性验证
set nss-config-dir=/opt/QQ/.certs/ #设置证书存放路径,实测必须有证书否则无法正常发送邮件
3. 创建并配置 SSL 证书
mkdir -p /opt/QQ/.certs
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /opt/QQ/.certs/qq.crt
使用certuil工具向证书数据库中添加一个证书,并对该证书设置信任属性,防止出现发送邮件警告提示
cd /opt/QQ/.certs
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -I qq.crt
4.SMTP授权码获取
进入QQ邮箱 点击设置,在POP3/IMAP/SMTP/Exchange/cardDAV/CalDAV服务 点击管理服务,开启SMTP功能(本例已提前开启),点击生成SMTP授权码,根据提示要求获取对应授权码
5.编写巡检和邮件发送脚本
巡检脚本 check_system.sh
# 显示CPU使用情况
usedcpu=$(vmstat 1 2 | awk 'NR==3 {print 100-$15"%"}')
IOwait=$(vmstat 1 2 | awk 'NR==3 {print $16"%"}')
echo "CPU使用率:$usedcpu, IO等待响应:$IOwait"
# 显示内存使用情况
mem=$(free -h | grep Mem | awk '{print $2}')
free=$(free -h | grep Mem | awk '{print $4}')
used=$(free -h | grep Mem | awk '{print $3}')
echo "总内存:$mem, 已使用:$used, 剩余:$free"
# 显示硬盘使用情况
echo "磁盘使用情况如下:"
df -h | grep '^/dev'
邮件发送脚本 send_report.sh
# 调用巡检脚本并捕获输出
result=$(sh /path/to/check_system.sh) #调用巡检结果
# 发送邮件
echo "$result" | mailx -s "System Check Report" [email protected] #[email protected]为接收邮箱地址
执行邮件发送脚本并测试结果可正常收到邮件
6.设置定时任务
使用 crontab
设置定时任务,每天凌晨 1 点执行邮件发送脚本:
crontab -e
0 1 * * * /bin/bash /path/to/send_report.sh
参考链接:https://www.jianshu.com/p/7631778c2956
原文始发于微信公众号(网络个人修炼):系统巡检报告自动发送设置指南
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论