直接在文件系统级别监控 inode 使用并触发告警,核心是定时采集 df -i 数据、设定合理阈值、自动判断并通知:用 df -i -b1 和 awk 提取 iuse% 值,对多挂载点分别监控;设 85% 预警、90% 紧急阈值,/tmp 等小文件区可设 80%;连续 2–3 次超标才发邮件,附 df -i 输出、inode 占用 top3 目录及 24 小时新增文件最多目录;通过 crontab 每 10 分钟执行,脚本加 flock 防重入,错误写日志。

直接在文件系统级别监控 inode 使用并触发告警,核心是定时采集 df -i 数据、设定合理阈值、自动判断并通知。不依赖外部平台,纯 Shell 脚本 + crontab 就能稳定运行。
关键指标采集:用 df -i 提取精确数值
不能只靠 df -i 人工看,要提取结构化数据:
- 用
df -i -B1获取字节级原始值,避免单位换算偏差 - 用
awk精准抓取IUse%列,跳过标题行:df -i /data | awk 'NR==2 {print $5}' | sed 's/%//' - 对多个挂载点(如
/、/var、/data)分别采集,不漏关键路径
设定双层阈值:区分预警与紧急
inode 告警不是“一满就发”,需分场景响应:
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 预警阈值设为 85%:提示开始关注,检查是否有异常小文件增长
- 紧急阈值设为 90% 或 95%:此时服务已可能出错(如 SSH 拒绝、PHP session 创建失败),必须立即介入
- 对
/tmp、/var/lib/php/sessions这类小文件高发区,可单独设更低阈值(如 80%)
告警触发逻辑:防误报、带上下文
单次超标容易是临时行为,脚本需加判断:
- 连续 2–3 次检测都超阈值再发邮件,避免 rsync 传包等瞬时高峰干扰
- 告警邮件中必须包含:
– 当前df -i完整输出
– 该挂载点下 inode 占用最高的前 3 个子目录:du --inodes -s /path/* 2>/dev/null | sort -nr | head -3
– 最近 24 小时新增文件最多的目录:find /path -type f -newermt "$(date -d '24 hours ago' +%Y-%m-%d)" -printf '%h\n' | sort | uniq -c | sort -nr | head -1
集成到定时任务:轻量可靠
写入 crontab,例如每 10 分钟检查一次:
*/10 * * * * /opt/bin/check-inode.sh >> /var/log/inode-monitor.log 2>&1- 脚本开头加锁(
flock -n)防止上一次未结束就重复执行 - 失败时记录错误码和时间戳,便于排查采集异常(如权限不足、df 命令卡住)










