1

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

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

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

我正在使用 Ubuntu 16.04。

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

4

2 回答 2

3

你可以使用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
于 2017-07-09T18:36:52.477 回答
3

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

lsof | grep <filename>
于 2017-07-09T17:57:29.920 回答