скрипт загрузки

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
warzoni
сержант
Сообщения: 186
Зарегистрирован: 2008-07-04 17:17:59
Откуда: Ukraine,Kiev
Контактная информация:

скрипт загрузки

Непрочитанное сообщение warzoni » 2009-09-20 19:38:35

Ребят вот думаю можно ли зделать скрипт каторый бы не по крону азапустился и весел как демон сматрел нагрузку и когда нагрузка достегала например лоад авгри 4 он запускал команду определённую а когда снижалась до 0.50 то запускал другую каманду...прошу помочь в данном вопросе...загрузку шоб грепал по top...

Хостинговая компания 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/

reLax
лейтенант
Сообщения: 638
Зарегистрирован: 2007-04-08 5:50:16

Re: скрипт загрузки

Непрочитанное сообщение reLax » 2009-09-21 17:30:00

warzoni писал(а):Ребят вот думаю можно ли зделать скрипт каторый бы не по крону азапустился и весел как демон сматрел нагрузку и когда нагрузка достегала например лоад авгри 4 он запускал команду определённую а когда снижалась до 0.50 то запускал другую каманду...прошу помочь в данном вопросе...загрузку шоб грепал по top...
Ну скриптамми это конечно не делается. Но, как вариант - бесконечный цикл while (true) ,sleep, awk :)

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: скрипт загрузки

Непрочитанное сообщение sch » 2009-09-21 17:39:18

/usr/ports/sysutil/monit - за нагрузкой умеет следить штатно. Смотри примеры конфигурации - там много интересного.

warzoni
сержант
Сообщения: 186
Зарегистрирован: 2008-07-04 17:17:59
Откуда: Ukraine,Kiev
Контактная информация:

Re: скрипт загрузки

Непрочитанное сообщение warzoni » 2009-09-21 17:57:09

reLax писал(а):
warzoni писал(а):Ребят вот думаю можно ли зделать скрипт каторый бы не по крону азапустился и весел как демон сматрел нагрузку и когда нагрузка достегала например лоад авгри 4 он запускал команду определённую а когда снижалась до 0.50 то запускал другую каманду...прошу помочь в данном вопросе...загрузку шоб грепал по top...
Ну скриптамми это конечно не делается. Но, как вариант - бесконечный цикл while (true) ,sleep, awk :)

а если по крону то не мог бы ты стрябать какой нить каторывй раз в минуту делал бы монеторинг.

warzoni
сержант
Сообщения: 186
Зарегистрирован: 2008-07-04 17:17:59
Откуда: Ukraine,Kiev
Контактная информация:

Re: скрипт загрузки

Непрочитанное сообщение warzoni » 2009-09-21 17:57:44

sch писал(а):/usr/ports/sysutil/monit - за нагрузкой умеет следить штатно. Смотри примеры конфигурации - там много интересного.
я посматрю но мне нужен скрипт всётаки :smile:

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: скрипт загрузки

Непрочитанное сообщение sch » 2009-09-22 15:30:50

Да на здоровье - хоть всю ОС самостоятельно переписывай :roll:

Вот простой пример -- есть в monitrc.sample.
После установки порта в share/doc/monit есть examples.html -- там гораздо больше и интереснее примеры.

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

## Check that a process is running, in this case Apache, and that it respond
## to HTTP and HTTPS requests. Check its resource usage such as cpu and memory,
## and number of children. If the process is not running, monit will restart 
## it by default. In case the service was restarted very often and the 
## problem remains, it is possible to disable monitoring using the TIMEOUT
## statement.
#    
#  check process apache with pidfile /usr/local/apache/logs/httpd.pid
#    start program = "/etc/init.d/httpd start" with timeout 60 seconds
#    stop program  = "/etc/init.d/httpd stop"
#    if cpu > 60% for 2 cycles then alert
#    if cpu > 80% for 5 cycles then restart
#    if totalmem > 200.0 MB for 5 cycles then restart
#    if children > 250 then restart
#    if loadavg(5min) greater than 10 for 8 cycles then stop
#    if failed host www.tildeslash.com port 80 protocol http
#       and request "/monit/doc/next.php"
#       then restart
#    if failed port 443 type tcpssl protocol http
#       with timeout 15 seconds
#       then restart
в качестве реакции на выполнение условия можно использовать команду exec "/your/script/here.sh"

