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

我想为进程运行时访问的每个文件生成一个文件访问计数的报告或直方图。 …而不仅仅是该进程访问的文件,但理想情况下所有的儿童/孙子/等进程。 (如果不这样做,全系统的报告就可以了。)

我还需要指定多个文件系统来监视。 但是,我可以通过运行多个testing通过,每个文件系统一次。

我已经search了诸如“linux文件访问统计直方图”等短语,但没有find任何似乎符合这种需求的东西。

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

  1. 监视文件访问。

你可以使用linux auditd守护进程来做到这一点。

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

它应该开始logging(在Ubuntu上,默认情况下是/var/log/audit/audit.log)全部访问由pid 1005制作的/ var中的文件。您可以微调规则以更精确地过滤您想要的login。

  1. 生成报告。

parsing审计日志以获取统计信息可以使用任何通用日志分析工具来完成。 Logstash + Kibana可以做到这一点。 Splunk也是。 search“auditctl日志分析器”导致我更专门的工具,如Audit-gui或Auditd-timeline ,但我没有经验。

如果你想debugging的话,build议在过程中使用strace。 用-e即strace -eopen过滤strace并将其redirect到文件。 然后采取跟踪parsing打开的请求,并通过脚本直方图。