--> 由于业务需要要求提供服务器的性能数据,要求添写表格(只是一段时间),手动添写一定会被累死,于时忙乎了一个下午写了个Perl脚本用于生成Excel 表格,开始的时候找到Spreadsheet::ParseExcel这个模块,但是这个模块只能读取表格中的信息,后来发现了 Spreadsheet::WriteExcel这个模块,可以生成Excel表格,遗憾的事不能更改表格文件,以下是我的脚本:
#!/usr/bin/perl -w
#use strict;
use Encode 'decode';
use Spreadsheet::WriteExcel;
my $workbook = Spreadsheet::WriteExcel->new("perl.xls");
$workbook->add_format('border'=>5);
# Add a worksheet
$worksheet = $workbook->add_worksheet();
$worksheet->set_column('A:B', 13);
# Add and define a format
$format = $workbook->add_format(); # Add a format
$format->set_align('left');
$format->set_font('AR PL ShanHeiSun Uni');
@{$data[0]}[2..10]=qw/host1 host2 host3 host4 host5 host6/;
my @frame=qw/CPU状况 内存状况 IO状况 系统分区 应用分区 网络状况 进程信息 应用系统信息 数据库信息/;
foreach my $i (1,5,12,16,19,21,24,28){
$data[$i][0]=shift @frame;
}
@frame=qw/用户时间 内核运行时间 空闲状态时间 物理内存总量 已用物理内存 可用物理内存 SWAP分区大小 已用SWAP大小 可用SWAP大小 读取速度 写入速度 读入速度 写入速度 当前连接数 总进程数 活跃进程数 占用CPU比率 占用内存数量 占用SWAP量 表空间总量 剩余表空间/;
foreach my $i (2,3,4,6,7,8,9,10,11,14,15,17,18,20,22,23,25,26,27,29,30){
$data[$i][1]=shift @frame;
}
foreach my $rownumber(0..$#data){
foreach my $colnumber (0..$#{$data[$rownumber]}){
next unless defined $data[$rownumber][$colnumber];
$worksheet->write($rownumber,$colnumber,decode('gb2312',"$data[$rownumber][$colnumber]"),$format);
}
}
下面是生成的表格截图,至于各种性能数据,用脚本提取并插到上面的脚本中就行了。

发表评论