透過 crontab 來定期備份 VirtualBox (ShapShot)

根據上一篇:透過 VBoxManage 來控制 VirtualBox

既然了解了如何下 command 來控制 virtualbox,
那麼我們便可以更進一步新增排程來定期備份了:


1. 在拍照 (Shapshot) 之前,我們需先讓機器暫時停止下來,並保留原先的狀態:
VBoxManage controlvm "<VMName>" savestate

2. 然後拍張照 (SnapShot):
BoxManage snapshot "<VMName>" take "<SnapshotName>"

3. 接著再將 vm 從暫停的狀態中啟動:
VBoxManage startvm "<VMName>"



由於第二步驟要拍照時,需要為每次拍照的結果取個名字,
因此我寫了一個很簡單的 script ,來自動產生拍照的日期,並做完一系列流程:

#!/bin/bash

NAME=`date | head -c 7 | tail -c 3`

echo "savestate..."
VBoxManage controlvm Zeus savestate

sleep 10

echo "take snapshot..."
vboxmanage snapshot Zeus take Zeus_$NAME

sleep 10

echo "startvm..."
#VBoxManage startvm Zeus
nohup VBoxHeadless --startvm Zeus &

#echo Zeus_$NAME


這個 script 的缺點在於,產生的日期只有月份,對於要精準紀錄 log 時間的人來說有點不足...
(以後還有改進空間就是了)



4. 然後透過 crontab ,排入系統排程內:
crontab -e 

00 03 * * * sh "<location>"/backup_Zenus.sh &


自動設定在每日凌晨三點來做這件事情


參考資料:https://forums.virtualbox.org/viewtopic.php?f=7&t=24967

留言

張貼留言

這個網誌中的熱門文章

How to use ebtables: ebtable 的小筆記

解決 VirtualBox 無法開啟 NS_ERROR_FAILURE (0x80004005)