Screenshots einer VirtualBox VM aufnehmen

Version 1.0
Author: Falko Timme
Follow me on Twitter

VirtualBox ist eine großartige Virtualisationslösung, jedoch fehlt eine wichtige Funktion: die Fähigkeit Screenshots der virtuellen Maschine anzufertigen. Natürlich könnten Sie die Screenshotfunktion Ihres Host-Betriebssystems benutzen, bei dieser nehmen Sie jedoch außer dem VM-Fenster gleichzeitig die Fensterdekorationen und die Menüleiste mit auf, welche Sie dann in einem mühseligen Prozess im Grafikprogramm Ihres Vertrauens entfernen müssen. Dieses Tutorial beschreibt, wie Sie ein kleines Skript anfertigen, dass automatisch Screenshots einer VM aufnimmt wenn Sie es öffnen; es benutzt das VirtualBox Kommandozeilentool VBoxManage.

Für die Richtigkeit der Inhalte dieses Tutorials gebe ich keinerlei Garantie. Dies ist nicht der einzige Weg ein solches System aufzusetzen, es ist lediglich der, den ich bevorzuge.

1 Vorbemerkung

Ich werde das Skript vboxscreenshot.sh erstellen und es auf dem Desktop platzieren, sodass man es einfach doppelklicken kann um einen Screenshot zu erstellen. Screenshots werden auf dem Desktop abgelegt (Sie können im Skript ein anderes Ausgabeverzeichnis angeben); Dateinamen werden die Form 1.png, 2.png, 3.png, etc. haben, das Skript wird also automatisch den Dateinamen inkrementieren, sodass Sie später wissen, in welcher Reihenfolge die Screenshots angefertigt wurden.

Ich nehme hierbei an, dass nur eine einzige VM läuft, da das Skript automatisch versucht, den Namen der aktiven VM herauszufinden. Alternativ können Sie auch den Namen der VM hardcoden, von der Sie Screenshots machen wollen.

2 Erstellen von vboxscreenshot.sh

Öffnen Sie gedit...


... und erstellen Sie eine neue Datei mit folgendem Inhalt:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin vboxmanage=/usr/bin/VBoxManage # Specify the output directory outputdir=~/Desktop # Find the next free image ID (1.png, 2.png, 3.png, etc.) cd $outputdir list=([0-9]*) last=${list[@]: -1} nextnum=$((10#${last%%[^0-9]*} + 1)) # Find out the name of the running VM; this assumes that you have just one VM running at a time for uuid in $($vboxmanage list runningvms --long | grep "UUID: " | awk 'BEGIN{FS="UUID: "}{print $2}') do vm=$($vboxmanage showvminfo $uuid | sed -e'/^USB Device Filters:/,$ d' | grep "Name:" | awk 'BEGIN{FS="Name: "}{print $2}') done # Alternatively, you can specify the name of the VM here of which you want to take a screenshot #vm="Ubuntu 12.04 Desktop" $vboxmanage controlvm "$vm" screenshotpng $outputdir/$nextnum.png exit 0
Sie können ein Ausgabeverzeichnis mit der Variable outputdir bestimmen, Wenn Sie nicht möchten, dass Ihre Screenshots auf dem Desktop landen. Wollen Sie den Namen der virtuellen Maschine angeben, entkommentieren Sie die Zeile #vm="Ubuntu 12.04 Desktop" und ersetzen  Sie Ubuntu 12.04 Desktop mit dem Namen der virtuellen Maschine; andernfalls wird das Skript versuchen den Namen der aktiven virtuellen Maschine selbst herauszufinden (hierbei ist es wichtig, dass nur eine virtuelle Maschine zur Zeit läuft).

Speichern Sie die Datei als vboxscreenshot.sh auf dem Desktop:


Rechtsklicken Sie die Datei als nächstes und wählen Sie Eigenschaften:


Gehen Sie in den Zugriffsrechte Reiter und aktivieren Sie die Datei als Programm ausführen Checkbox:


Das war's! Starten Sie nun eine VirtualBox VM. Wollen Sie nun einen Screenshots der VM machen, doppelklicken Sie auf das vboxscreenshot.sh Symbol auf dem Desktop. Klicken Sie auf Ausführen wenn Sie gefragt werden Wollen Sie >>vboxscreenshot.sh<< ausführen oder ihren Inhalt anzeigen lassen?:


Sie werden den Screenshot dann auf Ihrem Desktop finden (1.png in diesem Beispiel):

3 Screenshots ohne zusätzlichen Dialog aufnehmen

Es kann störend sein jedes Mal den Wollen Sie >>vboxscreenshot.sh<< ausführen oder ihren Inhalt anzeigen lassen? Dialog beantworten zu  müssen wenn Sie einen Screenshot machen wollen. Um diesen Dialog loszuwerden, öffnen Sie Nautilus...


... und gehen auf Bearbeiten > Einstellungen:


Gehen Sie in den Verhalten Reiter und wählen Ausführbare Textdateien ausführen, wenn Sie geöffnet werden in der Ausführbare Textdateien Sektion:


Von jetzt an werden Screenshots ohne jeden Dialog automatisch erstellt wenn Sie das vboxscreenshot.sh Symbol doppelklicken.

4 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte