derUwe.de ist eine private Seite |
Impressum
erzeugt mit Wordpress |
benutzt ein modifiziertes Snowblind Theme
Ich wollte die aktuelle CPU Auslastung per Bashscript ermitteln, so wie sie auch unter top angezeigt wird. Nach einigem suchen wurde ich bei einem Script fündig, welches sehr anschaulich verdeutlichte wie dies realisiert werden kann. Auf dessen Basis habe ich mir mein eigenes Script entwickelt.
#!/bin/bash
# /proc/stat 2x auslesen
BEFORE=(`cat /proc/stat | grep '^cpu '`)
sleep 1
AFTER=(`cat /proc/stat | grep '^cpu '`)
# Differenz berechnen
USER=`expr ${AFTER[1]} - ${BEFORE[1]}`
NICE=`expr ${AFTER[2]} - ${BEFORE[2]}`
SYSTEM=`expr ${AFTER[3]} - ${BEFORE[3]}`
IDLE=`expr ${AFTER[4]} - ${BEFORE[4]}`
ALL=`expr ${USER} + ${NICE} + ${SYSTEM} + ${IDLE}`
# Prozente berechnen
PUSER=`expr $USER \* 1000000 / $ALL`
PNICE=`expr $NICE \* 1000000 / $ALL`
PSYSTEM=`expr $SYSTEM \* 1000000 / $ALL`
PIDLE=`expr $IDLE \* 1000000 / $ALL`
# Prozente formatieren
for i in 10 100 1000 10000 100000 ; do
if [ $PUSER -lt $i ] ; then
PUSER="0${PUSER}"
fi
if [ $PNICE -lt $i ] ; then
PNICE="0${PNICE}"
fi
if [ $PSYSTEM -lt $i ] ; then
PSYSTEM="0${PSYSTEM}"
fi
if [ $PIDLE -lt $i ] ; then
PUSER="0${PIDLE}"
fi
done
# ausgeben
echo "us: ${PUSER:0:2}.${PUSER:2:4}%"
echo "ni: ${PNICE:0:2}.${PNICE:2:4}%"
echo "sy: ${PSYSTEM:0:2}.${PSYSTEM:2:4}%"
echo "id: ${PIDLE:0:2}.${PIDLE:2:4}%"
Die Ausgabe sieht dann beispielsweise so aus:
us: 00.9900%
ni: 00.0000%
sy: 00.4950%
id: 98.5148%

5. Juli 2010 um 05:40
Nicely done! Thanks for the link back :)
paul.