Open Source im professionellen Einsatz
Linux-Magazin 10/2011
© bruzzomont, photocase.com

© bruzzomont, photocase.com

Perl-Skript hält den PC mit virtuellen Maschinen spurenfrei sauber

Frischmacher

Eine Virtualbox-Installation fährt Schnappschüsse virtueller Maschinen in Sekundenschnelle von der Kommandozeile hoch und hilft dem vorsichtigen Nutzer, beim Browsen die Privatsphäre zu wahren und Perl-Module durch einen Smoketest zu schicken.

818

Wer ständig neue Linux-Distributionen ausprobiert, der bedient Virtualisierer wie VMware, KVM, Xen oder Virtualbox wahrscheinlich im Schlaf. Auch Programmierer, die Code für unterschiedliche Linux-Versionen oder – Gott bewahre! – Microsoft Windows entwickeln, schätzen lokal verfügbare virtuelle Maschinen für schnelle Tests. Das Virtualisierungspaket Virtualbox [2] ist einfach mittels eines ansprechenden GUI (Abbildung 1) zu bedienen und bequem als Ubuntu-Paket unter der GPLv2-Lizenz verfügbar.

Abbildung 1: Virtualbox mit einigen Ubuntu- und Windows-Versionen als Gastsysteme.

Gästeliste

Mit Hilfe von Installations-CDs, DVDs oder ISO-Dateien legt der User im Virtualisierer schnell eine Handvoll Gastsysteme an, die auf Knopfdruck in eigenen Fenstern hochfahren.

Die Steuerung der Maus im Gastsystem bedarf einer kurzen Gewöhnungsphase, denn hat das Gastsystem einmal den Mausfokus, gibt es ihn nicht mehr her, der Mauszeiger eckt an den Grenzen des Gastsystemfensters an. Um den Fokus des virtuellen Systems zu verlassen, drückt der User eine bestimmte Taste (voreingestellt ist die rechte [Alt]-Taste), woraufhin der Mauszeiger wieder auf dem heimischen Desktop weilt.

Dank der effizienten Technik für Schnappschüsse frieren virtuelle Maschinen Zustände rasch ein und stellen sie später in wenigen Sekunden wieder her. So können Websurfer eine frisch erzeugte Ubuntu-Installation mit offenem Browser für peinliche Webrecherchen nutzen: Was Google über seine Nutzer weiß, kommt immer dann erschreckend zutage, wenn der User einen Suchbegriff eingibt und die Autocomplete-Funktion Vervollständigungen vornimmt (Abbildung 2). Niemand möchte daran erinnert werden, dass er vor einigen Tagen etwa nach "Fußpilz" gesucht hat, ganz zu schweigen vom Einfluss des Suchbegriffs auf das Langzeit-Targeting von Googles personalisierter Werbemaschine.

Abbildung 2: Diesen peinlichen Suchbegriff vergisst der Browser beim nächsten Hochfahren der VM.

Der paranoide Pinguinfreund möchte weder die ausgestellten Cookies länger als nötig behalten noch irgendwelche Spuren in der Browserhistory hinterlassen. Da er nicht genau weiß, was der Browser hinter seinem Rücken alles an Caching und sonstiger Datenspeicherei betreibt, liegt es nahe, für sensitive Suchanfragen blitzschnell eine virtuelle Maschine mit eingabebereitem Browser hochzufahren, die Suche durchzuführen und gleich darauf die VM wieder in ihren Ausgangszustand zurückzuversetzen.

Das Verfahren ist zwar nicht hundertprozentig wasserdicht, James Bond könnte auf meiner virtuellen Festplatte wohl noch Datenschnipsel finden und auch die IP-Adresse des verwendeten Routers taucht in den Google-Logs auf, aber es legt die Latte merklich höher. Wer mehr Privatsphäre wünscht, sollte Tor bemühen und die VM-Festplatte nach Gebrauch mit »shred« zerstören.

Kurz nach der Linux-Installation von der DVD öffnet der auf seine Privatsphäre bedachte User also im nagelneuen Gastsystem den Firefox-Browser und zieht vom aktuellen Zustand der VM einen Snapshot (Abbildung 3). Nach Abschluss der geheimen Mission fährt er die VM mit »stop« im »poweroff« -Modus herunter und stellt via Restore-Funktion des Virtualbox-Snapshot-Menüs den ursprünglichen Zustand wieder her. Beim nächsten Hochfahren steht wieder ein offener Browser bereit, der sich an nichts mehr erinnert, ganz so, als wäre ein Zeitsprung in die Vergangenheit erfolgt.

