在 Linux 上生成文件访问计数的报告/直方图

在 Linux 上生成文件访问计数的报告/直方图

我想为进程运行时访问的每个文件生成文件访问计数的报告或直方图。...不仅仅是该进程访问的文件,理想情况下还包括所有子进程/孙进程等。(如果做不到这一点,系统范围的报告也可以。)

我还需要指定多个文件系统进行监控。但是,我可以通过运行多个测试来解决问题,每个文件系统一次。

我曾在 Google 上搜索过诸如“linux 文件访问计数直方图”之类的短语,但没有找到任何似乎符合此需求的内容。

有没有现成的工具可以实现这一点?我更喜欢开源/免费软件。

答案1

  1. 监控文件访问。

您可以使用 linux auditd 守护进程来执行此操作。

apt-get install auditd
auditctl -a always,exit -F dir=/var -F pid=1005

并且它应该开始记录(在 Ubuntu 上,默认情况下记录到 /var/log/audit/audit.log)pid 1005 对 /var 中文件的所有访问。您可以微调规则以更精确地过滤您想要记录的内容。

  1. 生成报告。

可以使用任何通用日志分析工具来解析审计日志以获取统计数据。Logstash+Kibana 可以做到。Splunk 也可以。搜索“auditctl log analyzer”会让我找到更多专业工具,例如审计指南或者审计时间表,但我没有这方面的经验。

答案2

如果您想调试某些东西,我建议您在进程上使用 strace。使用 -e 即 strace -eopen 过滤 strace 并将输出重定向到文件。然后通过脚本跟踪解析打开的请求并制作直方图。

相关内容