Страница 1 из 1
скрипт загрузки
Добавлено: 2009-09-20 19:38:35
warzoni
Ребят вот думаю можно ли зделать скрипт каторый бы не по крону азапустился и весел как демон сматрел нагрузку и когда нагрузка достегала например лоад авгри 4 он запускал команду определённую а когда снижалась до 0.50 то запускал другую каманду...прошу помочь в данном вопросе...загрузку шоб грепал по top...
Re: скрипт загрузки
Добавлено: 2009-09-21 17:30:00
reLax
warzoni писал(а):Ребят вот думаю можно ли зделать скрипт каторый бы не по крону азапустился и весел как демон сматрел нагрузку и когда нагрузка достегала например лоад авгри 4 он запускал команду определённую а когда снижалась до 0.50 то запускал другую каманду...прошу помочь в данном вопросе...загрузку шоб грепал по top...
Ну скриптамми это конечно не делается. Но, как вариант - бесконечный цикл while (true) ,sleep, awk

Re: скрипт загрузки
Добавлено: 2009-09-21 17:39:18
sch
/usr/ports/sysutil/monit - за нагрузкой умеет следить штатно. Смотри примеры конфигурации - там много интересного.
Re: скрипт загрузки
Добавлено: 2009-09-21 17:57:09
warzoni
reLax писал(а):warzoni писал(а):Ребят вот думаю можно ли зделать скрипт каторый бы не по крону азапустился и весел как демон сматрел нагрузку и когда нагрузка достегала например лоад авгри 4 он запускал команду определённую а когда снижалась до 0.50 то запускал другую каманду...прошу помочь в данном вопросе...загрузку шоб грепал по top...
Ну скриптамми это конечно не делается. Но, как вариант - бесконечный цикл while (true) ,sleep, awk

а если по крону то не мог бы ты стрябать какой нить каторывй раз в минуту делал бы монеторинг.
Re: скрипт загрузки
Добавлено: 2009-09-21 17:57:44
warzoni
sch писал(а):/usr/ports/sysutil/monit - за нагрузкой умеет следить штатно. Смотри примеры конфигурации - там много интересного.
я посматрю но мне нужен скрипт всётаки

Re: скрипт загрузки
Добавлено: 2009-09-22 15:30:50
sch
Да на здоровье - хоть всю ОС самостоятельно переписывай
Вот простой пример -- есть в 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"
Re: скрипт загрузки
Добавлено: 2009-09-22 15:43:46
warzoni
sch писал(а):Да на здоровье - хоть всю ОС самостоятельно переписывай
Вот простой пример -- есть в 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...я нашол там опдобное но хочу просто скрипт простой понятный..щас буду сматреть.

Re: скрипт загрузки
Добавлено: 2009-09-22 17:33:24
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
Re: скрипт загрузки
Добавлено: 2009-09-22 17:43:33
warzoni
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 останавливал!
Re: скрипт загрузки
Добавлено: 2009-09-22 17:56:03
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
Re: скрипт загрузки
Добавлено: 2009-09-22 18:54:22
warzoni
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
Re: скрипт загрузки
Добавлено: 2009-09-23 15:16:41
strmaks
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