warzoni
сержант
Сообщения: 186
Зарегистрирован: 2008-07-04 17:17:59
Откуда: Ukraine,Kiev
Контактная информация:

Re: скрипт загрузки

Непрочитанное сообщение warzoni » 2009-09-22 15:43:46

sch писал(а):Да на здоровье - хоть всю ОС самостоятельно переписывай :roll:

Вот простой пример -- есть в monitrc.sample.
После установки порта в share/doc/monit есть examples.html -- там гораздо больше и интереснее примеры.

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

## Check that a process is running, in this case Apache, and that it respond
## to HTTP and HTTPS requests. Check its resource usage such as cpu and memory,
## and number of children. If the process is not running, monit will restart 
## it by default. In case the service was restarted very often and the 
## problem remains, it is possible to disable monitoring using the TIMEOUT
## statement.
#    
#  check process apache with pidfile /usr/local/apache/logs/httpd.pid
#    start program = "/etc/init.d/httpd start" with timeout 60 seconds
#    stop program  = "/etc/init.d/httpd stop"
#    if cpu > 60% for 2 cycles then alert
#    if cpu > 80% for 5 cycles then restart
#    if totalmem > 200.0 MB for 5 cycles then restart
#    if children > 250 then restart
#    if loadavg(5min) greater than 10 for 8 cycles then stop
#    if failed host www.tildeslash.com port 80 protocol http
#       and request "/monit/doc/next.php"
#       then restart
#    if failed port 443 type tcpssl protocol http
#       with timeout 15 seconds
#       then restart
в качестве реакции на выполнение условия можно использовать команду exec "/your/script/here.sh"
я вижу да толк оно самое но я не просто атк скрипт поросил дело втом что linux...я нашол там опдобное но хочу просто скрипт простой понятный..щас буду сматреть. :smile:

strmaks
рядовой
Сообщения: 47
Зарегистрирован: 2008-04-23 15:58:59
Откуда: Minsk

Re: скрипт загрузки

Непрочитанное сообщение strmaks » 2009-09-22 17:33:24

warzoni писал(а):Ребят вот думаю можно ли зделать скрипт каторый бы не по крону азапустился и весел как демон сматрел нагрузку и когда нагрузка достегала например лоад авгри 4 он запускал команду определённую а когда снижалась до 0.50 то запускал другую каманду...прошу помочь в данном вопросе...загрузку шоб грепал по top...
Есть у меня волшебный скриптик который был написан на скору руку когда прижало, но как то он так прижился, что работает больше 3 лет как часики.
запускается по крону раз в 5 минут, в случае если LA больше 10 перезагружает апач.

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

#!/bin/sh
LA=`/usr/bin/w -n | /usr/bin/grep ', load averages:' | /usr/bin/awk '{print int($10);}'`
if [ $LA -gt 10 ]
then
        if [ ! -f /tmp/restart_lock ]
        then
                echo "Load average = $LA"
                >/tmp/restart_lock
                /usr/local/etc/rc.d/apache.sh restart
                exit
        fi
fi
if [ -f /tmp/restart_lock ]
then
        rm -f /tmp/restart_lock
fi
Не спрашивайте, по ком гудит трансформатор, он гудит сам по себе...

warzoni
сержант
Сообщения: 186
Зарегистрирован: 2008-07-04 17:17:59
Откуда: Ukraine,Kiev
Контактная информация:

Re: скрипт загрузки

Непрочитанное сообщение warzoni » 2009-09-22 17:43:33

strmaks писал(а):
warzoni писал(а):Ребят вот думаю можно ли зделать скрипт каторый бы не по крону азапустился и весел как демон сматрел нагрузку и когда нагрузка достегала например лоад авгри 4 он запускал команду определённую а когда снижалась до 0.50 то запускал другую каманду...прошу помочь в данном вопросе...загрузку шоб грепал по top...
Есть у меня волшебный скриптик который был написан на скору руку когда прижало, но как то он так прижился, что работает больше 3 лет как часики.
запускается по крону раз в 5 минут, в случае если LA больше 10 перезагружает апач.

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

