vcb backup script for esxi

轉載自: 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文件,則顯示它的內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章