rinetd грузит процессор - пытаюсь вытащить %

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
romaxa
рядовой
Сообщения: 47
Зарегистрирован: 2013-10-17 16:58:52

rinetd грузит процессор - пытаюсь вытащить %

Непрочитанное сообщение romaxa » 2020-05-01 8:00:54

Всем доброе время.

Переодически у меня rinetd грузить процессор начинает, при этом перезагрузка его помогает.
Делаю что-то типа:

Код: Выделить всё

#!/bin/sh
top | grep rinetd
Получаю строчку: 819 root 1 34 0 11M 2576K select 1 164:28 95.00% rinetd

Как мне лучше вытащить цифру процента загрузки, чтобы распознать процент и его перезапустить?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

romaxa
рядовой
Сообщения: 47
Зарегистрирован: 2013-10-17 16:58:52

rinetd грузит процессор - пытаюсь вытащить %

Непрочитанное сообщение romaxa » 2020-05-01 8:42:42

Сделал вот так, может можно как-то проще?

Код: Выделить всё

RSLT=`top | grep rinetd | tr " " "\n" | grep % | tr "%" "\n" | cut -c 1-2`
echo $RSLT

romaxa
рядовой
Сообщения: 47
Зарегистрирован: 2013-10-17 16:58:52

rinetd грузит процессор - пытаюсь вытащить %

Непрочитанное сообщение romaxa » 2020-05-01 9:30:34

Если процент был менее 10, то ошибку выводило.
Получилось так, но мне кажется это сильно длинно, может можно проще?

Код: Выделить всё

RSLT=`top | grep rinetd | tr " " "\n" | grep % | tr "%" "\n" | sed -r "s/\..+//"`

#echo $RSLT

Аватара пользователя
Neus
капитан
Сообщения: 1976
Зарегистрирован: 2008-09-08 21:59:56

rinetd грузит процессор - пытаюсь вытащить %

Непрочитанное сообщение Neus » 2020-05-01 17:52:27

man ps
man procstat
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.

LOR захватили ситхи.
Добро пожаловать на светлую сторону!

romaxa
рядовой
Сообщения: 47
Зарегистрирован: 2013-10-17 16:58:52

rinetd грузит процессор - пытаюсь вытащить %

Непрочитанное сообщение romaxa » 2020-05-02 9:15:22

А чем top не подходит? Разве не проще взять процент в строке, в которой четко указан процент?
Neus писал(а):
2020-05-01 17:52:27
man ps
man procstat

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

rinetd грузит процессор - пытаюсь вытащить %

Непрочитанное сообщение Alex Keda » 2020-08-27 11:37:29

я киляю раз в сутки, ночью и запускаю заново
это как бы известная у него бага...
Убей их всех! Бог потом рассортирует...

romaxa
рядовой
Сообщения: 47
Зарегистрирован: 2013-10-17 16:58:52

rinetd грузит процессор - пытаюсь вытащить %

Непрочитанное сообщение romaxa » 2020-08-28 10:26:39

Я поставил писать в лог, не так и часто он тупит у меня.

Раз в 1-2 месяца...

Вот скрипт, который мониторит его и пишет лог:

Код: Выделить всё

#!/bin/sh

check_date="`date +%Y-%m-%d' '%H:%M`"
check_log="/usr/local/etc/cameracheck/log"

PID=`cat /var/run/rinetd.pid`

RSLT=`ps -u -p "$PID" | grep rinetd`

RSLT=`echo $RSLT | awk '{print $3}' | sed -r "s/\..+//"`

# processor overload more then 80%
if [ "$RSLT" -gt 80 ]
then
#restart rinetd
#write to log
{
echo "Overload processor: $check_date - $RSLT%: restarting..."  >> $check_log
echo "Overload processor: $check_date - $RSLT%: restarting..." |  mail -s "Rinetd restarted" root

/usr/local/etc/rc.d/rinetd restart

}
fi