#!/bin/sh
LA=`/usr/bin/w -n | /usr/bin/grep ', load averages:' | /usr/bin/awk '{print int($10);}'`
if [ $LA -gt 10 ]
then
        if [ ! -f /tmp/restart_lock ]
        then
                echo "Load average = $LA"
                >/tmp/restart_lock
                /usr/local/etc/rc.d/apache.sh restart
                exit
        fi

fi
if [ -f /tmp/restart_lock ]
then
        rm -f /tmp/restart_lock
fi

можеш зделать так чтобы он больше 2 лоад авгри запускл скрипт ниже двух лоад авгри гдето 1 останавливал!

strmaks
рядовой
Сообщения: 47
Зарегистрирован: 2008-04-23 15:58:59
Откуда: Minsk

Re: скрипт загрузки

Непрочитанное сообщение strmaks » 2009-09-22 17:56:03

warzoni писал(а):можеш зделать так чтобы он больше 2 лоад авгри запускл скрипт ниже двух лоад авгри гдето 1 останавливал!
Ну как то вот так...

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

#!/bin/sh
LA=`/usr/bin/w  | /bin/grep 'load average:' | /bin/awk '{print int($10)}'`
# Проверяем не больше ли LA чем 2
if [ $LA -gt 2 ]
then
        if [ ! -f /tmp/restart_lock ]
        then
                >/tmp/restart_lock
                /usr/local/etc/rc.d/apache.sh  start
        fi
fi
# Проверяем не меньше ли LA чем 1
if [ $LA -lt 1 ]
then
        if [ -f /tmp/restart_lock ]
        then
                /usr/local/etc/rc.d/apache.sh  stop
                rm -f /tmp/restart_lock
        fi
fi
Не спрашивайте, по ком гудит трансформатор, он гудит сам по себе...

warzoni
сержант
Сообщения: 186
Зарегистрирован: 2008-07-04 17:17:59
Откуда: Ukraine,Kiev
Контактная информация:

Re: скрипт загрузки

Непрочитанное сообщение warzoni » 2009-09-22 18:54:22

strmaks писал(а):
warzoni писал(а):можеш зделать так чтобы он больше 2 лоад авгри запускл скрипт ниже двух лоад авгри гдето 1 останавливал!
Ну как то вот так...

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

#!/bin/sh
LA=`/usr/bin/w  | /bin/grep 'load average:' | /bin/awk '{print int($10)}'`
# Проверяем не больше ли LA чем 2
if [ $LA -gt 2 ]
then
        if [ ! -f /tmp/restart_lock ]
        then
                >/tmp/restart_lock
                /usr/local/etc/rc.d/apache.sh  start
        fi
fi
# Проверяем не меньше ли LA чем 1
if [ $LA -lt 1 ]
then
        if [ -f /tmp/restart_lock ]
        then
                /usr/local/etc/rc.d/apache.sh  stop
                rm -f /tmp/restart_lock
        fi
fi
щас закгрузка 0.80

делаю вместо /usr/local/etc/rc.d/apache.sh stop

echo stop и не чего не высвечиваетца...довай тестанём по кускам система линукс..

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

/usr/bin/w  | /bin/grep 'load average:'
 19:54:57 up 17 days, 23:47,  1 user,  load average: 1.09, 1.42, 1.23

strmaks
рядовой
Сообщения: 47
Зарегистрирован: 2008-04-23 15:58:59
Откуда: Minsk

Re: скрипт загрузки

Непрочитанное сообщение strmaks » 2009-09-23 15:16:41

warzoni писал(а):
щас закгрузка 0.80

делаю вместо /usr/local/etc/rc.d/apache.sh stop

echo stop и не чего не высвечиваетца...довай тестанём по кускам система линукс..

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

/usr/bin/w  | /bin/grep 'load average:'
 19:54:57 up 17 days, 23:47,  1 user,  load average: 1.09, 1.42, 1.23
Логично, для того что бы он сделал stop надо что бы спева выполнился start
Не спрашивайте, по ком гудит трансформатор, он гудит сам по себе...