Sie sind Variablen im awk
Skript ... Diese Formatierung könnte es klarer machen:
for x in $(seq 1 11); do
sleep 5
grep -w cpu /proc/stat
done | \
awk '
{
print (o2 + o4 - $2 - $4) * 100 / (o2 + o4 + o5 - $2 - $4 - $5) "%"
o2=$2
o4=$4
o5=$5
}'
Sie nehmen jede Zeile, in der "cpu" enthalten ist, von /proc/stat
:
$ grep -w cpu /proc/stat
cpu 737017 2198 503480 221363877 201487 97326 0 0 0 0
Tun Sie dies alle 5 Sekunden:
for x in $(seq 1 11); do
sleep 5
grep -w cpu /proc/stat
done
Und leiten die Ausgabe in awk
.
awk
nehmen 2 Felder, 4 und 5 ( $2
, $4
und $5
) , um eine Berechnung zu tun, und sie in Variablen zu speichern o2
, o4
und o5
.
awk '
{
print (o2 + o4 - $2 - $4) * 100 / (o2 + o4 + o5 - $2 - $4 - $5) "%"
o2=$2
o4=$4
o5=$5
}'
Weitere Informationen finden Sie auf /proc/stat
der Manpage hier .
/proc/stat
kernel/system statistics. Varies with architecture. Common
entries include:
cpu 3357 0 4313 1362393
The amount of time, measured in units of USER_HZ
(1/100ths of a second on most architectures, use
sysconf(_SC_CLK_TCK) to obtain the right value), that
the system spent in various states:
[...]
nice (2) Time spent in user mode with low priority
(nice).
[...]
idle (4) Time spent in the idle task. This value
should be USER_HZ times the second entry in the
/proc/uptime pseudo-file.
iowait (since Linux 2.5.41)
(5) Time waiting for I/O to complete.
[...]