Вероятно, вы используете локаль с ,
в качестве десятичного разделителя. Вы можете попробовать любой из этих подходов:
Используйте локаль C дляtop
:
LC_ALL=C top -b -n 1 | awk '/load average/ { printf "%f\n",$10}'
Это не только решает проблему точки и запятой, но также позволяет избежать проблем с текстом, например load average
, переведенным на язык пользователя.
Замените запятую точкой:
top -b -n 1 | awk '/load average/ { sub(/,/,".",$10); printf "%f\n",$10}'
В GNU awk
используйте флаг --use-lc-numeric
, предложенный @Leo , или используйте POSIXLY_CORRECT=1 awk
.
Или используйте совместимую с POSIX awk
реализацию, такую как One True awk , которая по умолчанию должна анализировать и печатать числа в соответствии с правилами локали.
Обратите внимание, что более переносимой командой для получения среднего значения нагрузки является uptime
.
У вас максимально возможная частота ошибок чтения:
1 Raw_Read_Error_Rate 0x002f 001 001 051 Pre-fail Always FAILING_NOW 72289
что означает, что где-то аппаратный дефект.
Этот диск не работает.