Hvordan lagre toppkommandoutdata til en fil


Linux toppkommando er mye brukt av systemadministratorer for å vise systemstatistikk i sanntid angående systemoppetid og belastningsgjennomsnitt, brukt minne, kjørende oppgaver, et sammendrag av prosesser eller tråder og detaljert informasjon om hver prosess som kjører.

Men i tillegg til sanntidsvisning av det kjørende systemet, topp for å operere i batch-modus og -n flagg for å spesifisere mengden iterasjon kommandoen skal sende ut.

I eksemplet nedenfor omdirigerer vi utdataene fra toppkommandoen til top.txt-filen i gjeldende arbeidskatalog. Argumentet -n vil bli brukt til å sende bare ett øyeblikksbilde av kommandoen til den nevnte filen.

$ top -b -n 1 > top.txt

For å lese den resulterende filen, bruk et kommandolinjefilleserverktøy, for eksempel mindre eller mer.

$ less top.txt

For å ta fem iterasjoner av toppkommandoen, utfør kommandoen som vist i utdraget nedenfor.

$ top -b -n 5 > top-5iterations.txt

For å vise bare antall kjørende oppgaver fra den resulterende filen, bruk grep-filteret, som vist i kommandoeksemplet nedenfor.

$ cat top-5iterations.txt | grep Tasks

For å ta et øyeblikksbilde av en spesifikk prosess i toppverktøyet, utfør kommandoen med PID (-p)-flagget. For å få PID for en kjørende prosess, utsted pidof-kommandoen mot navnet på den kjørende prosessen.

I dette eksemplet vil vi overvåke cron-prosessen via toppkommando ved å ta tre øyeblikksbilder av PID.

$ pidof crond
$ top -p 678 -b -n3 > cron.txt
$ cat cron.txt

Ved å bruke en for iterasjonsløkke kan vi vise en prosessstatistikk via PID, hvert annet sekund, som vist i eksemplet nedenfor. Utdataene fra loopen kan også omdirigeres til en fil. Vi bruker samme cron PID som vist i eksemplet ovenfor.

$ for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done	

Omdiriger loop-utgang til fil.

$ for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done >> cron.txt
$ cat cron.txt

Dette er bare noen få eksempler på hvordan du kan overvåke og samle system- og prosessstatistikk via toppkommando.