Como eu posso resumir os bogomips?

1

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?

    
por hansaplast 01.09.2010 / 22:28

3 respostas

5
awk -F: '/bogomips/ {sum+=$2} END {print sum}' /proc/cpuinfo
    
por 02.09.2010 / 03:03
0

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

    
por 01.09.2010 / 23:59
0
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']
    
por 01.09.2010 / 23:30