#!/usr/local/bin/perl # # requires textproc/p5-XML-LibXML # use warnings; use XML::LibXML; my $filename = 'vmstatm.xml'; my %dict; my $offset = 10; while (1) { print scalar localtime() . "\n"; system("/usr/bin/vmstat -m --libxo xml >$filename"); $doc = XML::LibXML->load_xml(location => $filename); foreach my $id ( $doc->findnodes('//memory')) { my $name=$id->findvalue('type'); my $used=$id->findvalue('memory-use'); if (exists $dict{$name}) { my $v0=$dict{$name} + $offset; if ($v0 < $used) { print "$name: $v0 => $used \n"; $dict{$name}=$used; } } else { $dict{$name}=$used; } } print "------------------------\n" ; sleep(5); }