NetApp SDK Perl 小测试
最近在看NetApp的SDK,想做Quota快满时发E-mail给NetApp管理员的这个功能。当然,这个功能只能在目前的autosupport里有体现,智能点的就需要自己来了。本人是Perl初哥,以下代码不是最佳的,只做参考而已。 环境: NetApp SDK 4.0 / OnTap 7.3.3 /Perl 5.8 大概的流程 1. 可以使用SDK里相关的API可以提取 Quota信息,导出的信息是XML格式。 Example: perl apitest.pl? <filer> <username/passwd> quota-report volume <volume> 2. 使用Perl读取XML文件在此我们用了 XML::Simple 模块来读取XML Example: use XML::Simple; 3. 我们需要的tree,disk-limit,disk-used 这三部分信息。打印下看看 Example: @quota = @{$xml->{quotas}->[0]->{quota}}; ? $quotal = @quota; ? for ($i=0; $i<=$quotal-1; $i++){ ? ?? ?$qtree = $xml->{quotas}->[0]->{quota}->[$i]->{'tree'}->[0]; ? ?? ?$qlimit = $xml->{quotas}->[0]->{quota}->[$i]->{'disk-limit'}->[0]; ? ?? ?$qused = $xml->{quotas}->[0]->{quota}->[$i]->{'disk-used'}->[0]; ? ?? ?if ($qused ne "0" ) { ? ?? ??? ?print $qtree,"n",$qlimit,$qused,"n" ; ? ?? ?} ? } 4. 比较disk-used/disk-limit的比例,打印出大于 0.8的来看看,perl很智能,数值字符貌似可以混着来。 Exmaple: @quota = @{$xml->{quotas}->[0]->{quota}}; 5. 写个E-mail的sub,可以在判定条件成立时发邮件出去 Example: use Net::SMTP; 5条写完,基本就是这样了。 因为quota里看不到具体的用户,如果要发e-mail给最终用户则还要再进一步。等我有空再更新了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |