X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=dsa-nagios-checks%2Fchecks%2Fdsa-check-dabackup;h=ea5ecc47687032aeee28c46e95e48c8b3dc042e8;hb=HEAD;hp=6ce30b2a1fe2dc09b80dade13a36be9d84cc7295;hpb=c3212c3f62d849d3de462cfed6f0c9aaa6d1e9d9;p=mirror%2Fdsa-nagios.git diff --git a/dsa-nagios-checks/checks/dsa-check-dabackup b/dsa-nagios-checks/checks/dsa-check-dabackup index 6ce30b2..ea5ecc4 100755 --- a/dsa-nagios-checks/checks/dsa-check-dabackup +++ b/dsa-nagios-checks/checks/dsa-check-dabackup @@ -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, @@ -68,9 +71,10 @@ my $params = {}; Getopt::Long::config('bundling'); if (!GetOptions ( - 'h|help' => \$params->{'help'}, - 'f|fresh=i' => \$TOO_FRESH, - 'm|maxage=i' => \$MAX_AGE, + '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"); }; @@ -136,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"); @@ -165,7 +174,7 @@ for my $f (sort {$a cmp $b} keys %logfiles) { my $last = ''; while () { 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;