1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

PHP+CRON - Статус сервера с оповещением по СМС

Тема в разделе 'PHP', создана пользователем wsok, 23 авг 2013.

  1. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Продолжая тему Botchal`a, хотелось бы несколько расширить полезность приведенного там скрипта, возможно кто то скажет "вот мол открыл Америку!", ну а кому то эта информация окажется полезной... И так!

    Многим администраторам своих серверов видимо хочется быть всегда в курсе того, что происходит с сервером и при его отказе быстро получать об этом извещение. Как вариант настроить СМС оповещение (хотя у тех, где покупаете сервер часто такую услугу дают и так, но обычно ведется общий мониторинг сервера, а не отдельные его службы, вроде игр), но к сожалению реально бесплатных смс-шлюзов я так и не нашел (сервисы с капчей отправки смс не в счет). Но немного подумав, вспомнил про почтовые сервисы с оповещением по СМС, таковые есть и в МТС, Билайн и других мобильных операторов, а так же есть почтовые сервисы позволяющие уведомлять о новой почте об смс (например на mail.ru).

    Ну, а так как я абонент МТС, то рассмотрим на примере подключение сервиса с этого мобильного оператора. Что для этого понадобится?

    1. Собственно быть абонентом МТС.
    2. Иметь доступ в личный кабинет mts.ru
    3. Иметь мобильный аппарат конечно =)
    4. Сам скрипт.
    5. Крон (CRON) планировщик задач на хосте где будет выполнятся скрипт по расписанию.

    И так, идем в ЛК МТС, заходим там в интернет-помощник, а там выбираем управление услугами, наша цель там, подключить такую услугу: SMS to e-mail/e-mail to SMS

    47.jpg







    И так, разобрались, подключили услугу? Т.е. Отображается в списке подключенных услуг, как на скрине? если нет, тогда кликаем по ссылке +Подключить новые услуги и там ищем и подключаем такую услугу. Ну я думаю, Вы все же разобрались и подключили её.

    Пришло время настроить PHP скрипт:





    все, можем считать, что скрипт настроен, и залит на хост. Кстати, рекомендую конечно чекать(проверять) статус сервера с другого хоста, а не с самого сервера где установлен ваш игровой сервер, ведь если вдруг будут траблы с самим физическим сервером, то и оповещения не получите. Сейчас практически любой хостинг, даже самый недорогой поддерживает крон, оттуда можно и чекать.

    Приступим к настройке задания крона, я это делал в отдельном хосте через ISPmanager

    57.jpg


    Установим например 5 минут, т.е. каждые 5 минут крон будет обращаться к скрипту, а тот в свою очередь и будет делать проверку и отсылать оповещение при необходимости.

    Конечно, способ команды обращения к скрипту можете сделать и по другому, но я решил обратится к нему через wget.

    Все, оповещение настроено! Можете конечно проверить работу, указав в скрипте порт, который заведомо не используется ничем, соответственно и ответа скрипт с него не получит, зато Вы получите оповещение.

    PS: Как я уже говорил, есть немало сервисов по оповещению на СМС, через емайл. На mail.ru например можно завести специальный ящик для таких уведомлений на смс.
    ТоXА*, Aksel, ≈√iP≈ и 8 другим нравится это.
  2. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Небольшой фикс скрипта оповещения о статусе сервера.

    Бывает, что даже тот хост, на котором будет лежать сей скрипт, вдруг может упасть (мало ли бывает, профилактика сети и т.д.) Вот как раз, если идут работы с сетью в том ДЦ, где находится хост на котором лежит скрипт статуса сервера, при его выполнении, скрипт соответственно не будет видеть Ваш проверяемый сервер и ошибочно полагая, что он упал, будет отсылать оповещение, но так как само собой доступа к интернету нету у хоста (как я писал, вдруг профилактика, работ с сетью), то неотправленный емайл скорее всего попадет в очередь отправки и представляете сколько таких оповещений может накопиться в очереди?

    Когда сеть появится, ваш телефон сильно заспамит СМСками(особенно если интервал проверки 5 минут), что будто Ваш сервер упал (хотя это не так скорее всего). Как избежать ложных оповещений, если вдруг у хоста временно недоступна сеть? Внести в скрипт проверку на доступность интернета для хоста.

    PHP:
    <?
    $inet = @fsockopen("ya.ru""80"$errno$errstr1);
     
    if(
    $inet){
    $to "[email protected],"//указываем почтовый адрес от сервиса МТС, с указанием вашего номера телефона.
    $to .= "[email protected]"//Дополнительный почтовый адрес, например обычная ваша почта, куда будет дублироваться уведомление, либо для подстраховки другой сервис СМС оповещения через  емайл.
    $datez date("Y-m-d G:i:s"); //Время отправки уведомления
    $subject ='=?utf-8?B?'base64_encode ("SERVER PW OFF").'?=';
    $m $datez." SERVER PW OFF";
    $headers  "MIME-Version: 1.0 \r\n";
    $headers .= "Content-type: text/html; charset='utf-8' \r\n";
    $headers .= "From: [email protected]\r\n"//Вписываем адрес отправителя, раз уж от лица сервера, то имя почты можно задать [email protected]
     
    $ip1="demo.ru";  //хост сервера IP или домен, например demo.ru               
    $port1="29000";  // Порт проверяемой службы, например 29000, т.е. проверяем статус игрового сервера PW.                   
     
    $fp = @fsockopen($ip1$port1$errno$errstr1); //коннектимся и получаем денные
    if(!$fp)  mail($to$subject$m$headers); //если ничего не получили, отсылаем оповещение.
    }else{
    print 
    "inet no connect!";
    }
    ?>
    Как многие из вас заметили, в скрипте в самом начале мы делаем проверку на доступность всеми известного yandex.ru (ya.ru), он то 100% всегда работает, и если скрипт вдруг его не увидит, значит на сервере проблема с доступом к интернету и в таком случае исключены ложные проверки Вашего сервера, а скрипт выведет сообщение inet no connect!.

    Если интернет есть, соответственно скрипт проверит и как обычно оповестит, если ваш сервер упал.
Черновик сохранён Черновик удалён
Similar Threads
  1. Supreme
    Ответов:
    0
    Просмотров:
    2.046
  2. 1vitek1
    Ответов:
    16
    Просмотров:
    3.502
  3. Joslian

    Любая версия [PHP & MySQL] Статус сервера

    Joslian, 25 апр 2013, в разделе: PW Web
    Ответов:
    9
    Просмотров:
    5.503
  4. New-X
    Ответов:
    5
    Просмотров:
    1.549
Загрузка...

Поделиться этой страницей