Virtualbox. Migawki z CLI

Virtualbox daje nam możliwość tworzenia migawek w locie, czyli podczas pracującej maszyny, z poziomu linii poleceń. Jest to o tyle przydatna opcja, że możemy ustawić sobie w harmonogramie zadań systemu czy cronie, aby automatycznie i cyklicznie była tworzona migawka. Na przykład, przed zmianami czy wdrożeniem nowej wersji danego dnia, wcześniej wykonywana jest migawka dla bezpieczeństwa i porządku.  

Dla przypomnienia, migawka (snapshot) to zapis stanu maszyny wirtualnej. Więcej o migawkach w artykule Virtualbox. Snapshoty czyli migawki.

Tak samo jak możemy utworzyć migawkę z linii poleceń to i  mamy też możliwość przywrócić ją czy skasować. Wszystko to co dostępne jest z interfejsu graficznego ma też pokrycie w poleceniach tekstowych. 

Do obsługi migawek służy polecenie VBoxManage snapshot po którym należy podać nazwę wirtualnej maszyny lub UUID i akcje jaka ma się wydarzyć. Na przykład aby wykonać migawkę z CLI podczas pracującej maszyny należy wydać polecenie: 

vboxmanage snapshot "Ubuntu local" take Migawka1 --description="testowa migawka z cli" --live

Jeśli chcesz uzyskać szczegółowe informacje na temat danej migawki, wpisz:

vboxmanage snapshot "Ubuntu local" showvminfo Migawkai1

Gdyby jednak okazało się, że chcemy zmienić nazwę bądź opis już utworzonej migawki to możemy do tego celu użyć polecenia:

vboxmanage snapshot "Ubuntu local" edit Migawka1 --description="nowi opis migawki z cli" --name=NowaNazwaMigawki1

Tu zamiast nazwy migawki możemy podać parametr –-current aby po prostu odnieść się do ostatnio utworzonej migawki. 

Aby skasować migawkę wydać  poniżej polecenie. Pamiętaj że kasowanie migawki polega na scaleniu pliku różnicowego dysku z plikiem głównym dysku. 

vboxmanage snapshot "Ubuntu local" delete Migawka2 

Aby przywrócić migawkę, czyli w de facto wrócić do stanu systemu w czasie, gdy migawka została utworzona wydaj poniższe polecenie. Zwróć uwagę, że przywracanie do punktu migawki może odbywać się tylko przy wyłączonej maszynie wirtualnej.

vboxmanage snapshot "Ubuntu local" restore Migawka1

Opcjonalnie, aby przywrócić ostatnia migawkę mozesz wydac polecenie:

vboxmanage snapshot "Ubuntu local" restorecurrent

Na koniec zobaczymy jak możemy wylistować wszystkie migawki danej maszyny.

vboxmanage snapshot "Ubuntu local" list --details

lub 

vboxmanage snapshot "Ubuntu local" list --machinereadable

gdzie wynik mamy w formacie klucz-wartość, co przydane jest do dalszego przetwarzania wynikowych danych.

Choć czasem łatwiej orientować się w kwestii migawek w trybie okienkowy, jest to bardziej czytelne, to w przypadku automatyzacji tego procesu linia poleceń jest niezastąpiona ponieważ możemy także to polecenie zastosować w skryptach i harmonogramie.