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文件,则显示它的内容。

你可能感兴趣的:(backup,script,esxi,vcb,vcb备份脚本)