透過 crontab 來定期備份 VirtualBox (ShapShot)
根據上一篇:透過 VBoxManage 來控制 VirtualBox
既然了解了如何下 command 來控制 virtualbox,
那麼我們便可以更進一步新增排程來定期備份了:
1. 在拍照 (Shapshot) 之前,我們需先讓機器暫時停止下來,並保留原先的狀態:
2. 然後拍張照 (SnapShot):
3. 接著再將 vm 從暫停的狀態中啟動:
由於第二步驟要拍照時,需要為每次拍照的結果取個名字,
因此我寫了一個很簡單的 script ,來自動產生拍照的日期,並做完一系列流程:
這個 script 的缺點在於,產生的日期只有月份,對於要精準紀錄 log 時間的人來說有點不足...
(以後還有改進空間就是了)
4. 然後透過 crontab ,排入系統排程內:
自動設定在每日凌晨三點來做這件事情
參考資料:https://forums.virtualbox.org/viewtopic.php?f=7&t=24967
既然了解了如何下 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
date +%Y%m%d%H%M%S
回覆刪除好方法,感謝分享!
刪除