close

以下是我拿來做VirtualBox備份的Shell Script。

沒有寫的很好,大家可以參考並小力鞭策。
 


#!/bin/bash

 

#今天的日期

 

time="$(date '+%Y%m%d')"

 

#七天前的日期

 

timesAgo="$(date -d '7 days ago' '+%Y%m%d')"

 

#判斷今天禮拜幾

 

whatWeek="$(date '+%w')"

 

#目錄路徑

 

backupDir='/home/user'

 

# 虛擬機名稱

 

vmName='虛擬機名稱'

 

#每天做快照;因為有sudo所以一開始用自動回答檔

 

expect -c "

 

spawn sudo VBoxManage snapshot $vmName take $time

 

expect {

 

\"password\" {

 

send \"你的密碼\r\"

 

}

 

}

 

expect ]#

 

"

 

#待機10秒。要先讓先前的快照程序完成結束

 

sleep 10

 

# 刪除七天前的快照;因為我的快照都是以日期定義。

 

# 所以可以直接刪日期

 

sudo VBoxManage snapshot $vmName delete $timesAgo

 

 

#遇到星期日就做以下動作

 

#匯出動作

 

#確認是否有超過90天的匯出檔

 

#eq 等於 ;  ne 不等於

if [ $whatWeek -eq "0" ]

 

then

 

sudo find $backupDir -iname "*.ova" -type f -mtime +90 | xargs rm -f {};

 

sudo VBoxManage controlvm $vmName poweroff

 

#這邊可以不用cd,而是直接在匯出那設定好路徑就好

 

cd $backupDir

 

sudo VBoxManage export $vmName -o 匯出名稱$time.ova

 

sudo VBoxManage snapshot $vmName restore $time

 

sudo VBoxManage startvm $vmName

 

fi

arrow
arrow
    全站熱搜

    IT001 發表在 痞客邦 留言(0) 人氣()