Jak posortować dane wyjściowe ps według czasu rozpoczęcia procesu?


Odpowiedzi:


87

Powinno to działać w systemach Linux i SysV5

ps -ef --sort=start_time

Działa to dokładnie zgodnie z życzeniem, dzięki. Po dalszych kopaniach nie jestem pewien, czy jest to możliwe w systemie Mac OS bez odrobiny awk
Dean Smith,

1
czas_początkowy pracował. lstart nie. RHEL
Felipe Alvarez

1
jak odwrócić zamówienie?
Phu Nguyen,

2
@PhuNguyen nieco spóźnił się na imprezę, ale może ktoś inny może to wykorzystać. Możesz odwrócić kolejność, przesyłając dane wyjściowe tac.
Paul

1
@Stephane spróbuj tego:watch "ps -ef --sort=start_time | grep -v kworker | tail"
Sekenre

11

Linux:

$ ps aux --sort=lstart 

OSX:

$ ps aux -O started

2
Obawiam się, że żaden z tych rodzajów według czasu rozpoczęcia. Wyświetla czas rozpoczęcia, ale nie sortuje.
Dean Smith,

2
Wyłapała mnie także różnica między lstart i start_time - lstartdaje pełny znacznik czasu, ale nie może być użyty jako klucz sortowania. start_timepodaje zwykłą kolumnę „w ciągu ostatnich 24 godzin, w przeciwnym razie data” i może być używany jako klucz sortowania. Oba dają w nagłówku „STARTED”.
LHMathies,

czas w ciągu ostatniej godziny: jeśli proces został uruchomiony wczoraj o godzinie późniejszej niż dzisiaj, pojawi się po dzisiejszym procesie ... nie można go użyć według sortowania, chyba że odrobina „awk” zmieni to
Olivier Dulac

@OlivierDulac: nie dla mnie. 15/12 15:40pojawia się wcześniej 16/12 15:39, tak jak 13:39wcześniej 15:38.
Gauthier

1
Istart nie działał dla mnie. czas_początkowy zrobił.
Felipe Alvarez

5

Oprócz świetnych odpowiedzi powyżej, czasami chcę po prostu zobaczyć 20 najlepszych przestępców według procesu posortowanego malejąco według czasu, procesora i zużycia pamięci.

Do tego używam:

ps auxww --sort=lstart | sort -r -k3,4 | head -20

Byłoby to na platformie CentOS, chociaż podobają mi się te same wyniki na Fedorze.

Aha i dla uśmiechów, czasami chcę usunąć zestaw procesów, więc po prostu używam wariantu powyżej, który zawiera trochę akcji grep -v, takich jak:

ps auxww --sort=lstart | sort -r -k3,4 | grep -v "sbin/httpd" | head -20

--sortz psnie działa dla mnie. Poleganie na muszli sort. +1
kellogs

3

Nie mogę jeszcze komentować, ale aby odpowiedzieć na pytanie, jak odwrócić kolejność sortowania według czasu, po prostu umieść znak minus ( -) przed polem.
Przykład:ps -elf --sort=-start_time


2

Lub wypróbuj „ls”, ponieważ pozwala on na formaty czasu łatwe do sortowania i łatwiejsze w użyciu.

( cd /proc; ls -td --full-time --time-style=+%s [0123456789]*; )

Wyświetla datę / czas w epoce, najnowsze procesy na górze.


pokazuje to tylko
stawki

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.