|
| Дата |
|
USD/RUB | 93.4409 | BTC/USD | 64018.4144 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
21.11.2012, 12:50
|
#1
|
Senior Member
Регистрация: 01.10.2010
Адрес: https://bankle.ru/
Сообщений: 1,140
Бабло: $306130
|
скрипт проверки доступности сайтов
нужен скрипт который бы пинговал список сайтов, например раз в 5 минут, и если сайт не доступен какой либо, отправлял сообщение на мыло
|
|
|
21.11.2012, 12:59
|
#2
|
Senior Member
Регистрация: 23.08.2010
Сообщений: 155
Бабло: $35255
|
можешь на основе гугл докс скрипт сделать, у мя работал стабильно, потом перешел на monitor.us, описалово тут
|
|
|
21.11.2012, 16:30
|
#3
|
Senior Member
Регистрация: 02.04.2011
Сообщений: 124
Бабло: $29615
|
вот еще monitorus.ru
в придачу "подарочный промо-код для мониторинга: 609089-279698-237219 ( +250 проверок)"
|
|
|
21.11.2012, 16:37
|
#4
|
Не ленись - ебанись!
Регистрация: 03.04.2009
Адрес: Эльфовая башня
Сообщений: 1,228
Бабло: $358586
|
Цитата:
Зачем вам платить фиксированную плату за проверку 10 (20, 30...) сайтов, если вам нужно проверять всего пару? Платите только за то, чем реально пользуетесь!
|
А нахуй вообще платить, если достаточно чекалку поставить на крон, лол. Накидайте кто-то, плз, пару строк. Буду благодарен
Кто возьмется проверить? Мне лень
PHP код:
<?php
set_time_limit(0);
ignore_user_abort();
ini_set('display_errors',1);
ini_set("error_reporting", E_ALL);
$PID = getmypid();
$cachedir = "caсhe"; // папочка в которой лежат файлы с данными, сюда же будет складываться лог опроса страничек
$mailto = "[email protected]"; // мыло куда будет кидаться письмо, в данном случае смс
$subject = "allert"; // тема письма
$message = "";
$arr = file("./$cachedir/domains.txt"); // файл с доменами которые нужно контролировать
$buf = file_get_contents("./$cachedir/states.txt"); // сюда кидаем текущее состояние сайтов
if (strlen($buf)>5) {
$states = unserialize($buf);
}
foreach ($arr as $ar) {
$domain = trim($ar," \r\n\t");
if (empty($domain)) continue;
if (!isset($states[$domain])) $states[$domain]=0;
$url = "http://".$domain."/";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$buf = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
tolog("log", $url."\t".$http_code);
if ($states[$domain]!=$http_code) {
tolog("fail", $url."\t".$states[$domain]."=>".$http_code);
$message.= $url."\n".$states[$domain]."=>".$http_code."\n";
$states[$domain] = $http_code;
}
}
file_put_contents("./$cachedir/states.txt", serialize($states));
if (!empty($message)) mail($mailto, $subject, $message);
function tolog($filename, $str) {
global $PID, $cachedir;
$fp = fopen("./$cachedir/".$filename.".log","a+");
fwrite($fp,$PID."\t".date("d.m.Y")." ".strftime("\t%H:%M:%S"."\t"));
fwrite($fp,"$str\n");
fclose($fp);
}
?>
Код не мой
Последний раз редактировалось DoctorFake; 21.11.2012 в 16:47.
|
|
|
21.11.2012, 16:46
|
#5
|
Бабло победит зло
Регистрация: 20.06.2008
Сообщений: 2,579
Бабло: $346045
|
ice-mon.com (e-mail, icq, xmpp, sms).
|
|
|
21.11.2012, 18:09
|
#6
|
Ебланнед
Регистрация: 30.03.2012
Сообщений: 176
Бабло: $177310
|
Цитата:
Сообщение от DoctorFake
А нахуй вообще платить, если достаточно чекалку поставить на крон, лол. Накидайте кто-то, плз, пару строк. Буду благодарен
Кто возьмется проверить? Мне лень
PHP код:
<?php
set_time_limit(0);
ignore_user_abort();
ini_set('display_errors',1);
ini_set("error_reporting", E_ALL);
$PID = getmypid();
$cachedir = "caсhe"; // папочка в которой лежат файлы с данными, сюда же будет складываться лог опроса страничек
$mailto = "[email protected]"; // мыло куда будет кидаться письмо, в данном случае смс
$subject = "allert"; // тема письма
$message = "";
$arr = file("./$cachedir/domains.txt"); // файл с доменами которые нужно контролировать
$buf = file_get_contents("./$cachedir/states.txt"); // сюда кидаем текущее состояние сайтов
if (strlen($buf)>5) {
$states = unserialize($buf);
}
foreach ($arr as $ar) {
$domain = trim($ar," \r\n\t");
if (empty($domain)) continue;
if (!isset($states[$domain])) $states[$domain]=0;
$url = "http://".$domain."/";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$buf = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
tolog("log", $url."\t".$http_code);
if ($states[$domain]!=$http_code) {
tolog("fail", $url."\t".$states[$domain]."=>".$http_code);
$message.= $url."\n".$states[$domain]."=>".$http_code."\n";
$states[$domain] = $http_code;
}
}
file_put_contents("./$cachedir/states.txt", serialize($states));
if (!empty($message)) mail($mailto, $subject, $message);
function tolog($filename, $str) {
global $PID, $cachedir;
$fp = fopen("./$cachedir/".$filename.".log","a+");
fwrite($fp,$PID."\t".date("d.m.Y")." ".strftime("\t%H:%M:%S"."\t"));
fwrite($fp,"$str\n");
fclose($fp);
}
?>
Код не мой
|
многовато кода чё-то
|
|
|
21.11.2012, 18:16
|
#7
|
Не ленись - ебанись!
Регистрация: 03.04.2009
Адрес: Эльфовая башня
Сообщений: 1,228
Бабло: $358586
|
Алёша, если кто-то может код укоротить, то предложения всегда выслушиваются с благодарностью. Ты стесняешься?
|
|
|
21.11.2012, 19:16
|
#8
|
$400
Регистрация: 17.05.2009
Сообщений: 13,945
Бабло: $1895050
|
а чем код не устраивает?
с первого взгляда все там как надо, на мыло шлет алерт
|
|
|
21.11.2012, 20:11
|
#9
|
Не ленись - ебанись!
Регистрация: 03.04.2009
Адрес: Эльфовая башня
Сообщений: 1,228
Бабло: $358586
|
Цитата:
Сообщение от digg
а чем код не устраивает?
с первого взгляда все там как надо, на мыло шлет алерт
|
Да тут он овнеру вообще смс шлет) Это если со второго взгляда Гейты, кстати, в Уркаине еще остались? МТС сдох еще когда был UMC, насколько я помню
|
|
|
21.11.2012, 21:14
|
#10
|
Ебланнед
Регистрация: 30.03.2012
Сообщений: 176
Бабло: $177310
|
Цитата:
Сообщение от DoctorFake
Алёша, если кто-то может код укоротить, то предложения всегда выслушиваются с благодарностью. Ты стесняешься?
|
я на перле
|
|
|
|