Я едва вхожу в программирование, поэтому прошу прощения за свое невежество. Я пытаюсь создать .bat-файл, который будет проверять, работает ли служба на XP Pro.
Если служба запущена, она выйдет из 0. Если служба остановлена, запустите службу, подождите 10 секунд (я предполагаю, через ping) проверьте, работает ли служба, если служба работает, выход 0, если служба остановлена, запуск службы подождите 10 секунд
Сделайте эту проверку всего 3 раза. если услуга не появится в течение этого времени: выход 2
Выход 0 = нормально, выход 1 = предупреждение, выход 3 = критическое (и это будет предупреждать)
Мне нужно сделать это для трех разных служб, но я ожидаю, что было бы лучше создать по одной для каждой службы. Таким образом вы получите уведомление о том, что конкретная служба больше не работает.
Цель состоит в том, что если служба остановится, она запустит ее. Если через 30 секунд не удается запустить службу, она отправляет предупреждение.
Причина, по которой я пытаюсь сделать это с помощью .bat, заключается в том, что это согласуется со всеми другими сценариями, и я не хотел усложнять его еще больше, добавляя различные типы кода. Ура за последовательность!
Я снова прошу прощения за свое невежество, которое меня бросили в этот проект в последнюю минуту.
Спасибо за помощь и за чтение моего вопроса!
Проверка того, запущена ли служба, встроена в NSClient ++. Я перезапускаю службу, если она не работает с обработчиком событий NRPE. Обычно, если служба остановлена, NRPE запускает сценарий.
Сценарий
@echo off
net start %1
@exit 0
и я определил обработчик событий в nsclient.ini как, например:
restartwsus=scripts\runcmd.bat wsusservice
под ; A list of scripts available to run from the CheckExternalScripts module. Syntax is: <command>=<script> <arguments>
заголовок.
(Перезапустите NSClient ++)
На сервере Nagios я определил команду в commands.cfg как:
define command{
command_name restartwsus
command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c restartwsus
}
и определили услугу как:
define service{
use generic-service
host_name wsusserver
service_description WSUS
contacts me
notification_options w,c,r
notification_period 24x7
notification_interval 0
check_command check_nt!SERVICESTATE!-d SHOWALL -l WsusService
event_handler restartwsus
}
Надеюсь, это поможет.