功能需求:
一台windows服务器上有A/B两套处理系统,分别存放在XXXX_A与XXXX_B目录下,且程序名称相同, 同时只能运行一套系统。现要通过ZABBIX对其进行监控,需要实时检查当前实际使用是哪套系统。
实现思路:
查找系统中名为xxx.exe程序路径,若包含_A则返回A,若包含_B则返回B,否则返回No,并将结果覆盖式写入c:\xxxx.log文件,zabbix定时读取这个日志文件
使用wmic 命令,一行代码即可实现
task_chk.bat文件内容如下:
@echo off
setlocal
wmic process where name="xxx.exe" get ExecutablePath /format:list | findstr /i "_A" > C:\xxx.log && echo A >> C:\xxx.log || (findstr /i "_B" C:\xxx.log && echo B >> C:\xxx.log) || echo No > C:\xxx.log
endlocal