Abbildung 3: Im neuen Gastsystem zieht der User einen Schnappschuss per Klick ins Menü.

Automatisch als Kommando

Statt für jede Recherche das Virtualbox-GUI hochzufahren und in dessen Menüs herumzuklicken, bietet sich ein Perl-Skript an, das selbstständig die VM auswählt und hochfährt. Nach getaner Arbeit drückt der User im Skript die [Enter]-Taste, die VM fährt herunter und der Startzustand ist wiederhergestellt. Mit dem Programm »VBoxManage« liefert Virtualbox eine Komplettsteuerung von der Kommandozeile.

Listing 1 zeigt das Perl-Skript, das die VM namens »Ubuntu 10.04« und deren vorher manuell angelegten Snapshot »Browse« auswählt. Mit Hilfe des »tap« -Kommandos aus dem CPAN-Modul Sysadm::Install setzt es die Shellbefehle ab.

Listing 1

browse

01 #!/usr/local/bin/perl -w
02 use strict;
03 use Sysadm::Install qw(:all);
04 use Log::Log4perl qw(:easy);
05
06 Log::Log4perl->easy_init($DEBUG);
07
08 my $vbm = "VBoxManage";
09 my $vm  = "Ubuntu 10.04";
10
11 tap $vbm, "snapshot", $vm, "restore", "Browse";
12 tap $vbm, "startvm", $vm;
13
14 print "Press Enter for shutdown";
15 <STDIN>;
16
17 tap $vbm, "controlvm", $vm, "poweroff";
18 tap $vbm, "snapshot", $vm, "restore", "Browse";

Das Skript ließe sich wohl noch einfacher als Shellskript implementieren, aber erfahrene Perl-Programmierer wissen, dass es nur eine Frage der Zeit ist, bis ein Shellskript im Funktionsumfang so unüberschaubar anwächst, dass man es doch in Perl reimplementiert, weil es sonst nicht mehr zu warten ist.

Das Skript nutzt die beiden Unterkommandos »startvm« und »ctrlvm poweroff« von »VBoxManage« , um die VM herauf- und später auch wieder herunter zu fahren. Den Snapshot restauriert es sowohl am Anfang als auch am Ende des Skripts, um sicherzustellen, dass die virtuelle Maschine auch dann verlässlich im Initialzustand hochfährt, wenn jemand inzwischen in dem Snapshot-Menü des Virtualbox-GUI herumgefuhrwerkt hat.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Perl-Snapshot

    Wer Programme in der weiten Welt zu verteilen gedenkt, sollte sie vorab fit für fremde Kulturen machen. Um seine selbst verfassten Perl-Module auf mehreren Linux-Distributionen in einem Rutsch zu testen, schnappt sich Perlmeister Schilli die Linux-Containers-Technik und das ressourcenschonende Docker-Projekt.

  • Der Perl-Screencast zum Linux-Magazin 2014/02

    Gesund im Alter: Schon viele mögen den Skript-Altvater Perl für tot erklärt haben. Doch sie irren, wie ein wirklich interessierter Blick auf die Neueingänge des Softwarerepository CPAN zeigt.

  • Perl-Snapshot

    Wer viel in der Shell arbeitet und navigiert, nach Textstücken sucht oder CPAN-Module installiert, wird die hier vorgestellten Helferskripte bestimmt schnell schätzen lernen.

  • Perl-Snapshot

    Wer jahrzehntelang programmiert, füllt im Lauf der Zeit seine persönliche Trickkiste und hat Best-Practice-Tipps parat. Der Perlmeister bildet da keine Ausnahme und öffnet in dieser Ausgabe des Linux-Magazins seinen erprobten Fundus.

  • Perl-Snapshot

    Ein neuer Service auf Travis-ci.org listet fein säuberlich Github-Projekte eines Entwicklers auf, schickt den Code bei jedem Push durch deren Testsuites und gibt Rückmeldung, falls der Build bricht. In den zurückgelieferten Testergebnissen machen neugierige Perl-Skripte Zusatzinformationen sichtbar.

comments powered by Disqus

Ausgabe 04/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.