#!/bin/bash
for i in `seq 1 3000`
do
index=`snmpget -v 2c -c public -Oqv localhost 1.3.6.1.4.1.21067.4.1.1.1.$i`
done
for i in `seq 1 3000`
do
upload=`snmpget -v 2c -c public -Oqv localhost 1.3.6.1.4.1.21067.4.1.1.10.$i`
done
for i in `seq 1 3000`
do
download=`snmpget -v 2c -c public -Oqv localhost 1.3.6.1.4.1.21067.4.1.1.11.$i`
done
(Ubuntu的12.04)以上 是我的shell腳本....與SNMPGET指令的每次執行它上面返回一個整數,並將值三個變量... 問題是數據表是9000個值。所以在這個腳本中,它給予了太多的時間消耗和bettelnake。的NET-SNMP(獲取/步行路程)shell腳本效率不高
任何人都可以建議我一些簡單的「SNMPWALK」(或其他)使用的腳本,我可以將所有這些數據存儲到一個數組[9000]或三個解析,索引爲1的三個不同的數組到3000.所以我可以儘可能地減少時間。
例如:snmpwalk -v 2c -c public -Oqv localhost 1.3.6.1.4.1.21067給出了所有的值,但我不知道如何將所有這些值存儲在具有不同索引的數組中。 ................................................. .................
見下面我曾嘗試:但是給我的錯誤...
cat script.sh
#!/bin/sh
OUTPUT1=$(snmpbulkwalk -Oqv -c public -v 2c localhost 1.3.6.1.2.1.2.2.1.1 2> /dev/null)
i=1
for LINE in ${OUTPUT1} ;
do
OUTPUT1[$i]=$LINE;
i=`expr $i + 1`
done
sh script.sh
j4.sh: 6: j4.sh: OUTPUT1[1]=1: not found
j4.sh: 6: j4.sh: OUTPUT1[2]=2: not found
其實我是非常新的腳本..它顯示我syntex錯誤「(」意外的第三行。請參閱這些是我的供應商特定的mibs ...就像ifindex,ifInoctets,ifOutoctects –
我看到你是使用SNMPv2c已經嘗試使用snmpbulkwalk或snmpbulkget來加速數據檢索過程這裏是snmpbulkwalk手冊頁請注意,您可以使用特別是-Cr和-Cn選項配置此命令snmpbulkwalk通過避免大量的數據並且它限制了PDU的打包/解包呼叫的數量 – lucassm
看到我的新代碼部分工作......在上面的問題中更新了.. –