Опубликовано

Здравсвуйте начинающие и другие администраторы unix. Давно заметил, что днем, когда на сервер наибольшая нагрузка, он ведет себя спокойно и работает без особых проблем. Но когда наступает ночь сервер начинает сходить с ума. Сначала думал, что какие либо задачи в крон создают нагрузку — нет все ОК. И вот, после нескольких падений сервера я набросал простенький скрипт:
#!/usr/bin/perl

use Sys::Load qw/getload uptime/;
use Class::Date qw(:errors date localdate gmdate now -DateParse);

use Sys::Hostname::FQDN qw(
asciihostinfo
gethostinfo
inet_ntoa
inet_aton
fqdn
short
);

$date = new Class::Date [$year,$month,$day,$hour,$min,$sec];
$date=now;
my $dt=$date->year."-".$date->month."-".$date->day." ".$date->hour.":".$date->min;
my $dt2=$date->year."-".$date->month."-".$date->day."_".$date->hour.":".$date->min;
my $hostname = short();
$fqdn = fqdn();
#my $ip=gethostbyname($fqdn);
$packed_ip = gethostbyname($fqdn);
$ip_address = inet_ntoa($packed_ip);

$cur_load=(getload())[0];

#print $cur_load;

if ($cur_load > 22) {
$ps=`ps aux | grep php`;
$stat=`wget -q -t 2 -O /root/check/serverstatus$dt2 -T 10 http://$ip_address/server-status`;
`echo \"$dt $hostname $cur_load\" >> /tmp/cpu`;
`echo \"$dt $hostname \r\n\ $ps\" >> /tmp/ps`;
system ("/backups/apache_r.sh");
}

Который при нагрузке больше чем 22 киляет апач и потом запускает его по новой. Сохраняете данный скрипт в какой-либо директории и добавляете в крон задачу. Примерно так:
*/5 * * * * /root/cpu.pl

И все. Теперь, каждые 5 мин. скрипт будет запускаться и делать свою работу.

Share and Enjoy:
  • Мой Мир
  • Facebook
  • Twitter

Добавить комментарий