Prozessprotokoll unter GNU/Linux
Dieser Beitrag soll es ermöglichen ohne zusätzliche Installation von Dingen wie audit oder DTrace.
Es passiert etwas auf einem System und man weiß nicht was und warum. Es entstehen Fehler aber man kommt einfach nicht dahinter warum das so ist. Man hat eventuell schon einen Verdacht aber man kann ihn nicht fassen.
Irgendwas muss auf dem System schief laufen. Blos wie kommt man an diese Information ?
Der Befehl top liefert eine aktuelle Liste der Prozesse. Es wird aber nicht angezeigt was genau ausgeführt wird und wie die Prozesse zusammenhängen und welche Parameter diese verwenden.
ps liefert da schon mehr Informationen. Ohne weitere Parameter aber auch nutzlos.
ps efaux
Dies zeigt schon eher das was wir brauchen.
Wie bekommen wir es aber nun hin, dass wir ein Protokoll bekommen ? Denn eine kurze Momentaufnahme reicht nicht. Denn woher sollen wir wissen wann und wie lange der Prozess läuft ?
Wir basteln uns einfach was:
( while [ 1 ] ; do ps efaux ; sleep 1; done ) | tee /path/to/protokoll
Und schon haben wir ein Protokoll mit dem wir den Prozess einfangen können. Wer es schneller und noch aktueller haben möchte als nur jede Sekunde, der nimmt einfach sleep 1 raus. Dabei aber darauf achten, dass das file schnell sehr groß werden kann !