我的脚本部分工作,或者直到我想能够运行一个while循环,只要IP变量中有IP,我已经搜索了一段时间在谷歌壳循环,但我不能完全弄清楚如何写它,所以我可以只添加几个IP的并运行它。写一段时间几个ip运行shell脚本
我从丹麦来的,所以变量可以看起来很奇怪的^^
#!/bin/bash
# snmp printer status
#Function takes two arguments: ip oid
#function snmpget()
#{
# snmpdata=`snmpget -v2c -c public $1 $2 | cut -d" " -f3-`
# echo $snmpdata
#}
kunde='fkt'
ip[0]= '172.29.8.250'
ip[1]= '172.29.8.200'
let a=0
while [[ $a -lt ${#ip[*]} ]] ; do
let a+=1
serienummer=$(snmpget -v2c -c public $ip iso.3.6.1.2.1.43.5.1.1.17.1 | cut -d" " -f4-)
model=$(snmpget -v2c -c public $ip iso.3.6.1.2.1.43.5.1.1.16.1 | cut -d" " -f4-)
ialt=$(snmpget -v2c -c public $ip iso.3.6.1.4.1.1347.43.10.1.1.12.1.1 | cut -d" " -f4-)
a3f=$(snmpget -v2c -c public $ip iso.3.6.1.4.1.1347.42.2.1.1.1.8.1.1 | cut -d" " -f4-)
a3sh=$(snmpget -v2c -c public $ip iso.3.6.1.4.1.1347.42.2.1.1.1.7.1.1 | cut -d" " -f4-)
a4sh=$(snmpget -v2c -c public $ip iso.3.6.1.4.1.1347.42.2.1.1.1.7.1.3 | cut -d" " -f4-)
a4f=$(snmpget -v2c -c public $ip iso.3.6.1.4.1.1347.42.2.1.1.1.8.1.3 | cut -d" " -f4-)
hostnavn=$(snmpget -v2c -c public $ip iso.3.6.1.4.1.1347.40.10.1.1.5.1 | cut -d" " -f4-)
scan=$(snmpget -v2c -c public $ip iso.3.6.1.4.1.1347.46.10.1.1.5.3 | cut -d" " -f4-)
mysql --host=localhost --user=username --password=password status_printer -e "INSERT INTO status (serienummer,model,ialt,a3f,a3sh,a4sh,a4f,hostnavn,scan)
VALUES('${serienummer}','${model}','${ialt}','${a3f}','${a3sh}','${a4sh}','${a4f}','${hostnavn}','${scan}');"
done
我会认为'对于ip $ {ips [@]};做'确实是你所需要的,并发症少?你同意吗?请注意,我调用数组'ips'和单个地址'ip',但这只是一个例子 – fvu 2014-10-03 12:52:15