使用rvtools定时导出虚拟机列表

问题

需要统计vcenter资源池虚拟机情况,包括资产和使用情况。rvtools能将相关数据导出为excel,但是图形界面需要手动操作,期望做成脚本每天定时导出数据。

解决

查看rvtools的文档及软件目录,发现有个自动导出并发邮件的bat事例如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
rem #########################
rem Name RVToolsBatch
rem By RobWare
rem Date April 2017
rem Version 3.9.5
rem #########################
rem =====================================
rem Include robware/rvtools in searchpath
rem =====================================
set path=%path%;c:\program files (x86)\robware\rvtools
rem =========================
rem Set environment variables
rem =========================
set $VCServer=<your vc server>
set $SMTPserver=<your smtp server>
set $SMTPport=<your smtp port, default = 25>
set $Mailto=<mail address>
set $Mailfrom=<mail sender address>
set $Mailsubject=<subject, example "RVTools batch report">
set $AttachmentDir=<directory name, example c:\temp>
set $AttachmentFile=<file name, example RVTools.xlsx>
rem ===================
rem Start RVTools batch
rem ===================
rvtools.exe -passthroughAuth -s %$VCServer% -c ExportAll2xls -d %$AttachmentDir% -f %$AttachmentFile%
rem =========
rem Send mail
rem =========
rvtoolssendmail.exe /smtpserver %$SMTPserver% /smtpport %$SMTPport% /mailto %$Mailto% /mailfrom %$Mailfrom% /mailsubject %$Mailsubject% /attachment %$AttachmentDir%\%$AttachmentFile%

参考脚本,与同事交流写出如下可用脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
echo 日期:%date%
set stryear=%date:~0,4%&set strmonth=%date:~5,2%&set strday=%date:~8,2%
echo 时间:%time%
set strhh=%time:~0,2%&set strmm=%time:~3,2%
set strdatetime = %stryear%%strmonth%%strday%%strhh%%strmm%%strss%
mkdir C:\Temp
echo 正在导出5楼-vCenter信息请等待...
cd "C:\Program Files (x86)\Robware\RVTools 3.9.5"
rvtools -u username -p passwd -s vc-ip -c ExportAll2xls -d C:\Temp -f %stryear%%strmonth%%strday%%strhh%%strmm%%strss%-vc-ip.xlsx
echo 5楼vCenter信息导出完毕
pause
exit

注意

不同rvtools版本到导出命令不一致,即-c ExportAll2xls
rvtools 4.0命令为 -c ExportAll2xlsx,末尾多一个x。具体可查看事例脚本。

如果导出目录不存在,也会导出失败。