轉載自: http://www.virtualize.dk
VCB備份腳本,省錢的方法,免得去買那些形形色色的備份軟件
Requriments:
VMWare VCB
The scripts:
esxibkp.bat
@echo off set bkppath=d:\ set scriptpath=c:\scripts set vmpath=%bkppath%%1 set esxihost=ip.of.esx.i echo %time% Backup of %1 started >> time.txt cd C:\Progra~1\VMware\VMware~1\ rename %vmpath% %1-old vcbMounter.exe -h %esxihost% -u root -p password -a name:%1 -t fullvm -r %vmpath% -m nbd >> log.txt IF EXIST %vmpath%\*.vmx rd %vmpath%-old /s /q IF EXIST %vmpath%\*.vmx echo %date% %time% Backup of %1 succeded >> %scriptpath%\succeded2backup.txt IF NOT EXIST %vmpath%\*.vmx echo %date% %time% Backup of %1 failed >> %scriptpath%\failed2backup.txt cd echo %time% Backup of %1 ended >> %scriptpath%\time.txt
Usage:
Edit esxibkp.bat and put in esxihost, username, password and path-to-backupstorage.
run: esxibkp vmname
If you want to backup multiple VMs in one script, make a new bat-file. and type:
call esxibkp.bat vmname1
call esxibkp.bat vmname2
and so on…
Note1: Use these scripts with care, and dont blame me if they fuck something up
Note2: The script does not support vm-names with spaces. I use vmname.domain.tld
——————————————————————————
附一些批處理文件的知識:
1.批處理文件的參數
批處理文件還可以像C語言的函數一樣使用參數(相當於DOS命令的命令行參數),這需要用到一個參數表示符“%”。
%[1-9]表示參數,參數是指在運行批處理文件時在文件名後加的以空格(或者Tab)分隔的字符串。變量可以從%0到%9,%0表示批處理命令本身,其它參數字符串用%1到%9順序表示。
例3:C:根目錄下一批處理文件名爲t.bat,內容爲:
@echo off
type %1
type %2
那麼運行C:\>t a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt
於是上面的命令將順序地顯示a.txt和b.txt文件的內容。
2.特殊命令
if 是條件語句,用來判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:
1、if [not] "參數" == "字符串" 待執行的命令
參數如果等於(not表示不等,下同)指定的字符串,則條件成立,運行命令,否則運行下一句。
例:if "%1"=="a" format a:
2、if [not] exist [路徑\]文件名 待執行的命令
如果有指定的文件,則條件成立,運行命令,否則運行下一句。
如: if exist c:\config.sys type c:\config.sys
表示如果存在c:\config.sys文件,則顯示它的內容。