Zabbix批量导入XML文件生成小脚本(by Powershell)
2022/5/1 7:13:50
本文主要是介绍Zabbix批量导入XML文件生成小脚本(by Powershell),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
最近升级6.0后发现手动批量导入Zabbix主机群组需要一个新的uuid参数,于是用powershell写了一个脚本。
代码如下:
<# TIME:2022/04/30 DESCRIPTION:生成zabbix批量导入的XML文件 AUTHOR:Monbro #> # # $zbxiface设置为161为生成SNMP的XML文件,设置10050为ZabbixAgent的XML文件 $zbxiface = 10050 $ppath = Split-Path -Parent $PSCommandPath $xlsxfile = $ppath+"\"+(Get-ChildItem -Path "$ppath\*.xlsx").Name $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $wb=$excel.Workbooks.Open($xlsxfile) $ws=$wb.Sheets.Item("Sheet1") $slist=$iplist=$dplist=$cnlist=@() for ($n = 1; $n -le $ws.UsedRange.Rows.Count; $n++) { #01_Names $slist+=$ws.Cells.Item($n,1).Text #02_IPv4Address $iplist+=$ws.Cells.Item($n,2).Text #03_Description $dplist+=$ws.Cells.Item($n,3).Text #04_CanonicalName $cnlist+=$ws.Cells.Item($n,4).Text } $excel.Quit() $excel = $null [GC]::Collect() $cretedate = Get-Date -Format "yyyy-MM-ddThh:mm:ssZ" $groupname=$cretedate $groupuuid=[System.Guid]::NewGuid().toString('N') $filename = $ppath+"\"+$cretedate.Replace(":", "")+".xml" function ZBXhosts_imxml{ $xmlhead="<?xml version=`"1.0`" encoding=`"UTF-8`"?> <zabbix_export> <version>6.0</version> <date>$cretedate</date> <groups> <group> <uuid>$groupuuid</uuid> <name>$groupname</name> </group> </groups> <hosts>" $xmltail=" </hosts> </zabbix_export>" $xmlhead | Out-File -Encoding utf8 $filename if ($zbxiface.Equals(10050)) { $i=0 foreach($ServerName in $slist ){ $ip=$iplist[$i] $desp=$dplist[$i] $cnname=$cnlist[$i] $xmlmid10050=" <host> <host>$ServerName</host> <name>$ServerName</name> <description>$desp</description> <groups> <group> <name>$groupname</name> </group> </groups> <interfaces> <interface> <ip>$ip</ip> <dns>$ServerName</dns> <interface_ref>if1</interface_ref> </interface> </interfaces> <inventory> <name>$cnname</name> </inventory> </host>" $xmlmid10050 | Out-File -Encoding utf8 -Append $filename $i++ } } if ($zbxiface.Equals(161)) { $i=0 foreach($ServerName in $slist ){ $ip=$iplist[$i] $desp=$dplist[$i] $cnname=$cnlist[$i] $xmlmid161=" <host> <host>$ServerName</host> <name>$ServerName</name> <description>$desp</description> <groups> <group> <name>$groupname</name> </group> </groups> <interfaces> <interface> <type>SNMP</type> <ip>$ip</ip> <dns>$ServerName</dns> <port>161</port> <details> <community>{`$SNMP_COMMUNITY}</community> </details> <interface_ref>if1</interface_ref> </interface> </interfaces> <inventory> <name>$cnname</name> </inventory> </host>" $xmlmid161 | Out-File -Encoding utf8 -Append $filename $i++ } } $xmltail | Out-File -Encoding utf8 -Append $filename } ZBXhosts_imxml
这篇关于Zabbix批量导入XML文件生成小脚本(by Powershell)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16XMLHTTPRequest项目实战入门教程
- 2024-11-14XMLHTTPRequest教程:初学者必备指南
- 2024-10-10XMLHTTPRequest项目实战:从入门到上手
- 2024-02-26lxml not found please install it
- 2022-09-16使用Druid数据源-开启监控-xml的方式-配置类的方式
- 2022-09-08IDEA中pom.xml配置文件依赖文件版本号报红的最有效解决办法
- 2022-09-05如何更换项目中web.xml的版本
- 2022-09-02使用dom4j xml解析文件数据
- 2022-08-24可扩展标记语言——XML
- 2022-08-23mybatis 配置文件mybatis.xml的加载过程