Nの外部記憶

作ったアプリや、作成時の備忘録を書くブログ。やりたいことが多すぎるッ!

【bash】snmpwalkの取得結果のフィルタ例

bash

例1

result=`snmpwalk -v ${SNMP_VEROPT} -c ${SNMP_COMMUNITY} ${TARGET_IP} ${get_oid} | awk '{print $4}' | sed -e "s/.*(\(.*\))/\1/"`
  • 取得結果 result="1 1 1 1 1 1 1 1 1 1 1 1"

例2

result=`snmpwalk -v ${SNMP_VEROPT} -c ${SNMP_COMMUNITY} ${TARGET_IP} ${get_oid} | sed -e "s/^.*${sort_oid}.//g" | sed -e "s/ .*: /=/g"`
  • 取得結果 result="1=1 2=4 3=5 4=6" 「sort_oid」に、snmpwalkの標準出力にある共通のOIDを指定することで、インスタンスを考慮した取得が可能。

気を付けたい点

  • コマンドの標準出力は改行されて出力されるが、「result」に格納されたときには半角スペース区切りで格納される。
  • 格納時、配列として格納はされない。※result[1]はNULL
  • forで一つずつ取り出すことは可能。
  • 配列にさせたい場合、result_array=(${result})で配列にさせる。