exit $CODE{'UNKNOWN'};
};
-if ( -e "/var/lib/misc/thishost/passwd.tdb" ) {
- $f = "/var/lib/misc/thishost/passwd.tdb";
-} else {
- my $hostname = `hostname -f`;
- chomp $hostname;
- $hostname =~ m/^([a-z]+(?:\.[a-z]+)+)$/;
- die "Weird hostname '$hostname'\n" unless defined $1;
- $hostname = $1;
- if ( -e "/var/lib/misc/$hostname/passwd.tdb" ) {
- $f = "/var/lib/misc/$hostname/passwd.tdb";
+sub check_age {
+ my ($f) = @_;
+ my @stat = stat($f) or die ("Cannot stat $f: $!\n");
+ my $age = time - $stat[10];
+ my $hage;
+ if ($age > 48 * 3600) {
+ $hage = sprintf("%.1f days", $age / 24 / 3600);
+ } elsif ($age > 3600) {
+ $hage = sprintf("%.1f hours", $age / 3600);
+ } else {
+ $hage = sprintf("%d minutes", $age / 60);
+ };
+
+ if ($age > 60*60) {
+ return [$CODE{'WARNING'}, "WARNING: ud-ldap info is $hage old"];
};
+ return [$CODE{'OK'}, "ud-ldap info is $hage old"];
};
-die "Could not find passwd.tdb" unless defined $f;
+my @msg;
+my @to_check = ();
-my @stat = stat($f) or die ("Cannot stat $f: $!\n");
-my $age = time - $stat[10];
-my $hage;
-if ($age > 48 * 3600) {
- $hage = sprintf("%.1f days", $age / 24 / 3600);
-} elsif ($age > 3600) {
- $hage = sprintf("%.1f hours", $age / 3600);
+if (-f '/var/lib/misc/thishost/last_update.trace') {
+ # New style check
+ push @to_check, '/var/lib/misc/thishost/last_update.trace';
} else {
- $hage = sprintf("%d minutes", $age / 60);
-};
+ # Old style
+ push @to_check, qw{/var/lib/misc/thishost/passwd.tdb /var/lib/misc/passwd.db};
+}
-if ($age > 60*60) {
- print "WARNING: ud-ldap info is $hage old\n";
- exit $CODE{'WARNING'};
+for $f (@to_check) {
+ unless (-e $f) {
+ print "WARNING: $f does not exist.\n";
+ exit $CODE{'WARNING'};
+ };
+
+ my $a = check_age($f);
+ if ($a->[0] != 0) {
+ print $a->[1], "\n";
+ exit $a->[0];
+ };
+ push @msg, $a->[1];
};
-print "OK: ud-ldap info is $hage old\n";
-exit $CODE{'OK'};
+
+print "OK: ", join(', ', @msg), "\n";
+exit 0;