Telnet 経由で Cisco スイッチにログインし、出力を解析する Perl スクリプトを作成したいと考えていますshow mac-address-table
。問題は、スイッチによってフィールド レイアウトが異なることです。
WS-C3548-XLは、注文のフィールドを表示します。
Destination Address Address Type VLAN Destination Port
C2960では次のように表示されます
Vlan Mac Address Type Ports
事前に定義された順序でフィールドを印刷するように show に指示する方法はありますか?
答え1
SNMP を使用してデバイスをポーリングします。MIB は同じだと思いますが、Cisco の場合はわかりません。
答え2
いいえ、私が知る限りではそうではありません。
しかし、すでに perl を使用しているので、最初の行だけを確認してください。そこから、特定のフィールドの意味がわかり、それに応じてハッシュ (使用していることを願っています!) を入力します。これには、将来、さらに別の出力形式で他のモデルをサポートできるという追加の利点があります。「古い」モデルも引き続きサポートします。堅牢なプログラミング。
...ああ、「アドレス タイプ」のスペースを必ず処理してください :)
答え3
SNMP を使用してスクリプトを作成することを考えたことがありますか? 外部の snmpget / snmpwalk ユーティリティを実行して出力を解析するか、Net::SNMP モジュールを使用することができます。
答え4
SNMP が最適です。ただし、"include" 出力修飾子は正規表現に対応していることも覚えておいてください。Perl の期待に固執したい場合は、必要な情報だけを取得できます。