1. inotify-tools(含inotifywait/inotifywatch)
inotify是Linux内核提供的文件系统事件监控机制,inotify-tools是其用户态工具集,用于实时监控文件/目录变化。核心命令包括:
sudo yum install inotify-tools -y
。/var/www/html
)的文件变更,配合脚本实现自动同步或告警。2. auditd(Linux审计系统)
auditd是内核级审计框架,可详细记录文件/目录的访问、修改、权限变更等操作,适合安全审计和合规性检查。
安装:sudo yum install audit -y
。
配置:通过auditctl
命令添加监控规则(如-w /path/to/dir -p wa -k my_dir_watch
,其中-p wa
表示监控写入和属性变更,-k
为自定义关键字);启动服务:sudo systemctl start auditd && sudo systemctl enable auditd
。
查看日志:使用ausearch -k my_dir_watch
过滤关键字日志,或通过aureport
生成统计报告。
3. fswatch
fswatch是跨平台文件系统监控工具(支持Linux、macOS、Windows),支持递归监控、事件过滤(如仅监控.txt
文件)和自定义输出格式。
安装:sudo yum install fswatch -y
。
常用命令:fswatch -0r /path/to/dir | xargs -0 -I {} echo "Directory changed: {}"
(-0
用空字符分隔事件,-r
递归监控)。
适用场景:需要跨平台兼容或复杂事件过滤的场景(如监控代码仓库的文件变更)。
4. lsof(List Open Files)
lsof用于列出当前系统打开的文件及使用该文件的进程,可间接监控文件/目录的访问情况(如哪些进程正在写入某个目录)。
常用命令:lsof +D /path/to/dir
(+D
递归列出目录下所有打开的文件),或lsof | grep /path/to/dir
过滤特定路径。
适用场景:排查文件被非法占用、监控关键目录的实时访问进程。
5. strace
strace是系统调用跟踪工具,可监控进程对文件的操作(如打开、读取、写入、删除),适合调试或监控特定进程的文件行为。
常用命令:strace -e trace=file -p <pid>
(-e trace=file
仅跟踪文件相关系统调用,-p
指定进程ID)。
适用场景:监控某个进程(如数据库服务)的文件操作,排查文件访问异常。
6. 系统自带命令(df/du)
系统自带的df
(Disk Filesystem)和du
(Disk Usage)工具用于监控文件系统的使用情况(而非实时变化),适合日常容量管理。
df -h
:显示各文件系统的总大小、已用空间、可用空间及挂载点(-h
以人类可读格式输出,如GB、MB);du -sh /path/to/dir
:显示指定目录的总大小(-s
汇总,-h
人类可读)。7. 第三方监控平台(Prometheus+Grafana/Zabbix/Nagios)
这类工具提供全面的监控和告警能力,支持文件系统指标(如磁盘使用率、I/O速率、inode剩余数量)的可视化(如Grafana dashboard)和自动化告警(如邮件、短信通知)。
check_disk
)监控磁盘空间,触发告警。sudo yum install prometheus node_exporter grafana -y
,配置Prometheus采集node_exporter数据,Grafana导入文件系统监控 dashboard。