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

Форум PHP

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

 

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

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

тема: ФТП мониторинг
 
 автор: hin   (24.10.2006 в 17:02)   письмо автору
 
 

Решил написать скрипт мониторинга фтп серверов, чтобы он проверял работает или нет сервер.
Самый простой способ какой нашел, это тупо подключаться к серверу и тут возникли проблемы:

function ftp($ftp_server,$ftp_port)
{
 $link = ftp_connect($ftp_server,$ftp_port);
if(!$link)
 {
   return $status="ON";
 }
else
 {
   return $status="OFF";
 }
ftp_close($link);
}

Как лучше организовать мониторинг, каждый раз при загрузке обращаться?? или в базу писать??, тогда какой интервал?? И как быстро будет открываться страница при наличии в базе порядка 20-30 фтп??? Как его можно изменить для сайтов?? Http??

   
 
 автор: a   (24.10.2006 в 17:45)
 
   для: hin   (24.10.2006 в 17:02)
 

function http($server)
{
$link = file_get_contents($server);
if(!$link)
{
return $status="ON";
}
else
{
return $status="OFF";
}
}

   
 
 автор: hin   (24.10.2006 в 17:58)   письмо автору
 
   для: a   (24.10.2006 в 17:45)
 

она быстрее будет работать??
А что это за ошибка такая??

ftp_rawlist(): Unable to create temporary file. Check permissions in temporary files directory.

   
 
 автор: Unkind™   (24.10.2006 в 18:08)   письмо автору
 
   для: hin   (24.10.2006 в 17:58)
 

По-моему file_get_contents() только для HTTP-серверов, для FTP не подойдет...

   
 
 автор: st.Ass   (24.10.2006 в 19:34)   письмо автору
 
   для: Unkind™   (24.10.2006 в 18:08)
 

может сокеты?

   
 
 автор: NIK   (24.10.2006 в 20:19)   письмо автору
 
   для: st.Ass   (24.10.2006 в 19:34)
 

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

   
 
 автор: kasmanaft   (24.10.2006 в 22:37)   письмо автору
 
   для: hin   (24.10.2006 в 17:02)
 

для ftp_connect можно задать таймаут

( string host [, int port [, int timeout]] )

   
 
 автор: slonik   (24.10.2006 в 23:50)   письмо автору
 
   для: kasmanaft   (24.10.2006 в 22:37)
 

Для мониторингов лучше использовать не скрипты, а программы... ибо php для этого слишком слабенький..

   
 
 автор: hin   (25.10.2006 в 17:08)   письмо автору
 
   для: slonik   (24.10.2006 в 23:50)
 

А с сокетами как?? Неподскажете??

   
 
 автор: hin   (09.11.2006 в 14:12)   письмо автору
 
   для: hin   (25.10.2006 в 17:08)
 

Вопрос ещё стоит, как сделать проверкупри помощи сокетов???

   
 
 автор: WVK   (28.01.2007 в 19:59)   письмо автору
 
   для: hin   (09.11.2006 в 14:12)
 

К сожалению в рнр полный валенок. Вопрос такой.
Может кто нибудь выложить скрипт проверки серверов, чтоб в итоге выводилось что нибудь типа:
1. Вася "Online"
2. Федя "Offline"

ну и так далее...?


Зарание благодарен

   
 
 автор: bronenos   (28.01.2007 в 20:58)   письмо автору
 
   для: WVK   (28.01.2007 в 19:59)
 

Неужели не пойдет
<?php
function status ($host) {
 
$ftp ftp_connect ($host);
 return (
$ftp) ? 'Online' 'Offline';
}
?>

   
 
 автор: WVK   (28.01.2007 в 23:47)   письмо автору
 
   для: bronenos   (28.01.2007 в 20:58)
 

Может и подойдет :) только я же написал, что в рнр непонимаю совсем. поэтому прошу объяснить, в какое место в этом скрипте прописывать адреса серверов... насколько я понял, тут написано, что при соединении с хостом возвращать ответ 'Online' или 'Offline'. меня устроит. Осталось только запустить опрос списка серверов 1 раз в час. ещё бы знать как

Будьте добры, объясните неучу в бананах и яблоках :)

   
 
 автор: bronenos   (29.01.2007 в 00:00)   письмо автору
 
   для: WVK   (28.01.2007 в 23:47)
 

<?php
function status ($host) {
 
$ftp ftp_connect ($host);
 return (
$ftp) ? 'Online' 'Offline';
}
// наша функция

$hosts = array ('ftp.dima.net''ftp.himalai.ru''ftp.freedomf.net');
// список серверов

foreach ($hosts as $host)
 print 
"<b>$host</b>: ".status($host)."<br>";
// идем по каждому и печатаем статус
?>

Вот весь этот текст сохраняете в ftps.php например файл и готово.
Запускать каждый час не надо
Он проверяет по требованию

Кстати последний это мой :)
Если покажет рабочий значит все в порядке :)

   
 
 автор: WVK   (29.01.2007 в 18:29)   письмо автору
 
   для: bronenos   (29.01.2007 в 00:00)
 

работает, спасибо за помощь!

   
 
 автор: Бамси   (28.01.2007 в 23:59)   письмо автору
 
   для: bronenos   (28.01.2007 в 20:58)
 

return ($ftp) ? 'Online' : 'Offline';

Прикольная фраза, первый раз вижу, кто осмелиться обьяснить ее?

   
 
 автор: bronenos   (29.01.2007 в 00:03)   письмо автору
 
   для: Бамси   (28.01.2007 в 23:59)
 

равно:

if ($ftp)
return 'online';
else
return false;

   
Rambler's Top100
вверх

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