Właśnie wykonałem długo działający proces z monitu bash. Z perspektywy czasu chciałbym time
na nim biegać lub zanotować czas, w którym go rozpocząłem.
Czy jest jakiś sposób na uzyskanie tych informacji z mocą wsteczną? .bash_history
Nie wydaje się zawierać znaczniki czasu.
W moim szczególnym przypadku jest to Mac OS X, ale interesują mnie ogólne rozwiązania Unix / Linux.
Aby to wyjaśnić, proces został zakończony i wolałbym nie uruchamiać go ponownie, chyba że jest to absolutnie konieczne!
bash
osx
command-history
timestamps
audit
Graham Borland
źródło
źródło
Odpowiedzi:
bash
faktycznie pamięta czasy, dopóki nie zamkniesz skorupy.Więc spróbuj uruchomić
Jeśli również umieścisz
w twoim
~/.bashrc
również zostanie napisane~/.bash_history
przy wyjściu, więc możesz sprawdzić, co się stało w poprzednich sesjach powłoki.źródło
Odpowiedź Mikela jest dobra, z tym wyjątkiem, że jeśli uruchomisz program i odejdziesz na chwilę, nie możesz być pewien, kiedy proces się zakończy. Nawet jeśli masz czas na uruchomienie programu, nie wiesz, ile czasu to zajęło.
Nie mam rozwiązania dla sprawy, w której musisz się dowiedzieć bez przygotowania. Jeśli jednak zamierzasz to zrobić ponownie, możesz zrobić tak jak ja: wydrukuj aktualny czas wraz z poleceniem powłoki. W ten sposób, jeśli nadal masz otwarty terminal, możesz zobaczyć czas uruchomienia programu i czas, kiedy zostanie wydrukowany następny monit. Trochę matematyki zapewni ci czas wykonania.
Aby to zrobić
bash
, umieść to w.bashrc
:W
zsh
, umieścić to w swoim.zshrc
:Powyższe spowoduje, że twój shell poprosi o format
<time> <username>@<hostname> <current dir> <$ or % or #>
. Aby uzyskać informacje o różnych powłokach i szalonych fantazyjnych podpowiedziach, przeczytaj stronę manuala swojej powłoki.Uwaga: prawdopodobnie nie pomoże to, jeśli potrzebujesz wysokiej precyzji lub jeśli program generuje tak dużo danych wyjściowych, że nie widzisz poprzedniego monitu.
źródło
Jeśli proces jest nadal uruchomiony, możesz użyć go,
ps
aby uzyskać czas rozpoczęcia i ile czasu procesora użył.Na przykład dla wszystkich procesów:
Dla konkretnego pid (12345):
źródło
ps
w systemie Linux,ps
w MacOSX może być BSD i nie jestem pewien argumentów.lastcomm (jeśli włączone jest rozliczanie procesów BSD) da ci czas wykonania (w pewnym ograniczonym sensie, który może, ale nie musi być odpowiedni).
źródło