Cisco-Parse-Show-Befehl

Cisco-Parse-Show-Befehl

Ich möchte ein Perl-Skript schreiben, das sich über Telnet bei Cisco-Switches anmeldet und die Ausgabe analysiert show mac-address-table. Das Problem besteht darin, dass mir verschiedene Switches ein unterschiedliches Feldlayout anzeigen.

Der WS-C3548-XL zeigt die Felder in der Reihenfolge

Destination Address Address Type VLAN Destination Port

während der C2960 es wie

Vlan Mac Address Type Ports

Gibt es eine Möglichkeit, Show anzuweisen, die Felder in einer vordefinierten Reihenfolge zu drucken?

Antwort1

Abfragen der Geräte mit SNMP. Ich würde annehmen, dass die MIBs gleich sind, aber bei Cisco weiß man nie.

Antwort2

Nein, nicht dass ich wüsste.

Aber da Sie bereits Perl verwenden, überprüfen Sie einfach die erste Zeile. Von da an wissen Sie, was die Bedeutung der einzelnen Felder ist, und füllen Ihren Hash (ich hoffe, Sie verwenden einen!) entsprechend aus. Dies hat den zusätzlichen Vorteil, dass Sie in Zukunft andere Modelle mit einem weiteren Ausgabeformat unterstützen können. Während die „alten“ weiterhin unterstützt werden. Robuste Programmierung.

...Oh, und achten Sie darauf, das Leerzeichen im „Adresstyp“ zu berücksichtigen :)

Antwort3

Haben Sie an Skripting mit SNMP gedacht? Sie können externe Dienstprogramme wie snmpget/snmpwalk ausführen und die Ausgabe analysieren oder das Modul Net::SNMP verwenden.

Antwort4

SNMP wäre am besten. Aber denken Sie auch daran, dass der Ausgabemodifikator „include“ Regex-fähig ist. Sie können einfach die gewünschten Informationen abrufen, wenn Sie bei Perl-expect bleiben möchten.

verwandte Informationen