Shell 脚本实战:监控磁盘使用率并告警
服务器运行久了,磁盘爆满往往是导致服务不可用的常见原因之一。与其等到故障发生再排查,不如写个简单的脚本定期巡检。下面是一个利用 Shell 实现磁盘使用率监控并发送邮件告警的示例。
核心思路是通过 df -h 获取磁盘信息,解析出特定分区的占用百分比,并与预设阈值比较。如果超过限制,就调用 mail 命令发送通知。
MAX=95
[email protected]
PART=sda1
USE=$(df -h | grep $PART | awk '{ print $5 }' | cut -d'%' -f1)
USE=`printf "%.0f\n" $USE`
if [ $USE -gt $MAX ]; then
echo "Percent used: $USE" | mail -s "Running out of disk space" $EMAIL
else
echo "all is well"
fi
这里有个细节需要注意,df 的输出格式在不同 Linux 发行版间可能略有差异,但通常第 5 列都是使用率百分比。脚本中的 grep $PART 用来精准匹配目标分区,比如 /dev/sda1 或挂载点。
实际部署时,建议将脚本加入 crontab 定时任务,比如每天凌晨检查一次。另外,请确保服务器环境已经正确配置了 mail 命令(通常需要 postfix 或 sendmail),否则告警邮件无法发出。测试运行时可以先手动执行脚本,观察输出是否符合预期。

