本文共 1490 字,大约阅读时间需要 4 分钟。
随着系统数据量的不断增加,监控系统资源的使用情况变得更加重要。磁盘空间的使用率是衡量系统健康状态的重要指标之一。当磁盘空间接近满载时,可能会导致系统性能下降,甚至引发服务中断。因此,能够及时监控磁盘空间使用情况并采取行动,是维护系统稳定性的关键。
本文将介绍如何使用 Linux shell 脚本监控磁盘空间使用率,并在达到设定阀值时发送邮件警告。通过这些脚本,可以有效地监控并管理系统的磁盘资源。
为了实现磁盘空间监控和邮件发送的功能,可以使用以下步骤:
首先,确保系统中安装了 mailutils
或类似的邮件传输代理,以便脚本能够发送邮件。可以通过以下命令安装:
sudo yum install mailutils
以下是一个示例脚本,用于监控磁盘空间使用率并发送邮件:
#!/bin/bash# 设置邮件发送地址EMAIL="admin@example.com"# 定义阀值,建议设置为70%或更高THRESHOLD=70# 获取磁盘使用情况DF_OUTPUT=$(df -Ph | grep -vE '^Filesystem|tmpfs|cdrom|proc|dev')# 遍历每行输出,检查磁盘使用率for each_line in $(df -Ph | grep -vE '^Filesystem|tmpfs|cdrom|proc|dev'): IFS=$'\n' read -r FS MOUNTPOINT PERCENT USED if [ $PERCENT -ge $THRESHOLD ]: echo "磁盘 $MOUNTPOINT 使用率达到 $PERCENT%(高于阀值)" | mail -s "磁盘空间警告" $EMAIL
为了确保监控任务定期执行,可以使用 crontab
命令设置定时任务。例如,每 10 分钟运行一次:
crontab -e
然后,在编辑器中添加以下行:
* * * * * /path/to/script.sh
邮件内容可以根据需求进行调整,例如:
echo -e "磁盘 $MOUNTPOINT 使用率达到 $PERCENT%(高于阀值)\n日期:$(date)\n主机名:$(hostname)" | mail -s "磁盘空间警告" $EMAIL
为了确保脚本的稳定性,可以在脚本中添加错误处理,例如:
set -eo pipefail
这样可以使得脚本在遇到错误时能够适当处理,并记录日志。
pwd
命令验证当前工作目录。checkmail
或类似工具可以提高邮件发送的可靠性。sudo
执行相关命令。df -Ph
的输出与脚本兼容,避免格式化错误。通过以上步骤,您可以轻松创建一个监控磁盘空间使用率并发送邮件的 shell 脚本,并通过 crontab
设置定时任务,确保系统资源的稳定监控。
转载地址:http://fsol.baihongyu.com/