#!/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);(?