Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Бесконечный скрипт.... "или доверяй, но проверяй" =))
 
 автор: Sfinks   (11.02.2005 в 11:15)   письмо автору
 
 

Здравствуйте! =))

Очень мне хочется, проконтролировать свой хостинг на предмет доступности....
Судя по моей статистике, за последние пять дней он 5 часов был недоступен, но проблема в том, что статистика пишется только при обращении пользователя к сайту. За недоступность я воспринимаю длительное отсутствие статистики... Теоретически конечно возможно, что втечение 60-80 минут не было ни одного обращения, но при нормальной посещаемости 5-20 обращений в минуту, сами понимаете, это маловероятно. Но тут вмешивается то, что обращение идет не напрямую через http, а по SMS с мобилы через сервер BeeOnLine, который тоже зачастую висит.

Так вот вопрос....
Можно написать скрипт, который будучи запущенным 1 раз, будет безконечно себя перезапускать с периодичностью 1 минута?... Так, чтоб я с браузера к нему обратился, затем закрыл страницу, отключился от инета, а ему на меня было плевать.... Чтоб на хосте он продолжал работать.

Ну а суть его работы, думаю, понятна....
Например он пытается прочитать файл 1.txt, расположенный в той же папке, только через http.... T.e. http://hostingname/ping/1.txt. При успешном получении контекста он дописывает в файл пинга 10:30-OK, иначе 10:30-NOOK.

Возможно?

   
 
 автор: cernos   (11.02.2005 в 11:36)   письмо автору
 
   для: Sfinks   (11.02.2005 в 11:15)
 

На мой взгляд это не возможно, так как нет клиента, в чьем бы броузере открывался ваш сайт.
Лично моё мнение таково, а там кто его знает...
Чего уже только не придумают, так возможно что и да такого додумались, но теоритечески, php не способен сам с собой работать, т.е. без клиента...
JavaScript тем более!
( :\ )

   
 
 автор: cernos   (11.02.2005 в 11:36)   письмо автору
 
   для: Sfinks   (11.02.2005 в 11:15)
 

Можно сделать стандартными средствами, но придёт быть в онлайн...
По другому не знаю, а вообще штука полезная была бы!! и не заменимая!
:)

   
 
 автор: Axxil   (11.02.2005 в 14:17)   письмо автору
 
   для: Sfinks   (11.02.2005 в 11:15)
 

На хостингах часто бывает такая служба как cron суть которой и заключается в запуске программ по расписанию.
Сам я про её глубоко не изучал, а в Вашем случае наверное полезно было бы к ней обратиться.

   
 
 автор: Никоза.   (11.02.2005 в 15:04)
 
   для: Axxil   (11.02.2005 в 14:17)
 

А разве крон решит проблему? Ну, сервер будет недоступен, но крон-то всё равно будет тикать. И потом покажет, что всё O.K. Каждую минуту плюсик ставить.
Даже если сервер и недоступен на самом деле...

   
 
 автор: Никоза.   (11.02.2005 в 15:07)
 
   для: Никоза.   (11.02.2005 в 15:04)
 

Вот если только крон пусть каждые 15 минут письмецо отправляет?
если есть за сутки 72 письма в ящике - всё O.K.

   
 
 автор: cheops (из ННГУ)   (11.02.2005 в 19:28)
 
   для: Никоза.   (11.02.2005 в 15:07)
 

cron можно повесить на локальной машине, если помегабайтка, а не повремёнка...

   
 
 автор: isset   (11.02.2005 в 15:06)   письмо автору
 
   для: Sfinks   (11.02.2005 в 11:15)
 

Можете воспользоваться cron-ом, а можете написать своего демона, но щас мало мест где вы его сможете разместить

   
 
 автор: Никоза.   (11.02.2005 в 15:22)
 
   для: isset   (11.02.2005 в 15:06)
 

Вот ещё интересный вариант...
Когда пишешь интернет-программу на Delphi, там подключение компьютера к интернету можно проверить например вот так - пингуешь какой-нибудь хост, и далее в зависимости от результата. Интересно, в php подобное возможно?

   
 
 автор: glsv (Дизайнер)   (11.02.2005 в 17:01)   письмо автору
 
   для: Sfinks   (11.02.2005 в 11:15)
 

Есть в интернете проект с именем uptime. Они как раз проводят мониторинг доступности сайтов.
Не знаю, правда, работают ли они сейчас и насколько правдивы их результаты...., но посмотреть стоит.

   
 
 автор: cheops (из ННГУ)   (11.02.2005 в 19:30)
 
   для: glsv (Дизайнер)   (11.02.2005 в 17:01)
 

Угу... только хостеры вывешивают какой-нибудь прокси-сервер или почтовый сервер для мониторинга. Web-сервер лежит, база данных лежит, а эти пашут...

   
 
 автор: denvor   (12.02.2005 в 00:08)   письмо автору
 
   для: cheops (из ННГУ)   (11.02.2005 в 19:30)
 

Да , cheops прав , к тому же эти аптаймы сами работают через пень-колоду. А через крон можно (наверное) запускать пинг с перенаправлением в файлы заданной директории. Потом, раз в день, скажем, архивировать эти файлы, скидывать по мылу. + удалять в директории файлы недельной давности.


1 * * * * ping -c5 host | gzip -c >> 'date "+%Y-%m-%d"'.txt

Вот, если , не ошибаюсь, примерно так:
- запуск пинга каждую минуту
- пингуем host пять раз
- жмем результат
- дозаписываем его в файл "дата".txt

пошел пробовать :)
попробовал - чего-то не жмется , а в остальном работает. И раз мы дозаписываем и не жмем: ping -c5 host >> ping.txt
Потом дома анализируем файл по строкам типа "..% packet loss"

   
 
 автор: glsv (Дизайнер)   (12.02.2005 в 00:24)   письмо автору
 
   для: cheops (из ННГУ)   (11.02.2005 в 19:30)
 

Там не хостеры вывешивают, а все кто хочет свой сайт протестить именно его и указывают. Но это, конечно, еще не гарантия.

   
 
 автор: cheops   (12.02.2005 в 00:26)   письмо автору
 
   для: Sfinks   (11.02.2005 в 11:15)
 

Наверное самое лучше будет повесить cron (для Windows идеальным является nnCron - не полная версия, а Lite http://www.nncron.ru/download/nncronlt.zip - он бесплатный и консольный, полная версия имеет Windows-интерфейс, но это только cron портить :) следует написать скрипт дёргающий сервер время от времени, например, так как это сделано в теме http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1426, назначить в качестве обработчика PHP-скриптам С:/php/php.exe http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1696, тогда проверка будет осуществляться автоматически в назначенное вами время или вы сами сможете запускать скрипт по двойному щелчку мыши или Enter.

   
 
 автор: XPraptor   (14.02.2005 в 15:19)   письмо автору
 
   для: cheops   (12.02.2005 в 00:26)
 

Вот можно попробывать такой вариант. В принципе при установках ignore и setlimit скрипт должен продолжить свою работу, даже если юзер слинял, на этом и попробуй сыграть.
Тут просто образец, время, когда нужно что то писать в файл сам код придумаешь.


<?php
set_time_limit
(3600*24);
ignore_user_abort();
$cntr=1;
while(
$cntr<24){
    
$tm=date("H"time());
    if(
$tm==14){
        
$fl="tsts.txt";
        
$fp=fopen($fl"w");
        
fwrite($fp"OK!");
        
fclose($fp);
        
$cntr++;
    }
}
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования