NAME

 

e_watch.pl - просмотр и обработка данных внешних приложений с определенной частотой выполнения тех приложений...


DESCRIPTION

 

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


SYNOPSIS

 

Аргументы командной строки:

-cfg

Полный путь к файлу конфигурации. По умолчанию e_watch.cfg.

-log

Полный путь к лог файлу. По умолчанию e_watch.log.

-step

Частота выполнения внешних программ. В минутах.

-help

Краткая справка.

-use_syslog

Использовать для логирования syslogd ( под *nix ) или EventLog под win32.


CONFIGURATION FILE

 

Список параметров:

Cmd

Команда операционной системы для запуска.

Desc

Описание команды для лог файла.

RegExp

Регулярное выражения для поиска в данных полученных от внешней программы.

On_Exec

Команда ОС которая выполняется при успешном поиске регулярного выражения ( RegExp ) в данных внешней программы ( Cmd ). Данная программа запускается только при смене результатов поиска регулярного выражения с false на true..., тоесть дублирующиеся данные отсекаются...

Off_Exec

Команда ОС которая выполняется при неуспешном поиске регулярного выражения ( RegExp ) в данных внешней программы ( Cmd ). Данная программа запускается только при смене результатов поиска регулярного выражения с true на false..., тоесть дублирующиеся данные отсекаются...

Bool

Первоначальное значение результата поиска регулярного выражения... Возможные значения -1, 1 или 0. По умолчанию -1, логировать первый результат при любом раскладе.

Step

Шаг выполнения данной команды относительно основного шага выполнения команд... То есть если скрипт запущен с параметром командной строки -step 2 ( выполнять каждые 2 минуты ), а конфигурационном файле для данной команды ( Cmd ) значение Step равно 3, то данная команда будет выполняться с интервалом 6 минут...

Dup_Step

Шаг регистрации сообщений с одинаковым статусом поиска регулярного выражения. То есть, по умолчанию дупы игнорируются, ( если предыдущий поиск регулярного выражения дал положительный результат, то обработка повторного положительного результата игнорируется, ждем отрицательного результата и тд... ), этот параметр говорит через сколько циклов давших одинаковый результат поиска повторно зарегистрировать лог сообщение... При параметре конфигурационного файла step = 2, и опции командной строки step = 2, и dup_step = 3, повторные сообщения будут логироваться каждые 12 минут...

On_Dup_Exec

То же , что и On_Exec только для дублирующихся данных...

Off_Dup_Exec

То же , что и Off_Exec только для дублирующихся данных...

Пример конфига:

 #
 # Команда на запуск
 #
 CMD        ps ax
 
 #
 # Описание для лог файла
 #
 DESC       MCCP Server

 #
 # Регулярное выражение которое матчим в выводе `команды на запуск`
 #
 REGEXP     192\.168\.108\.132

 #
 # Команда для запуска после изменения флага
 # на `образец найден`
 #
 ON_EXEC     date | mail -s 'RAS clien "MCCP" online' root@localhost

 #
 # Команда для запуска после изменения флага
 # на `образец _НЕ_ найден`
 #
 OFF_EXEC    date | mail -s 'RAS clien "MCCP" offline' root@localhost

 #
 # Положение флага при старте 1 - ON, 0 - OFF
 #
 BOOL        1

 #
 # Частота выполнения задания (x1, x2, .., xN)
 # где N множитель тоесть при l_sleep = 1 и
 # шаге N = 2 данное задание будет выполняться
 # на каждом втором основном цикле программы.....
 #
 STEP        1

 #
 # Шаг регистрации повторных событий ( если 0 то не регистрировать... )
 #
 DUP_STEP    10

 #
 # Команда для запуска после изменения флага
 # на `образец _НЕ_ найден`
 #
 OFF_DUP_EXEC /usr/local/bin/rcmd 192.168.108.132 -c 'restart service mccp'

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


NOTES

 

Формат лог файла:

 14/10/2004 19:12:59 : OFF : MCCP Server [ 0 d, 00:00:00 ]
 
 где:
'14/10/2004 19:12:59'

время генерации записи

'OFF'

результат поиска RegExp'а ( On - найден, OFF - не найден )

'MCCP Server'

коментария к событию ( параметр Desc файла конфигурации )

'[ 0 d, 00:00:00 ]'

время прошедшее с момента последнего измения статуса ( On / Off ). 0 d - 0 дней, xx:xx:xx - часов:мин:сек


AUTHOR

 

 Igor V. Okunev  mailto:igor@prv.mts-nn.ru
                 http://www.mts-nn.ru/~gosha
                 icq:106183300