| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!/usr/local/bin/perl
- #
- # requires textproc/p5-XML-LibXML
- #
- use warnings;
- use strict;
- use feature 'say';
- use XML::LibXML;
- my $filename = 'vmstatm.xml';
- my %dict;
- my ($offset) = @ARGV;
- if (not defined $offset) {
- $offset = 10;
- }
- while (1) {
- say scalar localtime();
- say "------------------------";
- system("/usr/bin/vmstat -m --libxo xml >$filename");
- my $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) {
- format DIFF_V0V1 =
- @<<<<<<<<<<<<<<<<<<<<<< @######## => @########
- $name,$dict{$name},$used
- .
- $~ = "DIFF_V0V1";
- write;
- $dict{$name}=$used;
- }
- } else {
- $dict{$name}=$used;
- }
- }
- say '';
- sleep(5);
- }
|