In HP ProCurve und ssh habe ich dokumentiert, wie man einem ProCurve-Switch beibringen kann, per ssh zum
Management erreichbar zu sein. Leider wird “ssh manger@switch <command>” nicht unterstützt, so dass
man Expect braucht, um den Switch zu bedienen.
Nun sind TCL und ich nicht gerade die allerbesten Freunde, und ich erinnere mich mit Schaudern daran, wie ich vor
Jahren den Status eines Infortrend-RAIDs mit Expect aus der seriellen Schnittstelle herausgekitzelt habe, um über den
Nagios Alarm zu schlagen, wenn eine Platte ausfällt. Also machen wir’s diesmal in Perl.
Noch schwerer wird’s, wenn man die Ausgabe des Switches weiterverarbeiten möchte: Denn das, was aus dem Expect
herausfällt, ist voller Steuerzeichen. Hier hilft Term::VT102, ein Perl-Modul, das im Speicher ein VT102-Terminal
simuliert, dessen Bildschirm man nach Abschluß der geplanten Aktion auslesen kann. Das habe ich mit einem Scroll-Hook
gelöst, der die Daten, die aus dem virtuellen Terminal herausscrollen, in ein Array schreibt. Zum Schluß werden dann
einfach genug CRs in das Terminal gekippt, dass auch die letzte Bildschirmseite in unserem Array gelandet ist.
Um die Eigenheiten des Switches zu Umschiffen und sicherzustellen, dass die Daten trotzdem lesbar sind, muss man dem
VT102 noch Teile der Cursorbewegung abgewöhnen: Der Switch positioniert den Cursor oft hart, und das terminal kommt
dabei durcheinander, wenn die im Switch eingestellte Terminalgröße nicht richtig ist.
Comments