Sådan gemmes topkommandooutput i en fil


Linux-topkommando bruges meget af systemadministratorer til at vise systemstatistikker i realtid med hensyn til systemets oppetid og indlæsningsgennemsnit, brugt hukommelse, kørende opgaver, en oversigt over processer eller tråde og detaljeret information om hver kørende proces.

Udover realtidsvisning af det kørende system skal du dog operere i batch-tilstand og flag -n for at specificere den iteration, kommandoen skal udføre.

I nedenstående eksempel omdirigerer vi output fra topkommando til top.txt -fil i det aktuelle arbejdsmappe. Argumentet -n bruges til kun at sende et øjebliksbillede af kommandoen til den nævnte fil.

$ top -b -n 1 > top.txt

For at læse den resulterede fil skal du bruge et kommandolinjefilæserværktøj, f.eks. Mindre eller mere.

$ less top.txt

For at få fat i fem iteration af øverste kommando skal du udføre kommandoen som vist i nedenstående uddrag.

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

For kun at vise antallet af kørende opgaver fra den resulterede fil skal du bruge grep-filteret, som vist i nedenstående kommandoeksempel.

$ cat top-5iterations.txt | grep Tasks

For at tage et øjebliksbillede af en bestemt proces i topværktøjet skal du udføre kommando med PID (-p) -flagget. For at få PID for en kørende proces skal du udstede pidof-kommandoen mod navnet på den kørende proces.

I dette eksempel overvåger vi cron-processen via topkommando ved at tage tre snapshots af PID.

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

Ved hjælp af en til iteration-løkke kan vi vise en processtatistik via dens PID, hvert andet sekund, som vist i nedenstående eksempel. Loopets output kan også omdirigeres til en fil. Vi bruger den 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 loopoutput 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 blot nogle få eksempler på, hvordan du kan overvåge og indsamle system- og processtatistikker via topkommando.