前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

通过实例学习Linux脚本09 生成磁盘空间报告并发送邮件

qiguaw 2025-03-13 19:43:41 资源文章 17 ℃ 0 评论

用于计算文件系统的空闲和已用空间,并以用户友好的格式(例如 GB)呈现结果,然后将总结信息通过电子邮件发送给系统管理员。脚本的参数是管理员的电子邮件地址。

Bash 脚本

 #!/bin/bash
 
 # 检查是否提供了管理员的电子邮件地址
 if [ "$#" -ne 1 ]; then
     echo "用法:$0 管理员邮箱"
     echo "示例:$0 admin@example.com"
     exit 1
 fi
 
 email_admin=$1
 
 # 创建临时文件用于存储报告
 report_file=$(mktemp /tmp/disk_space_report.XXXXXX)
 
 # 生成报告
 echo "磁盘空间报告 - $(hostname)" > "$report_file"
 echo "生成时间:$(date)" >> "$report_file"
 echo "---------------------------------------------" >> "$report_file"
 
 # 使用 df 命令获取磁盘使用信息,并用 awk 处理和转换为 GB 格式
 df -h | awk 'NR>1 {print $1 " 已用空间: " $5 ", 空闲空间: " $4}' >> "$report_file"
 
 # 发送报告邮件
 if [ -s "$report_file" ]; then
     mail -s "磁盘空间报告 - $(date +'%Y-%m-%d %H:%M:%S')" "$email_admin" < "$report_file"
     echo "报告已发送至 $email_admin。"
 else
     echo "错误:磁盘空间报告为空。"
 fi
 
 # 清理临时文件
 rm "$report_file"

使用说明

保存脚本到文件:将脚本内容保存到一个文件中,例如 disk_space_report.sh

配置邮件发送功能:确保系统已配置好邮件发送功能,可以使用 sendmailpostfix 或其他邮件传输代理(MTA)。具体配置方式取决于你的系统和邮件服务器设置。

  • 示例:在 Debian/Ubuntu 系统中,可以使用以下命令安装 postfix
  • sudo apt-get update
    sudo apt-get install postfix
  • 配置完成后,可以使用 mail 命令发送测试邮件:
  • echo "测试邮件内容" | mail -s "测试邮件主题" your_email@example.com

给文件添加执行权限

 chmod +x disk_space_report.sh

运行脚本:提供系统管理员的邮箱地址作为参数运行脚本。例如:

 ./disk_space_report.sh admin@example.com

该命令会生成磁盘空间报告,并将其发送到 admin@example.com

注意事项

脚本使用 df -h 命令获取磁盘使用信息,-h 选项会以人类可读的格式(如 KB、MB、GB)显示磁盘空间大小。

awk 用于处理 df 命令的输出,提取分区名称、已用空间和空闲空间信息,并以用户友好的格式记录到报告文件中。

确保 mail 命令已正确配置,以便能够发送电子邮件。如果 mail 命令不可用,可以考虑使用其他邮件发送工具,如 sendmailmailx

报告文件在发送邮件后会被自动删除,以避免留下不必要的临时文件。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表