retire da-backup checks
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-udldap-freshness
1 #!/usr/bin/perl -w
2
3 use strict;
4 my %CODE = (
5         'UNDEF'         => -1,
6         'OK'            => 0,
7         'WARNING'       => 1,
8         'CRITICAL'      => 2,
9         'UNKNOWN'       => 3
10 );
11
12 my $f;
13
14 $SIG{__DIE__ } = sub() {
15         print shift;
16         exit $CODE{'UNKNOWN'};
17 };
18
19 sub check_age {
20         my ($f) = @_;
21         my @stat = stat($f) or die ("Cannot stat $f: $!\n");
22         my $age = time - $stat[10];
23         my $hage;
24         if ($age > 48 * 3600) {
25                 $hage = sprintf("%.1f days", $age / 24 / 3600);
26         } elsif ($age > 3600) {
27                 $hage = sprintf("%.1f hours", $age / 3600);
28         } else {
29                 $hage = sprintf("%d minutes", $age / 60);
30         };
31
32         if ($age > 60*60) {
33                 return [$CODE{'WARNING'}, "WARNING: ud-ldap info is $hage old"];
34         };
35         return [$CODE{'OK'}, "ud-ldap info is $hage old"];
36 };
37
38 my @msg;
39 my @to_check = ();
40
41 if (-f '/var/lib/misc/thishost/last_update.trace') {
42         # New style check
43         push @to_check, '/var/lib/misc/thishost/last_update.trace';
44 } else {
45         # Old style
46         push @to_check, qw{/var/lib/misc/thishost/passwd.tdb /var/lib/misc/passwd.db};
47 }
48
49 for $f (@to_check) {
50         unless (-e $f) {
51                 print "WARNING: $f does not exist.\n";
52                 exit $CODE{'WARNING'};
53         };
54
55         my $a = check_age($f);
56         if ($a->[0] != 0) {
57                 print $a->[1], "\n";
58                 exit $a->[0];
59         };
60         push @msg, $a->[1];
61 };
62
63 print "OK: ", join(', ', @msg), "\n";
64 exit 0;