簡體   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