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,
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");
};
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");
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;