CentOS文件系统监控方法
inotify是Linux内核提供的文件系统事件监控机制,inotify-tools是其命令行工具集,可实现实时监控文件/目录的创建、删除、修改等操作。
sudo yum install inotify-tools -y。inotifywait -m -r /path/to/directory -e create,delete,modify,move(-m表示持续监控,-r递归,-e指定事件类型)。inotifywait -m /path/to/file -e modify,attrib(attrib表示文件属性变化,如权限修改)。>> /var/log/inotify.log 2>&1 &),或通过脚本实现自定义告警(如发送邮件、重启服务),例如。auditd是CentOS内置的审计服务,可详细记录文件系统的访问、修改等操作,适合安全合规场景。
sudo yum install audit -y安装,sudo systemctl start auditd启动服务,sudo systemctl enable auditd设置开机自启。auditctl命令添加规则,例如监控/var/www/html目录的写入和属性变化:sudo auditctl -w /var/www/html -p wa -k web_dir_monitor(-w指定路径,-p wa表示监控写入w和属性变化a,-k设置关键字便于过滤)。ausearch -k web_dir_monitor命令过滤关键字日志,或使用aureport生成统计报告。适用于大规模集群监控,提供可视化 dashboard 和告警功能。
node_exporter(监控节点指标)和prometheus(数据采集),配置prometheus.yml添加节点和文件系统监控目标(如scrape_configs中配置job_name: 'filesystem')。grafana并添加Prometheus数据源,导入文件系统监控 dashboard(如“Node Exporter Full”),设置磁盘使用率、inode剩余量等告警阈值。跨平台文件系统监控工具,支持实时监控和事件通知。
sudo yum install fswatch -y安装,基本命令为fswatch -0r /path/to/directory | xargs -0 -I {} echo "Directory changed: {}"(-0用null分隔事件,-r递归监控)。通过bash脚本结合系统命令实现基础监控,适合简单需求。
df -h查看磁盘使用率,du -sh /path查看目录大小,ls -l /path查看文件列表。/data目录大小,超过10GB时发送告警:#!/bin/bash
DIR_SIZE=$(du -s /data | awk '{print $1}')
MAX_SIZE=$((10*1024)) # 10GB转换为KB
if [ $DIR_SIZE -gt $MAX_SIZE ]; then
echo "Warning: /data directory size exceeds 10GB!" | mail -s "Disk Space Alert" admin@example.com
fi
将脚本添加到cron(如*/5 * * * * /path/to/script.sh)实现每5分钟检查一次。