| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/usr/local/bin/perl
- #
- # requires textproc/p5-XML-LibXML
- #
- use warnings;
- use strict;
- use feature 'say';
- use XML::LibXML;
- my ($offset) = @ARGV;
- if (not defined $offset) {
- $offset = 10;
- }
- my $filename = 'vmstat.xml';
- my %dict;
- while (1) {
- say scalar localtime();
- say "------------------------";
- system("/usr/bin/vmstat -z --libxo xml >$filename");
- my $doc = XML::LibXML->load_xml(location => $filename);
- my $c = 0;
- foreach my $id ($doc->findnodes('//zone')) {
- my $name=$id->findvalue('name');
- my $used=$id->findvalue('used');
- my $val = int($used);
- if ($name eq "vm pgcache") {
- $name = $name . "_$c";
- $c++;
- }
-
- if (exists $dict{$name}) {
- my $v0=$dict{$name} + $offset;
- if ($v0 <= $val) {
- format DIFF_V0V1 =
- @<<<<<<<<<<<<<<<<<<<<<< @######## => @########
- $name,$dict{$name},$val
- .
- $~ = "DIFF_V0V1";
- write;
- $dict{$name} = $val;
- }
- } else {
- $dict{$name} = $val;
- }
- }
- say '';
- sleep(5);
- }
|