VirtualBox Oracle tarafından geliştirilen ve ücretsiz olarak dağıtılan bir sanallaştırma platformu. Son versiyonlarında screenshot desteği de gelmesine rağmen bu konudaki yetersizliği ciddi anlamda hissediliyor. Aslında sanal işletim sistemi penceresinden Host+E tuşuna basarak screenshot alabiliyoruz. Eğer ard arda ve hızlı bir şekilde ekran görüntüleri kaydetmek istiyorsanız bu özellik sizi tatmin etmeyebilir. Peki VirtualBox Screenshot nasıl alınır?
VBoxManage programı burada imdadımıza yetişiyor. Şimdi kısaca bu sevimli programı inceleyelim ve neler yapabiliyoruz bir göz atalım.
VirtualBox Screenshot Alma
Windows veya Linux ortamında konsol u açarak VBoxManage programımıza gerekli parametreleri verelim ve neler oluyor bakalım
Windows
VBoxManage controlvm <vm adı> screenshotpng <dosyaismi>.png
Sihirli komutumuz bu. Konsol u açıp bu komut ile screenshot alabiliyoruz. Ancak bunun için VirtualBox ın kurulu olduğu dizine geçmemiz gerekiyor. “C:\Program Files\Oracle\VirtualBox\”
<vm adı> yazan yere Sanal makinamızın adını ve <dosyaismi> kısmına da kaydedilecek dosyamızın ismini veriyoruz. Şimdi bunun programdakinden ne farkı var dediğinizi duyar gibiyim. VirtualBox ta ekran görüntüsü almak için Host+E tuşuna bastığınızda size Dosya yöneticiyi açar ve dosyayı kaydetmek istediğiniz yeri sorar. Dosya ismini değiştirmenize de izin vermez. İkinci ekran görüntüsünü almak istediğinizde ise ilk aldığınızın üzerine yazar. Bunu önlemek için dosya ismini her ekran görüntüsü almak istediğinizde değiştirmeniz gerekir.Şimdi küçük bir script hazırlayacağız ve bu işlemleri otomatik hale getireceğiz.
Sanal makinamızın adı Ubuntu olsun. Örneğimizi buna göre hazırlayalım.
VBoxManage controlvm Ubuntu screenshotpng ss1.png
Bu komutu verdiğimizde Ubuntu isimli sanal makinamızın ekran görüntüsünü eğer dosya yolu belirtmediysek VBoxManage in olduğu klasöre kaydeder. Script oluşturduğumuzda ise .batscriptimizin olduğu yere kaydedecek. Masaüstündeyse masaüstüne. İstersek dosya yolu da belirtebiliriz. c:\ss1.png deseydik C sürücüsüne kaydedecekti.
Windows komut satırında %random% ile rastgele sayılar oluşturabiliyoruz. Dosya ismi olarak bunu kullanmak ta mümkün.
VBoxManage controlvm Ubuntu screenshotpng %random%.png
Gördüğünüz gibi her defasında rastgele bir sayı üretiyor. Dosya İsimlerimiz de 15633.png 7480.pnggibi rastgele oluşturuluyor. Boş bir klasöre kaydederek tarih sırasına göre listelediğimizde işimiz bir nebze kolaylaşmış oluyor.
Şimdi işi biraz daha ileriye götürelim ve dosya isimlerini tarih-saat.png olarak hazırlayalım.
Tarihi almak için %date% kullanabiliyoruz. %time% da bize saati veriyor.
C:\>echo %date%
01.03.2013
C:\>echo %time%
20:48:05,04
Gördüğünüz gibi saat bilgisi 23:48:05,04 şeklinde geldi. Windows dosya isimlerinde ” : ” ikinokta işaretini kullanmamıza izin vermiyor. Bu komutu biraz modifiye etmemiz gerek.
C:\>echo %time:~0,2%
20
Bu komutta kullandığımız %time:~0,2% o anki saat i ilk karakterden başlayarak 2 karakter olarak ekrana basar. Eğer %time:~0,5% deseydik 23:55 sonucu gelecekti. Ayırmaları da saydığına dikkat edin. Biz aralarda ” : ” işaretini istemiyoruz. Bunun yerine ” – ” olsa daha iyi olur. O zaman %time:~0,2%-%time:~3,2% istediğimiz sonucu verecektir. Tabiki sonuna aynı şekilde saniye de eklemeliyiz.
C:\>echo %time:~0,2%-%time:~3,2%-%time:~6,2%
14-51-05
%date% çıktısını da aynı şekilde biçimlendirebiliriz. %date:~0,2%-%date:~3,2%-%date:~6,4% gibi.
C:\>echo %date:~0,2%-%date:~3,2%-%date:~6,4%
01-03-2013
Ve ikisini birleştirelim.
C:\>echo %date:~0,2%-%date:~3,2%-%date:~6,4%-%time:~0,2%-%time:~3,2%-%time:~6,2%
01-03-2013-20-53-12
Dosya ismi olarak bunu kullanacağız. Komutumuz da
VBoxManage controlvm Ubuntu screenshotpng %date:~0,2%%date:~3,2%%date:~6,4%-%time:~0,2%%time:~3,2%%time:~6,2%.png
olacak. Bu kadar uzatmak istemeyebilirsiniz tabiki. Sadece saat olarak veya random dosya isimleri olarak ta kullanabilirsiniz. Tercih size kalmış. Tabiki bunu .bat scripti haline getirirerek çok daha rahat kullanabiliriz. Masaüstüne Vboxss.bat adında bir dosya oluşturalım ve kodlarımızı aşağıdaki gibi içerisine yazalım.
echo off
set dosyaadi=%date:~0,2%%date:~3,2%%date:~6,4%-%time:~0,2%%time:~3,2%%time:~6,2%
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm Ubuntu screenshotpng "%dosyaadi%".png
Bu dosyayı her çalıştırdığımızda masaüstüne screenshot alacak. Eğer VBoxss.bat dosyasını Belgelerim klasörüne taşırsanız ekran görüntülerini Belgelerim klasörüne alır.
Linux
Linux tarafında işler daha basit.
vboxss.sh adında bir script oluşturalım.
nano vboxss.sh
scriptimiz aşağıdaki gibi.
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
vboxmanage=/usr/bin/VBoxManage
# Kayıt yapılacak yol
outputdir=~/Masaüstü
# Bir sonraki kullanılacak image ID bulma (1.png, 2.png, 3.png, vs.)
cd $outputdir
list=([0-9]*)
last=${list[@]: -1}
nextnum=$((10#${last%%[^0-9]*} + 1))
# Çalışan sanal makinamın ismini bulma; O anda sadece tek sanal makina çalıştığı varsayılıyor.
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
# Tabiki burada da Sanal Makina adını elle girebiliyoruz. Ancak Her farklı sanal makina için script i düzenlemek gerekir.
#vm="Ubuntu" şeklinde
$vboxmanage controlvm "$vm" screenshotpng $outputdir/$nextnum.png
exit 0
Bu script ile $outputdir a tanımladığımız yol içerisine 1.png, 2.png, 3.png, vs. şeklinde ekran görüntüleri kaydedebiliyoruz.
Alıntı : http://www.defter.org/virtualbox-screenshot-nasil-alinir/