LINUX.ORG.RU

load average не подойдет? А то можно взять из uptime. Ну еще можно /proc/stat парсить.

alozovskoy ★★★★★
()
Ответ на: 15 секунд гугл-фу от mix_mix

У меня только то что после запятой показывает - idle 96,7, в результате получаю загрузку CPU 93%.

Вариант с ps из твоей ссылки лучше.

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

ну учитывая что кроме этой команды на сервере ничего не запущено, то думаю нет)

zagruzkaaa
() автор топика

какая команда в bash,

Лично я, когда какаю, никаких команд не набираю. И тебе не советую!

ziemin ★★
()
Ответ на: комментарий от mix_mix

Ну про локаль ТС ничего не писал, да и нужно все-таки стараться писать «кросплатформенные» (в данном случа кросслокальные) вещи.

alozovskoy ★★★★★
()
Ответ на: комментарий от zagruzkaaa

В общем используй такой вариант

grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'

Как выше сказали могут быть проблемы с локалями, и я что-то не могу понять как там нормально это распарсить sed'ом.

Либо вот еще вариант

top -bn1 | awk '/Cpu/ { cpu = 100 - $8 "%" }; END   { print cpu }'

В общем погугли.

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 3)
Ответ на: комментарий от alozovskoy

Шапку top'а покажи.

Позорище... Какое же это мозорище.

Во-первых top может выдавать сведения по потребностям.

Во-вторых грепом можно вырезать по потребностям.

В-третьих unixwayон вообще по потребностям.

Это не правда, чтоо linux -окружение недружелюбное. Просто оно тщательно выбирает себе друзей.

ziemin ★★
()
Ответ на: комментарий от ziemin

Шта? Ничего не понятно. По каким потребностям? Есть потребность получить информацию. При чем тут top, grep и вообще unixway?

alozovskoy ★★★★★
()
Ответ на: комментарий от zagruzkaaa

Почему фигня то (в первом случае) если у тебя проц простаивает? Со вторым у меня работает, не пойму почему у тебя не работает.

alozovskoy ★★★★★
()
Ответ на: комментарий от alozovskoy

я вроде загрузил командой cat /dev/urandom > /dev/null & cat /dev/urandom > /dev/nullcat& там сверху top, вроде грузят проц, а выходит ответ 0,..%

zagruzkaaa
() автор топика
Ответ на: комментарий от zagruzkaaa

Ребят спрошу у вас, я хочу запускать потоки определенного скрипта пока цпу не будет загруже на 80%, разумно ли это?

zagruzkaaa
() автор топика
Ответ на: комментарий от zagruzkaaa
CPU Idle

vmstat 1 2 | awk '{a=$15} END {print a}'

Это выдернуто отсюда

if [ `uname` = 'Linux' ]; then
	CPU=`vmstat 2 3 | awk '{a=$15} END {print a}'`
	if [ -n "$CPU" ]; then
		CPU=$((100-$CPU))
		if [ $CPU -ge $CRITICAL ]; then

anonymous
()
Ответ на: комментарий от anonymous

спасибо! а как это теперь отправить по ssh? отправляю так: ssh root@ip «vmstat 1 2 | awk '{a=$15} END {print a}'» а выходит неверный ответ, когда делаю на локальной машине, вроде верно

zagruzkaaa
() автор топика
Ответ на: комментарий от alozovskoy

Если взять столбец CPU из ps aux и сложить, это будет верно?

zagruzkaaa
() автор топика
Ответ на: комментарий от zagruzkaaa
ssh root@ip 'vmstat 1 2 | awk "{a=\$15} END {print a}"'
anonymous
()
Ответ на: комментарий от zagruzkaaa

Запусти vmstat на удаленной машине и посмотри номер столбца id (idle) и замени 15 на соотв. номер.

anonymous
()
Ответ на: комментарий от anonymous

в данном случае видно, что автор не умеет sed. И не знает про bc.

Мой вариант:

$ top -bn1| sed -rn 's/Cpu\S+\s+(.*%)us.*/\1/p' 
10.9%
Не очень понятно, зачем вычитать из 100?

ну если очень хочется:

$ top -bn1| sed -rn 's/Cpu\S+\s+(.*)%us.*/100-\1/p' |bc -l|sed 's/.*/&%/'

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.