awk -F: '/bogomips/ {sum+=$2} END {print sum}' /proc/cpuinfo
Eu quero comparar os servidores que executam o Linux (Centos) uns contra os outros - cpu sábio.
Eu pensei em pegar a soma de todos os cogus bogomips para comparação, mas só consegui criar essa linha feia:
echo 0 'cat /proc/cpuinfo | grep bogomips | cut -d ":" -f 2 | tr " " "+" '| bc
(o 0 é necessário porque, caso contrário, a linha começa com + e não é adequada para bc)
Existem maneiras melhores de fazer isso?
O seu é bom (78 bytes), pode ser encurtado por um pequeno quantidade e ligado a um único comando (por exemplo. perl)
perl -ne's/mips\s*:\s*(\S+)/$i+=$1/eg; END{print$i}' /proc/cpuinfo
O arredondamento é direto:
perl -ne's/mips\s*:\s*(\S+)/$i+=$1/eg; END{print int($i+0.5)}' /proc/cpuinfo
ou use a opção de autosplit em ':' (-F)
perl -F: -ane '$i+=$F[1] if $F[0]=~/mips/; END{print $i}' /proc/cpuinfo
Atenciosamente
rbo
sed -ne '
/^bogomips/ {
s/^bogomips[ \t]\+:[ ]\+\([0-9.]\+\)/+/
H
}
$ {
g
s/\n//g
s/+$//
p
}
d
' /proc/cpuinfo \
| bc
sem decimais:
echo $['sed -ne '
/^bogomips/ {
s/^bogomips[ \t]\+:[ ]\+\([0-9]\+\).*/+/
H
}
$ {
g
s/\n//g
s/+$//
p
}
d
' /proc/cpuinfo']