在 Linux 系统中,我们经常需要通过 Shell 脚本来监控系统状态、执行任务,并在特定条件下自动发送邮件通知管理员。例如:磁盘空间不足、服务宕机、备份完成等场景。本文将手把手教你如何使用 Linux Shell 发送邮件,即使是初学者也能轻松上手。
大多数 Linux 发行版默认未安装邮件客户端。我们需要先安装一个常用的邮件发送工具,比如 mailutils(Debian/Ubuntu)或 mailx(CentOS/RHEL)。
Ubuntu/Debian 系统:
sudo apt updatesudo apt install mailutils CentOS/RHEL 系统:
sudo yum install mailx 安装完成后,系统就具备了通过 Shell 发送邮件的能力。
默认情况下,mail 命令会尝试通过本地的邮件服务器(如 Postfix)发送邮件。但很多服务器没有配置邮件服务,因此更推荐使用外部 SMTP 服务器(如 Gmail、QQ 邮箱、企业邮箱等)来发送邮件。
以使用 QQ 邮箱为例,你需要:
/etc/ssmtp/ssmtp.conf 文件(若未安装 ssmtp,可先安装:sudo apt install ssmtp)配置示例:
root=yourname@qq.commailhub=smtp.qq.com:587AuthUser=yourname@qq.comAuthPass=你的授权码UseSTARTTLS=YES 这样配置后,所有通过 mail 命令发送的邮件都会走 QQ 邮箱的 SMTP 服务器。
最简单的发送方式如下:
echo "这是一封测试邮件" | mail -s "测试主题" user@example.com 解释:
echo 输出邮件正文-s 指定邮件主题user@example.com 是收件人地址你也可以从文件读取内容:
mail -s "系统报告" admin@company.com < /var/log/report.txt 下面是一个监控磁盘使用率的脚本示例。当使用率超过 80% 时,自动发送警告邮件。
#!/bin/bashTHRESHOLD=80USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')if [ "$USAGE" -gt "$THRESHOLD" ]; then echo "警告:根分区使用率已达到 ${USAGE}%!" | \ mail -s "[ALERT] 磁盘空间不足" admin@example.comfi 将上述脚本保存为 disk_alert.sh,赋予执行权限:
chmod +x disk_alert.sh 再配合 crontab 定时执行(例如每小时检查一次):
0 * * * * /path/to/disk_alert.sh 如果你发现邮件没有收到,可以尝试以下方法排查:
tail -f /var/log/mail.log(Ubuntu)或 /var/log/maillog(CentOS)mailq通过本文,你已经掌握了在 Linux Shell 中发送邮件的基本方法,包括工具安装、SMTP 配置、命令使用以及自动化脚本编写。无论是用于 Linux Shell邮件发送、Shell脚本发邮件,还是实现 自动化邮件通知,这些技能都能大大提升你的运维效率。而 mail命令教程 的核心就是理解输入、主题和收件人的组合方式。
现在,你可以尝试将邮件功能集成到你的监控、备份或部署脚本中,让系统“主动”告诉你发生了什么!
本文由主机测评网于2025-11-30发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025111400.html