我只是几乎没有进入编程,所以我为我的无知道歉。 我正在尝试创build一个.bat文件来检查服务是否在XP专业版上运行。
如果服务正在运行,它将退出0.如果服务停止启动服务等待10秒(通过ping我猜)检查服务正在运行,如果服务正在运行退出0,如果服务停止启动服务等待10秒
这样做总共检查3次。 如果服务在这段时间内没有出现:退出2
退出0 = ok退出1 =退出警告3 =关键(这会提醒)
我需要为3个不同的服务做到这一点,但我期望每个服务创build一个更好。 这样你就会得到通知,不会回来的特定服务。
目标是,如果服务停止将启动它。 如果30秒后无法启动服务,则会发送警报。
我试图用.bat来做这件事的原因是这与所有其他脚本是一致的,我不想通过添加不同types的代码来使其复杂化。 是的一致性!
我再一次道歉,因为我最后一刻被抛到这个项目上的无知。
感谢您的帮助和阅读我的问题!
检查一个服务是否正在运行实际上内置在NSClient ++中。 如果使用NRPE事件处理程序closures服务,我将重新启动该服务。 基本上,如果服务停止,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> ; 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 }
我希望有帮助。