HandyFileMonitor – приложение
мониторинга активности программ

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

В различных приложениях мониторинга активности программ используются разные методы контроля. Большинство их них с заданными интервалом проверяют наличие основного процесса программы в памяти или использование им системных ресурсов компьютера – это достаточно надежный и удобный метод. Но бывают случаи, когда этот метод неприменим. К примеру, если программа зависла или выдала критическую ошибку, процесс в памяти по-прежнему остается, но работа не выполняется. В этом случае необходимы другие критерии проверки выполнения программы.

Один из примеров – программа HandyFileMonitor, позволяющая отслеживать работу любого приложения, ведущего протокол работы (лог-файл). Работа этого приложения основана на простом правиле: если размер лог-файла увеличивается, программа работает; если размер лог-файла неизменен – программа либо выполнила все текущие задачи, либо остановила работу по причине ошибки или зависания. В том случае, если программа должна выполняться до остановки пользователем (различные модули потоковой обработки данных, рассылки, утилиты сетевого сканирования и иное программное обеспечение), использовать HandyFileMonitor очень удобно.

Справочное окно программы (рис. 1. Справочное окно программы)

Интерфейс и функционал приложения

HandyFileMonitor обладает простым и интуитивно понятным интерфейсом (см. рис. 2). Основное окно программы содержит поля для выбора лог-файла программы, работа которой должна контролироваться; задания команды, выполняемой при остановке работы программы; выбора частоты опроса; отображения статистики проверяемого лог-файла.

Интерфейс HandyFileMonitor (рис. 2. Интерфейс HandyFileMonitor)

Элементы интерфейса программы (сверху вниз):

  • File to monitor (файл для мониторинга) – поле для выбора лог-файла контролируемой программы. Можно заполнить это поле вручную или выбрать файл при помощи стандартного окна файлового менеджера операционной системы, нажав на кнопку «…»
  • Command (команда) – поле для задания команды или пути к выполняемому скрипту или файлу. В том случае, если проверяемый лог остается неизменным и отмечена опция «Execute command» (см. пункт 5), HandyFileMonitor автоматически запустит заданную программу или скрипт. Опция является крайне востребованной для перезапуска программ, автоматически возобновляющих работу с данными.
  • Time interval (sec.) (интервал времени (сек.)) – в данном поле можно задать интервал проверки лог-файла. Стоит учитывать – если работающая программа сохраняет лог через большие интервалы времени, не стоит делать время опроса меньше. Также не стоит делать время опроса малым при отмеченной опции «Execute command» (см. пункт 5), так как на выполнение любого скрипта или перезапуск программы тоже требуется определенное время.
  • Log results to file (сохранять результаты в файл) – опция позволяет программе вести собственный лог, внося в него информацию об анализируемом файле: дата и время проверки, общий размер файла в байтах, объем добавленной со времени последнего запроса информации в байтах.
  • Execute command (выполнить команду) – при помощи данной опции можно выполнять любую внешнюю команду или скрипт в том случае, если с момента последней проверки в протокол наблюдаемой программы не добавлено никакой новой информации и есть подозрение на ошибку или зависание.
  • File stats (статистика файла) – в это поле будет в режиме реального времени выводиться та же информация, которую HandyFileMonitor может сохранять в протокол: дата и время проверки файла, общий и накопленный с последней проверки объем данных.

Меню программы содержит необходимые для управления приложением команды (см. рис. 3).

Меню и элементы управления (рис. 3. Меню и элементы управления)
  • About (о программе) – F1. Вызов справочного окна программы (см. рис. 1).
  • Start Monitoring (начать мониторинг) / Stop Monitoring (остановить мониторинг) – F2. Запустить процесс мониторинга или остановить его, если он уже запущен.
  • Execute Command (выполнить команду) – F3. Ручной запуск команды или скрипта, указанного в поле «Command».
  • Exit (halt) (выход(остановка)) – F10. Моментальное завершение работы HandyFileMonitor.

Начать работу с приложением крайне просто – достаточно выбрать файл для контроля и указать интервал опроса в секундах. При необходимости можно задать скрипт или программу для выполнения в случае отсутствия изменений в логе наблюдаемой программы, а также указать программе необходимость ведения собственного протокола работы. После того, как все необходимые настройки сделаны, нужно начать мониторинг, выбрав соответствующий пункт меню или нажав горячую клавишу. Приложение начнет работу (см. рис. 4).

Работа приложения. Наблюдаемая программа активна (рис. 4. Работа приложения. Наблюдаемая программа активна)

С периодичностью заданного интервала поле File Stats начнет заполняться информационными строками о состоянии наблюдаемого лога. В порядке следования идут: дата, время (до тысячной доли секунды), размер файла в байтах (size), изменение размера в байтах (delta). Заголовок окна HandyFileMonitor при этом сменится на надпись “GOOD :)”.

В том случае, если объем файла лога наблюдаемой программы перестал увеличиваться, фон окна HandyFileMonitor сменится на красный, а заголовок окна – на «BAD :(». Если отмечена галочкой опция «Execute command», то будет запущена указанная в поле «Program» программа или скрипт. В строке, отображаемой в поле «File Stats», значение delta будет равным нулю (так как нет увеличения контролируемого файла), и будет добавлен текст «Could be a problem here!!!» («Возможна проблема!!!»). Вид окна программы в этом режиме показан на рис. 5.

Работа приложения. Наблюдаемая программа неактивна (рис. 5. Работа приложения. Наблюдаемая программа неактивна)

Возможности применения HandyFileMonitor

Приложение HandyFileMonitor, несмотря на свою кажущуюся простоту, является удобным монитором активности программ. К примеру, можно создать скрипт автоматического перезапуска программы по примеру:

S:\somefolder\pskill someprocess
S:\somefolder\someprocess.exe

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

Более того, пользователь может сделать сайт и гостевую книгу, а HandyFileMonitor при помощи скрипта автоматически добавит в нее сообщение при обнаружении остановки работы контролируемой программы. Таким образом, пользователь в любое время и с любого мобильного устройства, зайдя на свой сайт, узнает точное время остановки или перезапуска программы. Строка скрипта при этом будет иметь вид наподобие следующей:

S:\somefolder\wget.exe http://www.somesite.com/guestbook.php --post-data="message=Process1-Log_file_stopped_growing"

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

HandyFileMonitor также обладает рядом преимуществ по сравнению с другими аналогами:

  • Простота настройки. Никаких избыточных параметров, и в то же время весь необходимый для работы функционал. При завершении работы все настройки сохраняются в файл – нет необходимости каждый раз конфигурировать приложение заново.
  • Портабельность. Приложение не требует установки, не записывает информацию в реестр компьютера, запускается с любого мобильного носителя. Размер пускового файла – менее двух мегабайт.
  • Возможность параллельного запуска нескольких копий HandyFileMonitor, что позволяет следить за работой нескольких программ одновременно, а также выставлять различные интервалы проверки.