Vraag Hoe ps-uitvoer sorteren op processtarttijd?


Is er een manier om ps-uitvoer te sorteren op de begintijd van het proces, dus de nieuwste staan ​​bovenaan of onderaan?

Onder Linux?

Op SysV5?

Op Mac?


52
2018-06-18 09:16


oorsprong




antwoorden:


Dit zou moeten werken op Linux en SysV5

ps -ef --sort=start_time

73
2018-06-18 09:28



Dit werkt precies zoals gevraagd, bedankt. Na wat meer graven weet ik niet zeker of dit mogelijk is op Mac OS zonder een beetje onhandig te zijn - Dean Smith
start_time werkte. lstart deed dat niet. RHEL - Felipe Alvarez
ps aux --sort=start_time opdracht werkt prima - Suresh Mahawar
hoe kan ik de bestelling terugdraaien? - Phu Nguyen
@PhuNguyen laat op het feest, maar misschien heeft iemand anders hier een gebruik van. U kunt de volgorde omdraaien door de uitvoer door te voeren tac. - Paul


Linux:

$ ps aux --sort=lstart 

OSX:

$ ps aux -O started

11
2018-06-18 09:21



Ik ben bang dat geen van beide soorten op starttijd staat. Het geeft de starttijd wel weer, maar sorteert niet. - Dean Smith
Het verschil tussen lstart en start_time betekende ook me - lstart geeft een volledige tijdstempel, maar kan niet worden gebruikt als sorteersleutel. start_time geeft de gebruikelijke 'tijd binnen de laatste 24 uur, datum anders' kolom, en kan worden gebruikt als sorteersleutel. Beide geven 'BEGIN' in de kop. - LHMathies
tijd binnen het laatste uur: als een proces gisteren is gestart op een later tijdstip dan vandaag, zal het verschijnen na het proces van vandaag ... kan niet op soort worden gebruikt, tenzij een beetje "awk" verandert dat - Olivier Dulac
@ Olivier Dulac: niet voor mij. 15/12 15:40 verschijnt eerder 16/12 15:39, net als 13:39 verschijnt eerder 15:38. - Gauthier
lstart werkte niet voor mij. start_tijd deed. - Felipe Alvarez


Samen met de geweldige antwoorden hierboven, wil ik soms dat de top 20 daders per proces gesorteerd worden aflopend op tijd, cpu% en geheugengebruik.

Daar gebruik ik voor:

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

Dit zou op een CentOS-platform zijn, hoewel ik ook op Fedora van dezelfde resultaten heb genoten.

Oh en voor grins, ik wil soms een aantal processen verwijderen, dus gebruik ik gewoon een variant op het bovenstaande die een beetje grep -v-actie bevat, zoals:

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

4
2018-04-28 17:16



--sort van ps werkt niet voor mij. Zich baserend op shell sort. 1 - kellogs


Ik kan nog geen commentaar geven, maar om de vraag te beantwoorden over hoe de volgorde van een tijdssoort om te keren, zet u gewoon een minteken (-) voor het veld.
Voorbeeld: ps -elf --sort=-start_time


3
2017-11-29 17:10





Of probeer 'ls', omdat het tijdformaten toestaat die gemakkelijk te sorteren en gemakkelijker te gebruiken zijn.

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

Voert de datum / tijd uit in de epoche, de nieuwste procs bovenaan.


2
2017-07-03 02:23





Probeer een eenvoudige opdracht:

ps | sort -k7 -n

-k7 voor de tijdkolom en -n voor numeriek.

Voorbeeld


0
2018-03-13 17:11