К сожалению пока не получилось сделать:
Но сам скрипт приобрел такой вид:
Код: Выделить всё
#!/bin/bash
FILE=$1
COUNT=$2
for ((i = 1; i <= ${COUNT}; i++)); do
NUM2=$i;
if [ $NUM2 -le 9 ] ; then
NUM1=0${NUM2}
else
NUM1=${NUM2}
fi
while IFS=: read line
do
st=`echo "$line" | sed 's/"/\\\"/g'`
eval echo -e "\"$st\""
done < $FILE
done
./script.sh text.txt 2
Это оригинальный файл. В местах которые надо заменить номера значений вписуем ${NUM1} ${NUM2}
Разница в том что NUM1 имеет формат 00, а NUM2 0-9
Код: Выделить всё
<item type="4" key="ifInErrors${NUM1}" value_type="3">
<description>ifInErrors${NUM1}</description>
<ipmi_sensor></ipmi_sensor>
<delay>30</delay>
<history>90</history>
<trends>365</trends>
<status>0</status>
<data_type>0</data_type>
<units>Bps</units>
<multiplier>0</multiplier>
<delta>1</delta>
<formula>0</formula>
<lastlogsize>0</lastlogsize>
<logtimefmt></logtimefmt>
<delay_flex></delay_flex>
<authtype>0</authtype>
<username></username>
<password></password>
<publickey></publickey>
<privatekey></privatekey>
<params></params>
<trapper_hosts>localhost</trapper_hosts>
<snmp_community>pub</snmp_community>
<snmp_oid>.1.3.6.1.2.1.2.2.1.14.${NUM2}</snmp_oid>
<snmp_port>161</snmp_port>
<snmpv3_securityname></snmpv3_securityname>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authpassphrase></snmpv3_authpassphrase>
<snmpv3_privpassphrase></snmpv3_privpassphrase>
<applications/>
</item>
Выхлоп:
Код: Выделить всё
<item type="4" key="ifInErrors01" value_type="3">
<description>ifInErrors01</description>
<ipmi_sensor></ipmi_sensor>
<delay>30</delay>
<history>90</history>
<trends>365</trends>
<status>0</status>
<data_type>0</data_type>
<units>Bps</units>
<multiplier>0</multiplier>
<delta>1</delta>
<formula>0</formula>
<lastlogsize>0</lastlogsize>
<logtimefmt></logtimefmt>
<delay_flex></delay_flex>
<authtype>0</authtype>
<username></username>
<password></password>
<publickey></publickey>
<privatekey></privatekey>
<params></params>
<trapper_hosts>localhost</trapper_hosts>
<snmp_community>priv</snmp_community>
<snmp_oid>.1.3.6.1.2.1.2.2.1.14.1</snmp_oid>
<snmp_port>161</snmp_port>
<snmpv3_securityname></snmpv3_securityname>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authpassphrase></snmpv3_authpassphrase>
<snmpv3_privpassphrase></snmpv3_privpassphrase>
<applications/>
</item>
<item type="4" key="ifInErrors02" value_type="3">
<description>ifInErrors02</description>
<ipmi_sensor></ipmi_sensor>
<delay>30</delay>
<history>90</history>
<trends>365</trends>
<status>0</status>
<data_type>0</data_type>
<units>Bps</units>
<multiplier>0</multiplier>
<delta>1</delta>
<formula>0</formula>
<lastlogsize>0</lastlogsize>
<logtimefmt></logtimefmt>
<delay_flex></delay_flex>
<authtype>0</authtype>
<username></username>
<password></password>
<publickey></publickey>
<privatekey></privatekey>
<params></params>
<trapper_hosts>localhost</trapper_hosts>
<snmp_community>priv</snmp_community>
<snmp_oid>.1.3.6.1.2.1.2.2.1.14.2</snmp_oid>
<snmp_port>161</snmp_port>
<snmpv3_securityname></snmpv3_securityname>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authpassphrase></snmpv3_authpassphrase>
<snmpv3_privpassphrase></snmpv3_privpassphrase>
<applications/>
</item>
Теперь это можно подставить в xml шаблон zabbix и действовать дальше.
В обще хочется конечно полностью допилить по максимуму генерацию шаблонов по параметрам.
ну вот и сказочке конец, кто слушал, тот молодец.