
Ich möchte wissen, auf welche Dateien ein Prozess zugreift. strace
kann mir diese Informationen liefern, aber die Ausgabe strace
ist eher „roh“. Gibt es etwas, das ähnliche Funktionen bietet, aber in einer für Menschen lesbareren Form (z. B. Bibliotheken herausfiltern, Dateien im $HOME-Verzeichnis hervorheben, Statistiken darüber bereitstellen, wie oft auf Dinge zugegriffen wird usw.)?
Antwort1
Ein Typ namens Ole Tange hat das von Ihnen beschriebene Tool programmiert. Schauen Sie hierhttps://gitlab.com/ole.tange/tangetools/tree/master/tracefile. Die Tracedatei ist im Wesentlichen ein Shell-Skript. Machen Sie sie also ausführbar und führen Sie sie aus. Die .pod-Datei ist ein Handbuch, das die Verwendung beschreibt.
Antwort2
Fette
Installiere dasFettePaket:
sudo apt install fatrace
NAME fatrace - Systemweite Dateizugriffsereignisse melden
ZUSAMMENFASSUNG fatrace [ OPTIONEN ]
BESCHREIBUNG Fatrace meldet Dateizugriffsereignisse von allen laufenden Prozessen.
Es meldet keinen Dateizugriff durch Fatrace selbst, um das Protokollieren von Ereignissen zu vermeiden, die durch das Schreiben der Ausgabe in eine Datei verursacht werden. Es ignoriert auch Ereignisse auf virtuellen und Kernel-Dateisystemen wie sysfs, proc und devtmpfs.
Sein Hauptzweck besteht darin, Prozesse zu finden, die die Festplatte unnötig aufwecken und so eine Energieeinsparung verhindern.
Standardmäßig werden Ereignisse an stdout gemeldet. Dies führt zu einigen Schleifen, wenn Sie dieses Tool beispielsweise im Gnome-Terminal ausführen, da dies für jede Ausgabezeile einen Festplattenzugriff verursacht. Um dies zu vermeiden, leiten Sie die Ausgabe in eine Datei um.
AUSGABEFORMAT
Ein typisches Ereignis sieht so ausrsyslogd(875): W /var/log/auth.log compiz(1971): O device 8:2 inode 658203
Die Zeile hat folgende Felder:
Prozessname. Dieser wird aus /proc/pid/comm gelesen und kann bei langen Prozessnamen abgekürzt werden.
Prozess ID
Ereignistyp: Öffnen, Lesen, Schreiben oder Schließen. Kombinationen sind möglich, wie z. B. CW zum Schließen einer geschriebenen Datei.
Betroffene Datei. In manchen Fällen können Pfad und Name nicht ermittelt werden, z. B. weil es sich um eine temporäre Datei handelt, die bereits gelöscht wurde. In diesem Fall werden die Haupt- und Nebennummer des Geräts sowie die Inode-Nummer ausgegeben. Um einen solchen Vorgang genauer zu untersuchen, sollten Sie strace(1) verwenden.
Wenn Sie die Option --timestamp angeben, enthält das erste Feld die aktuelle Uhrzeit.