Я хочу сравнить серверы под управлением Linux (Centos) друг с другом - с точки зрения ЦП.
Я подумал о том, чтобы взять для сравнения сумму всех cpus bogomips, но смог придумать только эту уродливую строку оболочки:
echo 0 `cat /proc/cpuinfo | grep bogomips | cut -d ":" -f 2 | tr " " "+" `| bc
(0 необходим, потому что в противном случае строка начинается с + и не подходит для bc)
Есть ли лучшие способы сделать это?
awk -F: '/bogomips/ {sum+=$2} END {print sum}' /proc/cpuinfo
sed -ne '
/^bogomips/ {
s/^bogomips[ \t]\+:[ ]\+\([0-9.]\+\)/\1+/
H
}
$ {
g
s/\n//g
s/+$//
p
}
d
' /proc/cpuinfo \
| bc
без десятичных знаков:
echo $[`sed -ne '
/^bogomips/ {
s/^bogomips[ \t]\+:[ ]\+\([0-9]\+\).*/\1+/
H
}
$ {
g
s/\n//g
s/+$//
p
}
d
' /proc/cpuinfo`]
У вас все в порядке (78 байт), его можно немного сократить и связать с одной командой (например, perl)
perl -ne's/mips\s*:\s*(\S+)/$i+=$1/eg; END{print$i}' /proc/cpuinfo
Округление просто:
perl -ne's/mips\s*:\s*(\S+)/$i+=$1/eg; END{print int($i+0.5)}' /proc/cpuinfo
или используйте опцию autosplit для ':' (-F)
perl -F: -ane '$i+=$F[1] if $F[0]=~/mips/; END{print $i}' /proc/cpuinfo
С уважением
rbo