Diesen Artikel als PDF kaufen Weitere ADMIN-Magazin Angebote

Skripting mit Expect und Tcl

Ferngesteuert

Für interaktives Skripting eignet sich die Tcl-Bibliothek Expect besonders gut. Damit lassen sich zum Beispiel virtuelle Maschinen in der Cloud, Atomuhren oder SSH-Sessions fernsteuern, wie dieser Artikel zeigt.
Æleen Frisch

Auch wenn sich mit der Bash oder anderen Unix-Shells viele Skripting-Aufgaben erledigen lassen, stößt man schnell an Grenzen, wenn ein Skript mit einem Kommandozeilenprogramm interagieren soll. Zum Beispiel sind viele Password-Prompts, etwa ein SSH-Login, so konfiguriert, dass sie nur Eingaben von einem Terminal verarbeiten. Auch die Ausgabe von Programmen zu verarbeiten, erfordert einiges an Anstrengung, wenn es sich um eine interaktive Session handelt.

Das Expect-Tool ist dagegen extra dafür gemacht, interaktive Prozesse zu automatisieren [1], [2]. Die auf Expect basierenden Programme sind sogenannte Chat-Skripts, die aus einer Reihe von Prompt-Antwort-Paaren bestehen. Expect basiert auf der Skriptsprache Tcl und wurde von Don Libes geschrieben. Verfügbar ist es für die meisten Linux- und Unix-Varianten. Selbst für Windows gibt es einen Port [3].

Als einfaches Beispiel für die Anwendung von Expect soll ein Skript dienen, das eine SSH-Verbindung zu einem Host aufbaut, den man auf der Kommandozeile als Argument übergibt. Die erste Zeile des Skripts in Listing 1 ist das Tcl-Konstrukt, das der Variablen »host« mit »set« einen Wert zuweist. Das Gebilde in eckigen Klammern extrahiert mit dem Tcl-Kommando »lindex« aus dem Array »$argv« den ersten Wert (die Zählung startet bei Null). Die folgende Zeile weist der Variablen »timeout« den Wert 5 zu. Es handelt sich dabei um eine von Expect automatisch verwendete Variable, die festlegt, wie lange das Skript auf eine Eingabe wartet.

Listing 1

...

Diesen Artikel als PDF kaufen

Als digitalen Artikel

Diesen Artikel als PDF kaufen.

Preis € 1,99



Im ADMIN Online-Archiv

Abonnieren Sie das ADMIN Online-Archiv, und Sie erhalten Zugriff auf alle ADMIN-Artikel im HTML- und/oder PDF-Format.

Kommentare

Suche

ADMIN auf Twitter, Facebook, Xing

Auf Twitter folgen   

Unsere Partner:

hackerboard.deUnixboard