Este é um problema conhecido com top
. Como explicado aqui , a 1ª iteração de top -b
retorna as porcentagens desde a inicialização, portanto, precisamos de pelo menos duas iterações ( -n 2
) para obter a porcentagem atual. Para acelerar as coisas, você pode definir o d
elay entre iterações para 0.01
. top
divide o uso da CPU entre usuário, processos do sistema e nice
processos, queremos a soma dos três. Por fim, você grep
da linha que contém as porcentagens de CPU e, em seguida, usa gawk
para somar processos de usuário, sistema e bons:
top -bn 2 -d 0.01 | grep '^%Cpu' | tail -n 1 | gawk '{print ++}'
----- ------ ----------- --------- ----------------------
| | | | |------> add the values
| | | |--> keep only the 2nd iteration
| | |----------------> keep only the CPU use lines
| |----------------------------> set the delay between runs
|-----------------------------------> run twice in batch mode