The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Простой Perl-сценарий для переключения маршрутов на резервный канал

01.05.2009 18:50

Сценарий для переключения маршрутов на резервный канал, если основной шлюз перестал отвечать на пинг. Умеет проверять несколько шлюзов, каждому набору шлюзов может быть назначено несколько подсетей. Вызывается через cron. Проверен на FreeBSD и на Linux c iproute2. Команды проверки и переключения при желании можно переопределять в файле настроек.

  1. Главная ссылка к новости (http://sources.homelink.ru/fal...)
Автор новости: Ilya Evseev
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/21545-ping
Ключевые слова: ping, monitoring
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (6) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, XoRe (ok), 01:23, 02/05/2009 [ответить]  
  • +/
    2автор:

    Хороший скрипт.
    Ещё могу посоветовать посмотреть в сторону распараллеливания пингов.
    Чтобы не ждать <количество пингуемых точек> * <количество пингов> секунд.

    Сам в свое время сделал так:
    shell скрипт в цикле запускает пинги командой "ping ... $ip > /file.$ip &"
    Ждет нужное количество секунд и извлекает информацию из всех файлов разом.
    Таким образом опрашивалось 7 точек по 25 пингов каждые 40 секунд.

    В perl можно посмотреть в сторону fork или в сторону threads.
    Я бы ещё предложил system("ping $ip &"), но понимаю, что это не по фен-шую)

     
     
  • 2.3, mr_gfd (?), 12:52, 02/05/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Во фряхе перл системный без тредов собран по дефолту. С форками - гемора было бы больше, чем толку, ИМХО.
     
     
  • 3.6, XoRe (ok), 15:53, 03/05/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Во фряхе перл системный без тредов собран по дефолту. С форками -
    >гемора было бы больше, чем толку, ИМХО.

    Да, без тредов.
    А насчет гемора - смотря какие приоритеты.
    Если приоритет, чтобы работало быстро, важнее лени, то программист заморочится.

     
  • 2.4, Ilya Evseev (?), 13:16, 02/05/2009 [^] [^^] [^^^] [ответить]  
  • +/
    В fallback-gw пинг работает до первого ответа,
    поэтому ждать придётся только в случае отказа,
    который бывает не каждый месяц.
    В нормальной ситуации всё отрабатывает мгновенно.
     
     
  • 3.7, XoRe (ok), 15:56, 03/05/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >В fallback-gw пинг работает до первого ответа,
    >поэтому ждать придётся только в случае отказа,
    >который бывает не каждый месяц.
    >В нормальной ситуации всё отрабатывает мгновенно.

    Да, вижу.
    Тогда у нас с вами были немного разные цели.
    В моем случае ещё был такой фактор, как процент потерь в канале.

     

  • 1.5, q (??), 21:18, 02/05/2009 [ответить]  
  • +/
    Советую использовать perlcritic и книгу Perl Best Practices для доработки скрипта.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру