Comment trier la sortie ps par heure de début du processus?


Réponses:


87

Cela devrait fonctionner sous Linux et SysV5

ps -ef --sort=start_time

Cela fonctionne exactement comme demandé, merci. Après plus de creuser, je ne suis pas sûr que ce soit possible sur Mac OS sans un peu d'awk
Dean Smith

1
start_time a travaillé. Pas le début. RHEL
Felipe Alvarez

1
Comment puis-je inverser la commande?
Phu Nguyen

2
@PhuNguyen peu en retard à la fête, mais peut-être que quelqu'un d'autre a une utilisation pour cela. Vous pouvez inverser l'ordre en passant la sortie par la canalisation tac.
Paul

1
@ Stephane essayer ceci:watch "ps -ef --sort=start_time | grep -v kworker | tail"
Sekenre

11

Linux:

$ ps aux --sort=lstart 

OSX:

$ ps aux -O started

2
Je crains qu'aucune de ces sortes par l'heure de début. Il affiche l'heure de début, mais ne trie pas.
Dean Smith le

2
La différence entre lstart et start_time m'a également interpellée - lstartdonne un horodatage complet, mais ne peut pas être utilisée comme clé de tri. start_timedonne la colonne habituelle 'heure dans les dernières 24 heures, date sinon', et peut être utilisée comme clé de tri. Les deux donnent 'STARTED' dans l'en-tête.
LHMathies

heure de la dernière heure: si un processus a été lancé hier à une heure plus tard qu'aujourd'hui, il apparaîtra après le processus d'aujourd'hui ... ne peut pas être utilisé par sorte, à moins qu'un peu de "awk" change cela
Olivier Dulac

@OlivierDulac: pas pour moi. 15/12 15:40apparaît avant 16/12 15:39, comme il 13:39apparaît avant 15:38.
Gauthier

1
lstart n'a pas fonctionné pour moi. start_time a fait.
Felipe Alvarez

5

En plus des bonnes réponses ci-dessus, je souhaite parfois uniquement voir les 20 principaux délinquants classés par processus, en ordre décroissant d'heure, de pourcentage de l'unité centrale et de l'utilisation de la mémoire.

Pour cela j'utilise:

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

Ce serait sur une plate-forme CentOS, même si j'ai eu les mêmes résultats sur Fedora.

Oh, et pour les sourires, je veux parfois supprimer un ensemble de processus, alors j’utilise simplement une variante de ce qui précède qui inclut un peu d’action grep -v, telle que:

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

--sortde psne fonctionne pas pour moi. S'appuyant sur la coquille sort. +1
kellogs

3

Je ne peux pas encore commenter, mais pour répondre à la question de savoir comment inverser l'ordre d'un tri temporel, il suffit de mettre un signe moins ( -) devant le champ.
Exemple:ps -elf --sort=-start_time


2

Ou essayez 'ls', car il permet des formats de temps faciles à trier et à utiliser.

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

Affiche la date et l'heure de l'époque, les derniers processus en haut.


cela ne montre que les pids
elig

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.