diff --git a/plugins/other/vnstat_month b/plugins/other/vnstat_month new file mode 100755 index 00000000..8bd15620 --- /dev/null +++ b/plugins/other/vnstat_month @@ -0,0 +1,96 @@ +#!/usr/bin/env perl +use 5.010; +use strict; +use warnings; +use autodie; +use List::Util 'sum'; + +=head1 NAME + +vnstat_month - Run C and report usage this month + +=head1 SYNOPSIS + +Optionally, in In F: + + # Set the max bandwidth to 800 GB per month + [vnstat_month] + env.limittt 800000 + +=head1 AUTHOR + +Evar ArnfjErE Bjarmason + +=head1 LICENSE + +This program is in the public domain. + +=head1 MAGIC MARKERS + + #%# family=auto + +=cut + +my $limittt = $ENV{limittt}; + +given ($ARGV[0]) { + when ("config") { + print <{time}) =~ /^\S+ $this_month\b/; + } @days; + + my $rx = sum( map { $_->{rx_mib} } @relevant ); + my $tx = sum( map { $_->{tx_mib} } @relevant ); + my $tt = $rx + $tx; + + print <<"END"; +totalrx.value $rx +totaltx.value $tx +totaltt.value $tt +END + if ($limittt) { + print <<"END"; +limittt.value $limittt +END + } + } +} + +sub get_daylines { + open my $vnstat, "vnstat --dumpdb |"; + my @lines; + while (my $line = <$vnstat>) { + chomp $line; + my $ns = qr/[^:]+/; + next unless $line =~ /^d;(?$ns);(?