現場(環境):Ubuntu 16.04 套件:Virtualbox
原因:
使用者應該都很習慣使用圖形化的方式來進行備份,
不管是Snapshot或者export,
這些都是在我們手動操作的階段,
如果我們想要寫Shell Scipt讓他自動備份該怎麼辦?
處理方式:
Virtualbox在安裝時就一並給了我們許多方便的套件,
這邊要提到的是使用他內部指令進行一些操作。
*下述指令,我們皆針對名稱叫作”VM”的虛擬機進行操作。
// [快照]取得
#sudo VBoxManage snapshot VM take "20180214"
//基本上snapshot這個參數就是執行快照相關功能。
//take後面帶上這次snapshot的名稱是什麼。
//snapshot名稱可以相同(因會取得不同UUID)。但你會維護不易
// [快照]還原
#sudo VBoxManage snapshot VM restore "20180214"
// 還原部份是使用 restore 這個參數
// 最後帶的是你要還原的snapshot名稱。或者UUID也可以。
//[快照]刪除
#sudo VBoxManage snapshot VM delete “20180214”
// 刪除部份是使用 delete 這個參數
// 最後帶的是你要刪除的snapshot名稱。
// 或者名稱都一樣,你要刪除指定UUID也可以(如下圖 )。
//[快照]刪除-錯誤狀況
//當要刪除的快照不在。就會出現下面的錯誤。
#sudo VBoxManage snapshot VM delete “20180215”
//[快照]檢查
#sudo VBoxManage snapshot VM list
//檢查這個虛擬機裏面有多少快照存在。
//只要使用list就可以將VM這台虛擬機目前的快照數顯示出來。
下圖的範例,可以看到我們將虛擬機內的快照列出來。
而且取了相當多相同名稱的snapshot。
可以這樣做的原因。大家也能很明顯的看到。
每次快照取得的UUID皆不相同。
如果這台虛擬機內,並未存在任何快照紀錄,
則會出現如下圖訊息。
再來我們談到,另一種備份的方法「匯出」
虛擬機要進行匯出的時候,虛擬機的狀態要處於「關閉」的狀態。
否則是沒有辦法進行匯出的動作。
關閉的方法有兩種,直接切掉電源&循序進行關機
#sudo VBoxManage controlvm VM poweroff
#sudo VBoxManage controlvm VM acpipowerbutton
如果講求時間的話,我會選擇使用poweroff。
因為在虛擬機匯出前我會進行一次快照,
等匯出完畢,我再將虛擬機還原到最新快照狀態。
//[匯出]虛擬機
#sudo VBoxManage export VM -o VMBAK_20180214.ova
// 用export 進行匯出 ;匯入是import
// -o 後面帶的是你這次匯出的檔案名稱。
// 匯出的格式可以為下列三種:ovf/ova/tar.gz
匯出完成後,我們要還原快照狀態。
//假設最新快照是20180214
#sudo VBoxManage snapshot VM restore "20180214"
到這邊還沒有結束喔!!
還原快照。只是還原到他的狀態。
但你的虛擬機還沒有啟動。
最後要開啟虛擬機。
#sudo VBoxManage startvm VM
看到power on & & successfully started才可以放心!
如此就學會用指令完成匯出&快照了。
匯入部份就比較麻煩,我們放到之後再來討論。
後記:
基本上VirtualBox指令執行時,
都會有計量表顯示你現在完成的進度到多少。
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
<本篇完>