Достало Опубликовано 13 Октября 2005 Жалоба Поделиться Опубликовано 13 Октября 2005 Извиняюсь, если повторение, но я не нашёл такого вопроса здесь. Суть проблемы: хостинг не бесплатный, но периодически форум перестаёт загружаться. При этом хост пингуется. На том конце поясняют некоторыми техническими работами. Хочется заиметь фишку, которая бы автоматически и периодически (типа каждые 10 мин) тестировала доступность и работоспособность форума, писала бы лог, ну и (в качестве прикола) сообщала бы о проблеме мылом, СМСкой - мне и/или провайдерам Буду рад увидеть ваши мнения. Может, кроме меня это нафиг никому не надо?п.с. Рекомендации по смене хостинга прошу считать неумным офф-топом Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
arigoda Опубликовано 13 Октября 2005 Жалоба Поделиться Опубликовано 13 Октября 2005 тема создана в общих вопросах по форумум IPB версий 1.2 - 1.3.xв свете этого непонятно, как вы хотите на форуме организовать такую вещь, если сам форум будет недоступен. короче, тема не имеет прямого отношения к движку IPB 1.x, да и вообще к форуму. перемещаю. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Достало Опубликовано 13 Октября 2005 Автор Жалоба Поделиться Опубликовано 13 Октября 2005 тема создана в общих вопросах по форумум IPB версий 1.2 - 1.3.xв свете этого непонятно, как вы хотите на форуме организовать такую вещь, если сам форум будет недоступен. короче, тема не имеет прямого отношения к движку IPB 1.x, да и вообще к форуму. перемещаю.<{POST_SNAPBACK}>спасибо. понятно пока только одно - эта фишка дожна быть в двух местах: вне форума (источник запроса) и в форуме (ответная часть) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Anna Опубликовано 13 Октября 2005 Жалоба Поделиться Опубликовано 13 Октября 2005 (изменено) У меня есть извращенское предложение На другом хостинге создать скрипт пхп и обратиться к нему со какой-нибудь машины. .... // коннект к базе if ($arr = @file("http://forum....")) { mysql_query("INSERT INTO log (time, result) VALUES (".time().", 'OK' )"); } else { mail("<admin@site.ru>, <admin@hosting.ru>", "Сайт недоступен", "сабж!"); mysql_query("INSERT INTO log (time, result) VALUES (".time().", 'ERROR' )"); } sleep(15); header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); exit(); Изменено 13 Октября 2005 пользователем Anna Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Достало Опубликовано 13 Октября 2005 Автор Жалоба Поделиться Опубликовано 13 Октября 2005 У меня есть извращенское предложение На другом хостинге создать скрипт пхп и обратиться к нему со какой-нибудь машины.ну почему же "извращенское"? осмысливаю: на хосте (где база и движок) создаём этот скрипт. К нему обращаемся - он отвечает по прописанным правилам. Верно? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
профф Опубликовано 13 Октября 2005 Жалоба Поделиться Опубликовано 13 Октября 2005 На форуме ничего и не надо делать, просто на другом хосте скрипт типа предложенного выше, а грузить можно любую страницу форума. Но такой вариант не проверит проблемы типа упавшего mysql, тогда надо еще анализировать ответ.И намного лучше sleep(15);header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);exit(); убрать и запускать скрипт через cron Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Anna Опубликовано 13 Октября 2005 Жалоба Поделиться Опубликовано 13 Октября 2005 (изменено) Обращаемся просто к главной странице форума по протоколу http. В результате должен возвратиться массив строк HTML кода, либо FALSE в случае ошибки.Затем запостить результат в лог, отправить письмо, подождать и редиректнуться на самого себя для повторения операции. Есть подводные камни. Нужно попытаться как можно должно оттянуть SLEEP (задержку итерации), однако время отработки скрита как правило ограничено. Если не запрещено - попробовать функцию SET_TIME_LIMIT(0); . Если не прокатит, то придется выкручиваться иначе...Есть мысль, что брать по запросуselect time from log order by time desc LIMIT 0, 1взять время последнего лога, затем, если полученное время отличается от текущего time() меньше чем на скажем твои 10 минут (60*10), то снова сделать SLEEP и редирект, а если интервал в 10 минут пройден, то уже проверять доступность форума. //------------------ 2 профф CRON - это дело, но мы сейчас рассматриваем возможность опроса платного хостинга со стороны бесплатного хостинга. Думаю, найти бесплатный хостинг с кроном будет непросто.... //----------------- Но такой вариант не проверит проблемы типа упавшего mysql, тогда надо еще анализировать ответ. Ну само собой - уже можно крутить foreach ($arr as $entry) { if (str_replace("SQL Error", "!", $entry) != $entry) { ..... // обработка ошибки sql break; // чтоб один раз ее обработать, т.к. может несколько раз встретиться } } Изменено 13 Октября 2005 пользователем Anna Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
профф Опубликовано 13 Октября 2005 Жалоба Поделиться Опубликовано 13 Октября 2005 2 Anna но твой вариант требует постояно открытого браузера на этой странице, уж лучше тогда скрипт на своем домашнем компе поставить. ИМХО лучше тогда инициировать запуск через cron на хостере форума (или Task Manager форума) @file("http://скрипт проверки") Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Anna Опубликовано 13 Октября 2005 Жалоба Поделиться Опубликовано 13 Октября 2005 Да, согласна, в этом минус, но скрипт на домашнем компе скорей всего не сможет отправить письмо, по крайней мере я не знаю как это делается, у меня на локалхосте стоит денвер, который просто эмулирует отправку.Ну а Task Manager форума работает при обращении пользователя, а если форум упал, то таск менеджер не запустится Так что лучше конечно крон, если он есть, я согласна. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Достало Опубликовано 17 Октября 2005 Автор Жалоба Поделиться Опубликовано 17 Октября 2005 Спасибо всем.Т.к. я не шарю в РНР, то мне потребуется время для осмысления и реализации. По ходу буду беспокоить вас вопросами Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.