Linux下查看哪个进程对某文件进行了操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下查看哪个进程对某文件进行了操作相关的知识,希望对你有一定的参考价值。

由于工作需要,近日开发了一个server agent,其中有个功能是对/path/to/file文件进行写入

 

在程序部署完成后,/path/to/file文件中内容刚开始是符合预期的

 

但是过了不到一分钟,发现/path/to/file已与预期不符,走查代码后确认无误,怀疑是有其他后台进程对此文件进行了修改,所以要查到这个元凶巨恶

 

起初,尝试使用lsof命令,具体说来,清空/path/to/file文件内容,然后写一个无限循环调用lsof /path/to/file,运行后发现无任何效果,但/path/to/file依然被修改了!

这仿佛说明,某进程瞬间完成了对/path/to/file的打开、写、关闭操作,lsof命令作罢

 

后来求助于stack overflow发现了解决方法,就是auditctl

1、先启动auditctl后台监控服务:service auditd start

2、设置监控规则:auditctl -w /path/to/file -p w -k hosts-file 监控写操作

3、过一段时间,ausearch -w /path/to/file 即可看到哪个进程使对文件/path/to/file用了哪个操作

 

以上是关于Linux下查看哪个进程对某文件进行了操作的主要内容,如果未能解决你的问题,请参考以下文章

lsof--包括查看端口属于哪个进程占用

查看文件被哪个进程占用

怎么查看某个进程是被哪个进程kill了 linux

查看哪个进程占用buffer cache 多

linux下查看哪个端口被哪个进程占用

linu学习笔记--进程基础