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