You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将CentOS 7 VM中备份检测Shell脚本的输出发送至指定邮箱

在CentOS 7中实现备份检测结果邮件推送

1. 安装邮件发送工具

CentOS 7 默认没有预装可直接发送邮件的 mailx 工具,先通过yum安装:

yum install -y mailx

2. 配置SMTP邮箱(以QQ邮箱为例)

编辑系统邮件配置文件 /etc/mail.rc,添加SMTP相关参数(替换为你自己的邮箱信息):

vi /etc/mail.rc

在文件末尾追加以下内容:

set from=your-qq-email@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=your-qq-email@qq.com
set smtp-auth-password=your-email-authorization-code
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/

注意:smtp-auth-password 不是邮箱登录密码,是邮箱开启POP3/SMTP后生成的授权码(比如QQ邮箱在「设置-账户」中开启POP3/SMTP服务后即可获取)。

3. 修改备份检测脚本,添加邮件发送逻辑

假设你的检测脚本已经能输出备份状态,只需在脚本末尾添加邮件发送命令,或者直接将脚本输出通过管道传递给 mail 命令:

方式1:在脚本内集成发送逻辑

修改你的脚本,将检测结果存入变量后发送:

#!/bin/bash

# --- 你的原有备份检测逻辑 ---
BACKUP_PATH="/data/backups"
LATEST_BACKUP=$(find $BACKUP_PATH -name "backup_*.tar.gz" -mtime -1 | head -n1)

if [ -n "$LATEST_BACKUP" ]; then
    DETECT_RESULT="✅ 今日备份成功完成,备份文件路径:$LATEST_BACKUP"
else
    DETECT_RESULT="❌ 今日备份失败,未找到今日生成的备份文件"
fi

# --- 添加邮件发送部分 ---
echo "$DETECT_RESULT" | mail -s "每日备份检测报告" target-email@xxx.com

方式2:直接管道传递脚本输出

如果你的脚本已经直接输出检测结果,无需修改脚本,直接执行以下命令即可发送邮件:

/path/to/your/backup-check-script.sh | mail -s "每日备份检测报告" target-email@xxx.com

4. 测试邮件发送

先手动执行测试命令,验证邮件是否能正常发送:

echo "备份检测脚本测试邮件" | mail -s "测试:备份检测报告" your-email@xxx.com

登录收件邮箱查看是否收到邮件,若未收到可检查日志 /var/log/maillog 排查问题。

5. 配置定时自动执行

如果需要每天自动检测并发送报告,用crontab添加定时任务:

crontab -e

添加一行定时规则(比如每天早上7点执行脚本):

0 7 * * * /path/to/your/backup-check-script.sh

保存退出后,crontab会自动生效。

内容的提问来源于stack exchange,提问作者sandesh Jadhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:33:19