透過 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 & 自動設定在每...