Prozessverlauf in Unix / Linux-Systemen

11

Ich weiß, dass dies ps -efllaufende Prozesse auf * nix-Systemen zeigt.

Ich möchte die Geschichte der (letzten) Prozesse überprüfen , die auf einer bestimmten Maschine ausgeführt wurden, vorzugsweise mit allen Informationen psliefert (dh %CPU, %MEM).

Welche Befehlszeilenprogramme kann ich verwenden .bash_history? Werden diese Informationen ähnlich wie in einer Datei gespeichert?

Syntagma
quelle
2
Auf * nix ist das eher so ps -efl. ps auxNur für BSD / Linux.
Stéphane Chazelas
Möglicherweise können Sie SNMP einrichten und den SNMP-Dämon regelmäßig abfragen, um dies zu erreichen. Ich habe dies für die Speichernutzung für Prozesse über einen bestimmten Zeitraum getan.
Lawrence
Wie hier beschrieben: serverfault.com/questions/386956/pid-history-of-a-process , einige Prozesse veröffentlichen dort PIDs in syslog (oder können dazu veranlasst werden).
Billc

Antworten:

5

Versuchen Sie es atop. Es kann einen konfigurierbaren Verlauf verschiedener Systeminformationen (Prozesse sowie CPU-, Speicher-, Festplatten- und Netzwerknutzung) speichern. Hinweis: Es kann natürlich nicht alles aufgezeichnet werden. Es werden nur regelmäßig "Schnappschüsse" erstellt.

BEARBEITEN: Falls dies nicht klar ist, gibt es einen atopDaemon, der die periodischen Snapshots ausführt, die in /var/log/atop(unter Debian verwendetes Verzeichnis) gespeichert sind .

vinc17
quelle
2
Vielleicht bemerkenswert: Es kann nicht in die Vergangenheit schauen, es sieht nur Prozesse, während es läuft.
Guntbert
3
@guntbert Da es regelmäßig speichert, was es sieht und man es mit der -rOption wiedergeben kann, ist es eine Möglichkeit, in die Vergangenheit zu schauen.
vinc17
2
Stimmt (deshalb habe ich "vielleicht" gesagt), aber das funktioniert natürlich erst, nachdem der Dienst gestartet wurde, während das OP möglicherweise erwartet, zu sehen, was schon vorher passiert ist.
Guntbert