用于计算文件系统的空闲和已用空间,并以用户友好的格式(例如 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。
配置邮件发送功能:确保系统已配置好邮件发送功能,可以使用 sendmail、postfix 或其他邮件传输代理(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 命令不可用,可以考虑使用其他邮件发送工具,如 sendmail 或 mailx。
报告文件在发送邮件后会被自动删除,以避免留下不必要的临时文件。
本文暂时没有评论,来添加一个吧(●'◡'●)