>Ребята подскажите пожалуйста. Нужен скрипт, чтобы раз в 10-15 минут проверял, запущен
>ли сквид или нет, если же не запущен то чтобы отсылал
>сообщения на мобильный телефон, вот мол писец сквиды езжай на работу
>переустанавливай все.
>
Не совсем в тему, но вдруг пригодится =) В смысле, зачем ехать на работу, когда все можно попробовать автоматизировать
В крон добавляем (проверка каждые 2 мин)
*/2 * * * * /путь/к/скрипту/s_checker.pl > /dev/null
Сам скрипт (пинать не надо, лепил на скорую руку)
!/usr/bin/perl
my $check = `ps ax | grep squid | wc -l`; #Колво строк со сквидом в процессах
$i = 1;
while ($check <= 5) { #Если строк меньше 5 --> сквид упал
$time = localtime(time); #Время для отчета
system "/usr/local/etc/rc.d/squid.sh stop > /dev/null" || mail_err("Не могу остановить squid.sh #Перестраховка -)
#Тут желательно дать сквиду 30-60 сек для нормального останова
#sleep 45;
system "/usr/local/etc/rc.d/squid.sh start > /dev/null" || mail_err("Не могу запустить squid.sh #Рестарт
mail_err("Squid is down!"); #Рапорт на мыло
sleep 3; #Даем время подняться
$check = `ps ax | grep squi | wc -l`; #Проверяем
$i = $i + 1; #Счетчик до 3х =)
if ($i==4) { #Даем время одуматься (2 мин) до следующего запуска
exit(0);
}
}
sub mail_err { #Сообщаем о проблеме и ее не/решении =)
($message)=@_;
$message=($time ." " . $message . " попытка: " . $i);
open MAIL, '|/usr/sbin/sendmail -t';
print MAIL "From: s_checker\@твой_домен.ru.\n",
"To: твое\@мыло.ru\n",
"Subject: Squid checker report\n\n",
$message;
close MAIL or die "Sendmail failed: $!";
}
И, собственно, отпадает нужда бежать на работу.
Использую его уже около месяца и проблем не испытываю.
Если кто что хочет добавить/поправить по коду, буду рад ценным мыслям.