温馨提示×

debian readdir如何监控

小樊
34
2026-09-22 14:52:44
栏目: 智能运维

在 Debian(以及其他 Linux 发行版)里,“监控 readdir”通常有几层含义,取决于你是想看哪个进程在读取目录实时监控目录变化,还是审计系统调用。下面按常见场景给你几种做法。


一、实时监控“目录内容变化”(最常用)

如果你只是想知道某个目录里文件被增删改,用 inotify 系列工具最合适。

1. 使用 inotifywait(推荐)

sudo apt install inotify-tools

inotifywait -m -r -e open,access,modify,create,delete /path/to/dir

常用事件:

  • open / access:readdir 相关
  • create / delete:文件变化
  • -r:递归子目录
  • -m:持续监控

示例(只监控 readdir):

inotifywait -m -e open,access /var/log

二、监控“谁在调用 readdir”(系统调用级)

如果想知道哪个进程、哪个命令正在读取目录

2. 使用 strace(调试单个进程)

strace -e trace=file -f ls /tmp

监控已运行进程:

strace -e trace=file -p <PID>

只看 readdir:

strace -e trace=readdir,getdents,getdents64 -p <PID>

三、系统级审计(谁动了哪个目录)

适合安全审计、入侵检测。

3. 使用 auditd

sudo apt install auditd

sudo auditctl -w /path/to/dir -p r -k dir_read

查看日志:

sudo ausearch -k dir_read

字段说明:

  • -p r:读(readdir)
  • -k:自定义关键字

四、内核级监控(高级)

4. eBPF / bpftrace(推荐高级用户)

sudo bpftrace -e '
tracepoint:syscalls:sys_enter_getdents* {
    printf("%s %d %s\n", comm, pid, str(args->pathname));
}'

优点:

  • 极低开销
  • 可生产环境使用

五、总结对照表

需求 工具
看目录变化 inotifywait
看某进程 readdir strace
审计谁读目录 auditd
高性能内核监控 eBPF

如果你能说清楚:

  • 用户态还是内核态
  • 某个目录还是整个系统
  • 调试还是安全审计

我可以给你更精确的命令示例。

0