Gibt es eine für Menschen lesbare Strace-Alternative?

Gibt es eine für Menschen lesbare Strace-Alternative?

Ich möchte wissen, auf welche Dateien ein Prozess zugreift. stracekann mir diese Informationen liefern, aber die Ausgabe straceist 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 aus

   rsyslogd(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.

verwandte Informationen