我使用自动化工具构建虚拟机。在此自动化期间,配置文件(/etc/myprogram/cofig.ini)变空。
这个文件的内容是完整的自动化所必需的,但是我很清楚哪个进程正在清空文件。
我想监视一个文件并列出更改文件内容的进程名称。
我使用的是Ubuntu 16.04。
我在Stackoverflow中看到了一些问题,但确实有所帮助。我试图使用audictl inotify和看门狗。请让我知道更好的方法来做到这一点。有没有办法用python做到这一点。
答案 0 :(得分:3)
lsof
命令将显示哪些进程正在使用哪些文件:
lsof | grep <filename>
答案 1 :(得分:2)
您可以使用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