The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Squid+SMS Mobile Phone!, !*! Lotos20, 16-Май-05, 04:28  [смотреть все]
Ребята подскажите пожалуйста. Нужен скрипт, чтобы раз в 10-15 минут проверял, запущен ли сквид или нет, если же не запущен то чтобы отсылал сообщения на мобильный телефон, вот мол писец сквиды езжай на работу переустанавливай все.

Мне попался скрипты кое какие по ентому поводу, но так довести squid.sh я так и не смог. Помогите пожалуйста если Вам не трудно.

Squid.php
--------------------
<?
$to="80677777777@2sms.kyovstar.net";
$subject="Squid was down";
mail($to, $subject, "HELP ME!!!", "From: root@lalala.ru");
?>

Squid.sh
--------------------
#!/bin/sh
SQUID_PID=`ps aux | grep "squid" | grep -v grep | awk '{print $2}'`
if [ "$SQUID_PID" != "" ];then
echo "SQUID PID is: $SQUID_PID."
#echo "Restarting SQUID..."
#/usr/local/squid/sbin/squid -k reconfigure
else
echo "SQUID is not running, or it process was killed!"
echo "Starting SQUID"
/usr/local/squid/sbin/squid
php /usr/local/squid.php
fi

Запускаю Squid.sh и тишина пишеть

# ./squid.sh
./squid.sh: 12: Syntax error: end of file unexpected
Press any key to continue...

Помогите пожалуйста, так как я в написании скриптов не очень :-((

  • Squid+SMS Mobile Phone!, !*! MoHaX, 04:45 , 16-Май-05 (1)
    В редакторе после последней строчки "fi" нажми на Enter и сохрани.
  • Squid+SMS Mobile Phone!, !*! zizmo, 13:35 , 16-Май-05 (2)
    >Ребята подскажите пожалуйста. Нужен скрипт, чтобы раз в 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: $!";
    }

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

    Если кто что хочет добавить/поправить по коду, буду рад ценным мыслям.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру