PAC verhilft Linux-Admins zu einem schönen Leben: Das pfiffige Werkzeug macht nicht nur den Zugriffe auf entfernte Rechner bequemer, sondern automatisiert dabei gleich noch gängige Arbeitsabläufe.
Linux und das schöne Leben offerieren oft viele Alternativen. Eine bequeme Lösung für den Fernzugriff auf andere Rechner bietet der SSH-, Telnet- und FTP-Client PAC. Der Perl Auto Connector [1], so sein voller Name – steht unter der GPLv3 und wurde von David Torrejon Vaquerizas in Perl implementiert. Der Client für den Fernzugriff merkt sich bereits benutzte Verbindungen, kann mit Proxies umgehen und kommt mit Expect klar, einem in TCL geschriebenen Werkzeug, das beim Automatisieren von Aufgaben in Terminals hilft [2]. Dank Expect lassen sich Tunnel oder mehrere SSH-Verbindungen komfortabel aufbauen sowie Passworteingaben automatisieren.
Erste Schritte
Ubuntu-Anwender haben es leicht: Sie brauchen lediglich die /etc/apt/sources.list um das PAC-Repository [3] zu erweitern. Die entsprechende Zeile lautet:
deb http://archive.getdeb.net/ubuntu lucid-getdeb apps
Anschließend installieren die beiden Aufrufe apt-get update und apt-get install pac das Werkzeug mitsamt allen Abhängigkeiten. Nutzer anderer Distributionen haben einen ungleich steinigeren Pfad vor sich, denn sie müssen auf die Quelltexte zurückgreifen und die Abhängigkeiten händisch auflösen, was in eine zeitraubende Beschäftigungstherapie ausarten kann.
Erfolgreich installiert, findet sich ein Eintrag für PAC im Menü, alternativ lässt sich die Anwendung mittels des Aufrufs pac von der Kommandozeile starten. Übergeben Sie dem Befehl dabei gleich noch ein -start_tray, verkrümelt sich PAC in das Desktop-Panel.
Der Perl Auto Connector präsentiert sich mit einer aufgeräumten Oberfläche, die sich intuitiv bedienen lässt. Das ist auch gut so, denn außer einer rudimentären Manpage existiert keine Hilfe für die Anwendung. Bevor PAC zu irgendeinem Rechner Verbindungen herstellt, müssen Sie eine Gruppe für eine sogenannte Umgebung anlegen. Bei einer solchen Umgebung kann es sich um das heimische Netzwerk, die eigene Serverfarm oder die Rechner im Betrieb handeln.
Sobald eine Gruppe existiert, können Sie ihr Rechner zuordnen. Neben IP-Adresse, Nutzername und Passwort möchte PAC auch wissen, ob er die Verbindung zu Gegenstelle via SSH, FTP oder Telnet aufbauen soll und wie Sie den zugehörigen Tab benennen wollen (Abbildung 1). Haben Sie die Angaben gemacht und gespeichert, steht einer Verbindungsaufnahme nichts mehr im Weg. Nach einem Klick auf Verbinden öffnet sich ein Terminalfenster, in dem der Prompt des entfernten PCs auf Eingaben wartet.
Bis hierhin bietet PAC noch nichts Besonderes. Eine Option, die das Admin-Leben erleichtert, ist jedoch die Möglichkeit, für jeden Server spezielle Anpassungen vorzunehmen. So können Sie beispielsweise Befehle definieren, die vor und nach der Verbindung auf dem Rechner ausgeführt werden, auf dem PAC läuft. Es lassen sich aber auch eine Reihe Befehle für die entfernte Maschine speichern, die Sie dann per Mausklick ausführen (Abbildung 2). Daneben besteht auch die Möglichkeit, alle Ausgaben des Terminals nach bestimmten Begriffen zu durchsuchen (Abbildung 3) oder gleichartige Server zu Clustern zusammenzufassen und vordefinierte Kommandos auf allen zum Cluster gehörigen Rechnern gleichzeitig aufzurufen (Abbildung 4).

Abbildung 2: Für jeden Server lassen sich oft genutzte Kommandos hinterlegen und per Klick aufrufen.

Abbildung 3: Etwas übersehen? Eine Suchfunktion, die auch reguläre Ausdrücke verarbeitet, kann helfen.

Abbildung 4: Zu Clustern zusammengefasst, machen viele Server nicht mehr Arbeit als eine einzelne Maschine.
Expect
Mit Expect verfügt PAC über ein Feature, das es erlaubt, auf bestimmte Ausgaben der entfernten Rechner zu reagieren und automatisch eine Reihe vordefinierter Befehle abzusetzen. In unserem Beispielnetzwerk befindet sich ein Ubuntu-Server, der über Updatemöglichkeiten informiert, sobald sich jemand anmeldet. Wir wollen PAC so konfigurieren, dass er das entfernte System aktualisiert, sobald Updates vorliegen.
Die entsprechende Meldung des Servers lautet X packages can be updated.. Sobald X größer 0 ist, soll Expect dafür sorgen, dass der entfernte Rechner die Paketlisten aktualisiert (apt-get update) und hinterher neuere Pakete einspielt (apt-get upgrade). Expect nutzt reguläre Ausdrücke, die es mit den Terminalausgaben abgleicht. Der reguläre Ausdruck, der die Ausgabe beschreibt, ob neue Pakete vorhanden sind, lautet:
^[123456789][0123456789]*\ packages\ can\ be\ updated\.
Das bedeutet: Sobald der Server eine Zeile ausgibt, an deren Beginn eine oder mehrere Ziffern (ohne führende Null) stehen, gefolgt von packages can be updated., meldet Expect einen Treffer, der in der Konfiguration hinterlegte Befehl wird ausgeführt.
Da Ubuntu standardmäßig keinen Benutzer root kennt, gilt es Apt-get in Kombination mit Sudo aufzurufen. Folglich müssen Sie Expect anweisen, den String mit der Aufforderung zur Passworteingabe zu erwarten, um dann das Passwort abzusetzen. Sobald das System die Paketlisten aktualisiert hat, erscheint wieder der Kommandozeilen-Prompt – für Expect das Zeichen, jetzt den Upgrade-Befehl zu senden (Abbildung 5).

Abbildung 5: In der richtigen Reihenfolge angegebene reguläre Ausdrücke und Kommandos sorgen dafür, dass der entfernte Rechner viele Aufgaben abarbeitet, ohne dabei mit Eingabeaufforderungen zu stressen.
Hier gilt es die Reihenfolge peinlich genau zu beachten, da die Expect-Anweisungen sonst nicht abgearbeitet werden. In unserem Test fehlte ein erstes <command prompt> – ein Regex, den PAC bereits mitbringt und den Sie mittels Rechtsklick auf das Eingabefeld einfügen können. Das führte dazu, dass Expect sich zunächst weigerte, die regulären Ausdrücke mit den Serverausgaben abzugleichen.
Fazit
Bei PAC handelt es sich um ein cleveres Werkzeug für Administratoren, die viele entfernte Server betreuen und es leid sind, häufig wiederkehrende Befehlssequenzen händisch einzugeben. Solange die Server wie erwartet arbeiten und die entsprechenden Ausgaben senden, lassen sich dank des integrierten Expect viele Aufgaben automatisch erledigen. Auch die Möglichkeit, viele ähnliche Maschinen zu Clustern zusammenzufassen, auf denen PAC dann identische Befehle ausführt, kann zu mehr Freizeit führen.
PAC verfügt über eine übersichtliche Oberfläche, die sich meist intuitiv bedienen lässt. Allerdings ist die Software momentan nur sehr rudimentär dokumentiert – was regelmäßig zu Stirnrunzeln führt, wenn etwas wider Erwarten nicht funktioniert. Dankenswerterweise erweist sich der PAC-Entwickler David Torrejon Vaquerizas als äußerst hilfsbereit und antwortet wirklich schnell, wenn Sie ihn mit Fragen konfrontieren. Hier bringen Sie dann gegebenenfalls ein bisher unerwähntes Feature zum Einsatz: die in PAC integrierte Screenshot-Funktion (Abbildung 6).
Glossar
-
Reguläre Ausdrücke
-
Auch Regular Expressions oder kurz Regex genannt. Nach definierten Regeln aufgebaute Textmuster, die Strings beschreiben. Eine Syntax legt dabei fest, wie die Regexe aussehen müssen. Reguläre Ausdrücke arbeiten meist zeilenbasiert und lassen sich für viele Szenarien verwenden, etwa um E-Mail-Adressen oder andere Texte auf Validität zu überprüfen.
Infos
[1] PAC: http://sites.google.com/site/davidtv/
[2] Expect: http://sourceforge.net/projects/expect/







