Eles são variáveis no script awk
...
Essa formatação pode deixar isso mais claro:
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
}'
Você está usando qualquer linha que tenha "cpu" contida em /proc/stat
:
$ grep -w cpu /proc/stat
cpu 737017 2198 503480 221363877 201487 97326 0 0 0 0
Fazendo isso a cada 5 segundos:
for x in $(seq 1 11); do
sleep 5
grep -w cpu /proc/stat
done
E colocando a saída em awk
.
awk
está tomando os campos 2, 4 e 5 ( $2
, $4
e $5
) fazendo um cálculo e armazenando-os nas variáveis o2
, o4
e o5
.
awk '
{
print (o2 + o4 - $2 - $4) * 100 / (o2 + o4 + o5 - $2 - $4 - $5) "%"
o2=$2
o4=$4
o5=$5
}'
Você pode encontrar mais informações sobre /proc/stat
na página man, aqui .
/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.
[...]