Я хотел бы запустить скрипт оболочки iff. время ожидания ожидающих устройств ввода/вывода превышает определенное значение, например, 70%, как определено сверху. Я намереваюсь запустить проверку на каждый каждый интервал, скажем, каждые 1 минуту или каждые 5 минут, cron. Несмотря на то, что я прочитал руководство для верха, я не смог найти, как заставить его отображать только% ва, а затем выйти. Какие-либо предложения? Спасибо!получить только время ожидания ввода/вывода
Это то, что я пытался до сих пор:
WA=$(top -n1 |awk -F, 'NR==3 {print $5}')
tr -d "[:alpha:]" <<< $W
дает
[[39;49([ 13.9%([[39;49
в то время как
grep -o "[0-9]"<<<"$WA"
дает
3
9
4
9
1
3
9
3
9
4
Ни один из них не подходит для ввода в if -gt; fi условное заявление - и я просто не могу понять, что здесь происходит!
Решена ли ваша проблема? – RBH
Нет. У меня теперь есть проблема, когда первое чтение сверху * всегда * 14.9%. Это связано с тем, что, когда я бегу сверху, он всегда читает 14,9% в своем первом интервале, прежде чем подниматься на любой ожидаемый диапазон значений, о которых я думал. Поскольку я хочу запускать скрипт, когда время ожидания велико, это не помогает мне. –
На моей домашней машине вершина всегда возвращает 1,3% для ва за первый интервал, поэтому, по-видимому, это зависит от машины. Не уверен, что делать с этим сейчас. Может быть, взять нагрузку в среднем на многие интервалы, как? –