PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ausgabe von top mit grep rausfiltern



alegria
29.06.08, 15:19
Hey!

Ich würde ganz gern einige Ausgaben von
top per grep mir stündlich abrufen:
Tasks running,
Mem free,
Swap free,
Top3-Prozesse mit höchster CPU Beanspruchung...

Eine Überlegung wäre: Ich pipe die ausgabe von top in ne datei und kann nun darauf "greppen" - find ich aber nicht so prickelnd weil muss ja auch direkt irgendwie gehen, oder?
Dann fehlt mir ne Idee wegen der Top3 Geschichte... Theoretisch ist es einfach weil sich die Top3 immer in Zeile 8 bis 10 befinden. Aber wie kann ich denn grep ne zeilenposition zuordnen?

Danke im voraus für ideen, anregungen etc.

P.S. Kann mir jemand sagen wie sich der load average zusammensetzt? Meiner sieht so aus: load average: 0.43, 0.60, 0.56

alegria
29.06.08, 15:56
Also bin nun mit Hilfe von Googke soweit:

top -n 1 > temp.txt
grep Tasks temp.txt
grep Mem temp.txt
grep Swap temp.txt
sed -n '8,10p' < temp.txt //meine Top3-Prozesse

Damit wär ich ja schonmal jeweils in der richtigen Zeile... Fehlt nur noch das leidige regexp zum rausschneiden der exakten Werte...

Kann mir da jemand vielleicht helfen???

Wenn ich obige Kommandos bei mir eingebe erscheint:

Tasks: 141 total, 1 running, 140 sleeping, 0 stopped, 0 zombie
Mem: 2066996k total, 2006344k used, 60652k free, 81020k buffers
Swap: 13271320k total, 0k used, 13271320k free, 1472584k cached
3780 username 15 0 127m 39m 25m S 4 1.9 16:57.34 amarokapp
1 root 15 0 740 288 240 S 0 0.0 0:01.40 init
2 root 10 -5 0 0 0 S 0 0.0 0:00.00 kthreadd

Jemand ne Idee bzgl. der regexp??? :confused:

Roger Wilco
29.06.08, 16:33
Tasks running,

# Anzahl Prozesse gesamt
ps --no-heading -e|wc -l
# Anzahl Prozesse running
ps -e -o s|grep -c R
# Anzahl Prozesse sleeping
ps -e -o s|grep -c S


Mem free,
Swap free

free


Top3-Prozesse mit höchster CPU Beanspruchung...

ps -e -o c,uid,gid,cmd --no-heading|sort -nr|head -n3


P.S. Kann mir jemand sagen wie sich der load average zusammensetzt? Meiner sieht so aus: load average: 0.43, 0.60, 0.56
http://www.teamquest.com/resources/gunther/display/5/index.htm

alegria
29.06.08, 17:42
# Anzahl Prozesse running
ps -e -o s|grep -c R

Funzt super! :)



free
Jetzt hab ich genauso viele Infos wie in meiner Zeile von

grep Mem temp.txt
Ich brauch aber doch nur die Zahl! Oder im Bsp. von free halt die dritte spalte...



ps -e -o c,uid,gid,cmd --no-heading|sort -nr|head -n3
Das gleiche! Ich brauch den Prozessnamen... Bei:

sed -n '8,10p' < temp.txt
also die letzte spalte...

Nur wie bekomme ich das hin???

Veierabend
29.06.08, 17:51
Nur wie bekomme ich das hin???
Mit ner Pipe und awk

free | grep Mem | awk '{print $3}'
$x steht dabei für die Spalte, die ausgegeben werden soll.

alegria
29.06.08, 17:59
Supi! Was es alles gibt!!! :)

@nicht das ich rumnörgeln will aber als zeichen das ich wenigstens aufpasse: es muss $4 heissen - die 3 is used und nicht free! ;)

Veierabend
29.06.08, 18:06
Ich brauch aber doch nur die Zahl! Oder im Bsp. von free halt die dritte spalte...
:p

*10Zeichen*