首先使用df命令检查根分区使用率,超过80%阈值则发出警告,并可通过邮件通知管理员;其次利用du命令监控特定目录如/var/log的大小,超出设定的5GB上限时触发告警;最后将脚本添加到crontab中每12小时执行一次,实现定时监控。

设定磁盘使用率预警的实用脚本
在Linux系统中,磁盘空间不足可能引发服务中断或数据写入失败。通过编写一个简单的Shell脚本监控关键目录的使用情况,可以提前发现潜在问题。核心思路是利用
du或
df命令获取使用量,结合阈值判断并发送提醒。
使用 df 获取整体使用率并判断阈值
虽然标题提到
du,但监控挂载点整体空间更常用
df。以下脚本检查根分区使用率,超过设定阈值(如80%)则输出警告:
#!/bin/bash
THRESHOLD=80
PARTITION="/"
USAGE=$(df $PARTITION | grep '^/dev' | awk '{print $5}' | sed 's/%//')
if [ $USAGE -gt $THRESHOLD ]; then
echo "警告:分区 $PARTITION 使用率达到 ${USAGE}%,超过阈值 $THRESHOLD%"
可加入邮件发送:echo "警告内容" | mail -s "磁盘预警" admin@example.com
fi
用 du 监控指定目录大小并触发告警
若需监控特定目录(如
/var/log、
/home)的累积大小,可使用
du。以下脚本设定目录大小上限(如5GB),超出则提醒:
#!/bin/bash
DIR="/var/log"
LIMIT_MB=5120 # 5GB in MB
CURRENT_MB=$(du -sm "$DIR" 2>/dev/null | awk '{print $1}')
if [ -z "$CURRENT_MB" ]; then
echo "错误:无法读取目录 $DIR 的大小"
exit 1
fi
if [ $CURRENT_MB -gt $LIMIT_MB ]; then
echo "警告:目录 $DIR 当前大小为 ${CURRENT_mb}MB,超过限制 $LIMIT_MB MB"
fi
整合脚本并设置定时任务
将脚本保存为
disk_monitor.sh,赋予执行权限: chmod +x disk_monitor.sh
使用
crontab每日执行两次: crontab -e
# 添加一行:
0 */12 * * * /path/to/disk_monitor.sh
如需通知,可将输出重定向到邮件或日志文件。
基本上就这些。关键是根据实际需求选择
df还是
du,设定合理阈值,并确保脚本稳定运行。










