salt批量修改Windows端zabbix_agent配置文件并重启服务
目的:添加zabbix,TCP的监控模块,将内容 UserParameter=tcp[*],netstat -anp tcp |find /i /c “$1” 添加到zabbix客户端文件末尾,重启服务使其生效;
思路:
1、新建一个zabbix.bat脚本,功能为添加内容到配置文件末尾;
2、将文件更新到zabbix_agent服务器上,利用salt批量执行这个zabbix.bat文件;
3、利用salt远程批量重启zabbix_agent服务;
zabbix.bat内容:
@echo off
set a="^UserParameter=tcp[*],netstat -anp tcp ^| find /i /c “^$1"”
echo %a:~1,57% >> D:\XXX\zabbix\zabbix_agentd.conf
大体思路就是将要添加的内容以字符串形式赋值给变量A,再将A输入指定文件末尾,
因为赋值的字符串是带引号的,为了去掉引号,需要截取字符串内容,所以会写%a:~1,57%;
这里需要注意的一点是,管道符“|”和“$”都是特殊字符,需对其作转义:^ ,也就是shift+6;
顺带记一下相关知识点:DOS特殊字符转义
转:DOS特殊字符转义
利用salt远程批量重启zabbix_agent服务命令:
salt ‘*’ cmd.run “D:\XXX\zabbix\zabbix_agentd.exe -x -c D:\XXXzabbix\zabbix_agentd.conf”
salt ‘*’ cmd.run “D:\XXX\zabbix\zabbix_agentd.exe -s -c D:\XXXzabbix\zabbix_agentd.conf”
-x 表示停止服务
-s 表示启动服务