2017-07-09 6 views
0

Ich verwende ein Automatisierungstool, um eine virtuelle Maschine zu erstellen. Während dieser Automatisierung wird eine Konfigurationsdatei (/etc/myprogram/cofig.ini) leer.Wie zu wissen, welcher Prozess eine Datei in Linux ändert

Der Inhalt dieser Datei wird benötigt, um die Automatisierung zu vervollständigen, aber ich bin ahnungslos, welcher Prozess die Datei leert.

Ich möchte eine Datei überwachen und den Namen der Prozesse auflisten, änderte den Inhalt der Datei.

Ich benutze Ubuntu 16.04.

Ich sah einige Fragen in Stackoverflow, aber half. Ich habe versucht, audictl inotify und watchdog zu verwenden. Bitte lassen Sie mich einen besseren Weg wissen, dies zu tun. Gibt es eine Möglichkeit, dies mit Python zu tun?

+0

'inotify' soll zeigen können, ob andere Prozesse den Inhalt ändern. Wie hast du es benutzt? – l0b0

Antwort

3

Der lsof Befehl wird zeigen, welche Prozesse verwenden, welche Dateien:

lsof | grep <filename> 
2

Sie lsof verwenden können. Mit diesem Befehl erfahren Sie, welche Prozesse die Datei derzeit geöffnet haben. Wenn Sie die Datei öffnen, darauf schreiben und dann schließen, können Sie Auditing verwenden.

/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. 

warten, bis die Datei ändern, dann verwenden

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