繁体   English   中英

如何知道哪个进程正在更改Linux中的文件

[英]How to know which process is changing a file in linux

我正在使用自动化工具来构建虚拟机。 在此自动化过程中,配置文件(/etc/myprogram/cofig.ini)变为空。

该文件的内容是完成自动化所必需的,但是我不知道哪个进程正在清空该文件。

我要监视一个文件并列出更改文件内容的进程名称。

我正在使用Ubuntu 16.04。

我在Stackoverflow中看到了一些问题,但确实有所帮助。 我试图使用aaudictl inotify和watchdog。 请让我知道任何更好的方法。 有没有办法使用python做到这一点。

lsof命令将显示哪些进程正在使用哪些文件:

lsof | grep <filename>

您可以使用lsof 该命令用于查找当前哪些进程已打开文件。 如果处理过程是打开文件,写入文件然后关闭文件,则可以使用审核。

/sbin/auditctl -w /etc/myprogram/cofig.ini -p war -k config.ini-file

-w watch etc/myprogram/cofig.ini
-p warx watch for write, attribute change, execute or read events
-k config.ini-file is a search key.

等到文件更改后再使用

/sbin/ausearch -f /etc/myprogram/cofig.ini | more

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM