projects
/
mirror
/
dsa-nagios.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix syntax
[mirror/dsa-nagios.git]
/
dsa-nagios-checks
/
checks
/
dsa-check-soas
diff --git
a/dsa-nagios-checks/checks/dsa-check-soas
b/dsa-nagios-checks/checks/dsa-check-soas
index
8d88915
..
eb28d8c
100755
(executable)
--- a/
dsa-nagios-checks/checks/dsa-check-soas
+++ b/
dsa-nagios-checks/checks/dsa-check-soas
@@
-147,7
+147,7
@@
end
dns = Resolv::DNS.new
ARGV.each{ |domain|
dns = Resolv::DNS.new
ARGV.each{ |domain|
- serial =
[]
+ serial =
{}
nameserver_addresses = {}
if @check_soa_nameservers
nameservers = dns.getresources(domain, Resolv::DNS::Resource::IN::NS)
nameserver_addresses = {}
if @check_soa_nameservers
nameservers = dns.getresources(domain, Resolv::DNS::Resource::IN::NS)
@@
-184,18
+184,27
@@
ARGV.each{ |domain|
warnings << "Nameserver #{nameserver} for #{domain} returns #{soas.length} SOAs" if soas.length != 1
soas.each do |soa|
puts " Nameserver #{nameserver} returns serial #{soa.serial} for #{domain}" if @verbose > 0
warnings << "Nameserver #{nameserver} for #{domain} returns #{soas.length} SOAs" if soas.length != 1
soas.each do |soa|
puts " Nameserver #{nameserver} returns serial #{soa.serial} for #{domain}" if @verbose > 0
- serial << soa.serial unless serial.include? soa.serial
+ sn = soa.serial.to_i
+ if serial.has_key? sn then
+ serial[sn] << nameserver
+ else
+ serial[sn] = [nameserver]
+ end
end
end
end
end
end
end
end
end
- case serial.length
+ case serial.
keys.
length
when 0
warnings << "Found no serials for #{domain}"
when 1
when 0
warnings << "Found no serials for #{domain}"
when 1
- oks << "#{domain} is at #{serial.first}"
+ oks << "#{domain} is at #{serial.
keys.
first}"
else
else
- warnings << "Nameservers disagree on serials for #{domain}: found #{serial.join(', ')}" if serial.length != 1
+ text = []
+ serial.keys.sort.each do |sn|
+ text << "#{sn} (#{serial[sn].join(', ')})"
+ end
+ warnings << "Nameservers disagree on serials for #{domain}: found #{text.join(', ')}"
end
}
dns.close
end
}
dns.close