Любой язык - [решено] Скрипт мониторинга службы или порта

Аватара пользователя
bombording

Любой язык - [решено] Скрипт мониторинга службы или порта

Сообщение bombording »

Добрый день.

Имеется некая служба (она так же имеет свой порт и свой процесс), которая иногда зависает...

Требуется скрипт, который будет запускаться каждую минуту, и будет мониторить эту службу\порт. И если он не будет получать ответ от службы на протяжении, скажем 2-3 секунд, последует команда на перезапуск службы.



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



Помогите пожалуйста в написании данного скрипта.

Спасибо.
Аватара пользователя
Iska

Re: Любой язык - [решено] Скрипт мониторинга службы или порта

Сообщение Iska »

bombording, давайте уточним общую картину — правильно ли я понял:



1. Сервер баз данных состоит из двух служб [приведите их имена, пути к исполняемым файлам, командные строки процессов, их реализующих, и зависимости других служб от данных служб] и процесса «base.exe» [он существует в единственном экземпляре? В каком контексте он запускается изначально? Приведите путь к исполняемому файлу «base.exe», командную строку процесса].



2. Визуальным основанием для перезапуска служб является аварийное завершение процесса «base.exe». Для восстановления работоспособности сервера баз данных достаточно перезапустить обе службы [очерёдность перезапуска важна?]. После перезапуска служб, процесс «base.exe» стартует автоматически [его запускает какая-то из служб?].
Аватара пользователя
bombording

Re: Любой язык - [решено] Скрипт мониторинга службы или порта

Сообщение bombording »

Iska, Большое спасибо! Всё работает как надо.
Аватара пользователя
El Sanchez

Re: Любой язык - [решено] Скрипт мониторинга службы или порта

Сообщение El Sanchez »

Цитата bombording:



её нужно ставить на выполнение в планировщик
Любой язык - [решено] Скрипт мониторинга службы или порта




Это просто команда настройки службы, выполняется 1 раз. А там уже все будет зависеть от самой службы и ее взаимодействия с SCM.
Аватара пользователя
bombording

Re: Любой язык - [решено] Скрипт мониторинга службы или порта

Сообщение bombording »

El Sanchez, спасибо за наводку на sc failure. Я сейчас знакомлюсь с синтаксисом.

Я так понял у данной комманды нет рассписания выполнения и её нужно ставить на выполнение в планировщик?
Аватара пользователя
El Sanchez

Re: Любой язык - [решено] Скрипт мониторинга службы или порта

Сообщение El Sanchez »

bombording, всё упирается в определение, что Вы подразумеваете под: «некая служба, … которая иногда зависает...» и «служба в случае недоступности…». Как Вы определяете. что она «зависает» и что она «недоступна»?




Цитата bombording:



И как быть, к примеру, если мне нужно что бы служба была выключена в 2 часа ночи на время архивации.
Любой язык - [решено] Скрипт мониторинга службы или порта




Останавливайте её из того же задания, что и архивация, после — запускайте.



Я чую, Вам надо почитать что-нибудь по службам: что это такое, как работает, как с ними взаимодействовать.
Аватара пользователя
bombording

Re: Любой язык - [решено] Скрипт мониторинга службы или порта

Сообщение bombording »

Цитата bombording:



Тоесть если я хочу, что бы служба в случае недоступности в течении 20 секунд, перезапускалась автоматически. Я должен выполнить ??
Любой язык - [решено] Скрипт мониторинга службы или порта




bombording, параметр reset определяет через сколько секунд беспербойной работы службы счетчик ошибок сбрасывается в 0 и этот период должен быть гораздо больше, чем 20 с. Сбрасывайте через несколько часов или раз в сутки.

А в actions у вас записано: при первом сбое рестарт службы с задержкой в 5 с., можно дописать еще действия для второго сбоя и последующих.




Цитата bombording:



если мне нужно что бы служба была выключена в 2 часа ночи на время архивации. Не запустится ли она автоматически после выключения??
Любой язык - [решено] Скрипт мониторинга службы или порта




Ну и останавливайте по расписанию через планировщик. Остановленная служба - нормальное состояние, а не ошибочное.
Аватара пользователя
Iska

Re: Любой язык - [решено] Скрипт мониторинга службы или порта

Сообщение Iska »

Iska,

Вообщем ситуация такая. Имеется сервер баз данных "Первасив" он имеет две службы и 1 процесс.

Иногда, пользователи с привилегиями могут создать в базе данных такой запрос... который выводит из строя базу данных.



Под выводом из строя подразумевается то что процесс сервера баз данных убивается. Службы при этом находятся в состоянии Started.



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



Сейчас стоит задача отслеживать падение базы данных и перезапускать службы в случае выхода из строя базы.



El Sanchez,

А если мне необходимо одно действие на все сбои службы.

И непонятно, как sc failure определяет ошибочное состояние, если службы находятся в состоянии Started при сбое.
Аватара пользователя
El Sanchez

Re: Любой язык - [решено] Скрипт мониторинга службы или порта

Сообщение El Sanchez »

Цитата bombording:



И непонятно, как sc failure определяет ошибочное состояние, если службы находятся в состоянии Started при сбое.
Любой язык - [решено] Скрипт мониторинга службы или порта




Это и есть главный вопрос: как Вы определяете, что нужен перезапуск служб?
Аватара пользователя
bombording

Re: Любой язык - [решено] Скрипт мониторинга службы или порта

Сообщение bombording »

Iska,

Вообщем ситуация такая. Имеется сервер баз данных "Первасив" он имеет две службы и 1 процесс.

Иногда, пользователи с привилегиями могут создать в базе данных такой запрос... который выводит из строя базу данных.



Под выводом из строя подразумевается то что процесс сервера баз данных убивается. Службы при этом находятся в состоянии Started.



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



Сейчас стоит задача отслеживать падение базы данных и перезапускать службы в случае выхода из строя базы.



El Sanchez,

А если мне необходимо одно действие на все сбои службы.

И непонятно, как sc failure определяет ошибочное состояние, если службы находятся в состоянии Started при сбое.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»