Ich habe gerade einen langen Prozess von der Bash-Eingabeaufforderung ausgeführt. Im Nachhinein wünschte ich, ich würde darauf herumlaufen time
oder mir die Zeit notieren, zu der ich es angepfiffen habe.
Gibt es eine Möglichkeit, diese Informationen nachträglich abzurufen? Das .bash_history
scheint keine Zeitstempel zu enthalten.
In meinem speziellen Fall ist es Mac OS X, aber ich interessiere mich für allgemeine Unix / Linux-Lösungen.
Zur Verdeutlichung ist der Vorgang nun abgeschlossen, und ich würde es vorziehen, ihn nicht erneut auszuführen, es sei denn, dies ist unbedingt erforderlich!
bash
osx
command-history
timestamps
audit
Graham Borland
quelle
quelle
Antworten:
bash
merkt sich eigentlich die Zeiten, bis man die Shell schließt.Also lauf mal
Wenn Sie auch setzen
In Ihrem
~/.bashrc
wird es auch~/.bash_history
beim Beenden geschrieben, sodass Sie auch überprüfen können, was in früheren Shell-Sitzungen passiert ist.quelle
Die Antwort von Mikel ist gut, außer dass Sie nicht wirklich sicher sein können, wann der Prozess abgeschlossen ist, wenn Sie das Programm ausführen und für eine Weile weggehen. Selbst wenn Sie die Zeit haben, in der Sie das Programm gestartet haben, wissen Sie nicht, wie lange es gedauert hat.
Ich habe keine Lösung für den Fall, dass Sie es ohne Vorbereitung herausfinden müssen. Wenn Sie das aber noch einmal machen wollen, können Sie es wie ich machen: Drucken Sie die aktuelle Zeit zusammen mit der Shell-Eingabeaufforderung. Auf diese Weise sehen Sie, wenn das Terminal noch geöffnet ist, die Uhrzeit, zu der Sie das Programm gestartet haben, und die Uhrzeit, zu der die nächste Eingabeaufforderung gedruckt wird. Ein bisschen Mathe bringt dir die Ausführungszeit.
Um dies zu tun
bash
, geben Sie dies ein in.bashrc
:In
zsh
, diese in deinem.zshrc
:Das Obige gibt Ihrer Shell-Eingabeaufforderung ein Format von
<time> <username>@<hostname> <current dir> <$ or % or #>
. Für die verschiedenen Schalen und verrückt Phantasie Aufforderungen, lesen Sie die man - Seite von Shell.Hinweis: Dies ist wahrscheinlich nicht hilfreich, wenn Sie eine hohe Genauigkeit benötigen oder wenn das Programm so viel ausgibt, dass Sie die vorherige Eingabeaufforderung nicht sehen können.
quelle
Wenn der Prozess noch ausgeführt wird, können
ps
Sie die Startzeit und die verwendete CPU-Zeit ermitteln.Zum Beispiel für alle Prozesse:
Für eine bestimmte PID (12345):
quelle
ps
unter Linux, dasps
unter MacOSX ist möglicherweise BSD und ich bin mir der Argumente nicht sicher.lastcomm (wenn BSD-Prozessabrechnung aktiviert ist) gibt Ihnen die Ausführungsdauer an (in einem begrenzten Sinn, der möglicherweise angemessen ist oder nicht).
quelle