retire da-backup checks
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-dabackup
index f400023..ea5ecc4 100755 (executable)
@@ -30,8 +30,11 @@ use Getopt::Long;
 use Fcntl qw(:seek);
 
 my $DABACKUP_CONF = '/etc/da-backup.conf';
-my $MAX_AGE = 30*60*60;
+my $MAX_AGE = 40*60*60;
 my $TOO_FRESH = 5*60;
+my $MAX_LOCK_AGE = 24*60*60;
+my $LOCKFILE = '/var/lock/da-backup.lock';
+
 my %CODE = (
        'UNDEF'         => -1,
        'OK'            => 0,
@@ -60,7 +63,7 @@ sub help($$) {
        my ($exitcode, $fd) = @_;
        version ($fd, 0);
        print $fd "Usage: $PROGRAM_NAME --help\n";
-       print $fd "Usage: $PROGRAM_NAME";
+       print $fd "Usage: $PROGRAM_NAME [--fresh <minseconds>] [--maxage <seconds>]";
        exit $exitcode
 };
 
@@ -68,7 +71,10 @@ my $params = {};
 
 Getopt::Long::config('bundling');
 if (!GetOptions (
-       'h|help'        =>  \$params->{'help'},
+       'h|help'         =>  \$params->{'help'},
+       'f|fresh=i'      =>  \$TOO_FRESH,
+       'm|maxage=i'     =>  \$MAX_AGE,
+       'M|maxlockage=i' =>  \$MAX_LOCK_AGE,
        )) {
        die ("$PROGRAM_NAME: Usage: $PROGRAM_NAME [-fwhv]\n");
 };
@@ -134,7 +140,12 @@ for my $f (sort {$a cmp $b} keys %logfiles) {
        my @stat = stat("$logdir/$f") or die ("Cannot stat $logdir/$f: $!\n");
        my $age = time - $stat[10];
 
-       if ($age < $TOO_FRESH) { # File is too new, let's use the old one
+       my $lockage = undef;
+       if (my @lockstat = stat($LOCKFILE)) {
+               $lockage = time - $lockstat[10];
+       }
+
+       if ($age < $TOO_FRESH || (defined $lockage && $lockage < $MAX_LOCK_AGE)) { # File is too new, let's use the old one
                if (-e "$logdir/$f.0") {
                        $f .= ".0";
                        my @stat = stat("$logdir/$f") or die ("Cannot stat $logdir/$f: $!\n");
@@ -163,7 +174,7 @@ for my $f (sort {$a cmp $b} keys %logfiles) {
        my $last = '';
        while (<FH>) {
                chomp;
-               if (/^sent\s+\d+\s+bytes\s+received\s+\d+\s+bytes\s+[\d\.]+\s+bytes\/sec$/) {
+               if (/^sent\s+[\d,]+\s+bytes\s+received\s+[\d,]+\s+bytes\s+[\d,\.]+\s+bytes\/sec$/) {
                        problem('OK', 'probably ok', $f);
                        close(FH);
                        next FILE;