[Server] bat скрипт =))

Тема в разделе "Windows", создана пользователем adm384, 25 апр 2009.

Статус темы:
Закрыта.
Модераторы: ADMiNZ
  1. adm384

    adm384 Создатель

    Регистр.:
    3 окт 2007
    Сообщения:
    19
    Симпатии:
    1
    привет всем нужен бат скрипт который бы слушал порт к примеру 80 и если он не отвечал перезупаскал службу )
    предыстория есть у меня на сервере апачь который бывает что просто перестает отвечать по порту но при этом служба запущена помогает тока рестарт службы ... =)))
     
  2. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    каковы признаки того, что апач перестает отвечать? Что в этот момент показывает?:
    Код:
    netstat -na
    Прежде чем писать bat-файл, необходимо найти способ определения того, что порт не отвечает.

    Возможный алгоритм:
    1) из bat запускаем wget и запрашиваем некую страницу. Эту страницу записываем в файл.
    2) сравниваем только что сохраненный файл с файлом-образцом, полученным той же командой wget, когда порт отвечал.
    3) в зависимости от результата сравнения перезапускаем службу или нет.
     
  3. adm384

    adm384 Создатель

    Регистр.:
    3 окт 2007
    Сообщения:
    19
    Симпатии:
    1
    показывает до хрена конектов =)) но толка нет так как он просто перестает отвечать =)))

    вариант с вгетом нравиться кто поможет =)) я в этом слаб ))

    да и можно даже самый просто вариант не вгет а к примеру телнет на 80 порт .. если не ответил то **х рестарт =)
     
  4. Vitaliyzp

    Vitaliyzp Постоялец

    Регистр.:
    24 янв 2008
    Сообщения:
    56
    Симпатии:
    9
    попробуй эту прогу
    Network Automation AutoMate
    с ее помощью можно вытворить все что только можно себе придумать.
     
  5. jik

    jik

    Регистр.:
    11 мар 2009
    Сообщения:
    243
    Симпатии:
    133
    Итак, вариант с wget.

    1) скачиваем wget for windows отсюда: http://gnuwin32.sourceforge.net/packages/wget.htm ссылка Complete package, except sources. Устанавливаем, программа будет установлена в \Program files\GnuWin32\

    2) Создаем на своем сервере скрипт, который мы будем тестировать:

    test_apache.php
    PHP:
    <?
    echo 
    'hello, tester';
    ?>
    3) Создаем рабочий каталог c:\check_apache, и в нем создаем файл-образец нашей тестовой страницы:

    Код:
    "c:\program files\GnuWin32\bin\wget" http://localhost/test_apache.php -O c:\check_apache\sample.html
    4) создаем в рабочем каталоге bat-файл:

    check_apache.bat:
    Код:
    @echo off
    erase "c:\check_apache\current.html"
    "c:\program files\GnuWin32\bin\wget" http://localhost/test_apache.php -O "c:\check_apache\current.html"
    
    fc "c:\check_apache\sample.html" "c:\check_apache\current.htm" | FIND "FC: " > nul 
    
    if ERRORLEVEL 1 goto :s_files_are_different
    echo apache ok!
    goto :end
    
    :s_files_are_different
    echo restart apache!
    rem call restart_apache.bat
    goto :end
    
    :end
    5) запускаем bat-файл и проверяем его работу.
    Должны получить apache ok! или restart apache!.
    После отладки bat-файла создайте bat-файл restart_apache.bat, который будет перезапускать apache и раскомментируйте вызов этого bat-файла:

    check_apache.bat:
    Код:
    ...
    echo restart apache!
    call restart_apache.bat
    goto :end
    ...
     
    adm384 и wolfer нравится это.
  6. slech

    slech Создатель

    Регистр.:
    26 апр 2009
    Сообщения:
    33
    Симпатии:
    6
    может не совсем в тему - но как очень хороший вариант
    поставить Dude
    http://www.mikrotik.com/thedude.php
    по Down можно поставить выполнение програмы или батника
    напимер так на удалённой машине
    sc \\IP stop apache
    sc \\IP start apache

    или на локальной
    net stop apache
    net start apache
    заодно можно писать логи - когда сервер падал.
     
Статус темы:
Закрыта.