collectd: fix dhcpcount
This commit is contained in:
parent
5162a6b985
commit
4b90cde92a
|
@ -4,29 +4,37 @@ require 'date'
|
|||
|
||||
INTERVAL = 10
|
||||
hostname = `hostname`.strip
|
||||
STDOUT.sync = true
|
||||
|
||||
loop do
|
||||
starts = nil
|
||||
ends = nil
|
||||
count = 0
|
||||
seen = {}
|
||||
count = 0
|
||||
|
||||
IO::readlines("/var/lib/dhcp/dhcpd.leases").each do |line|
|
||||
if line =~ /^lease/
|
||||
starts = nil
|
||||
ends = nil
|
||||
elsif line =~ /starts \d+ (.+?);/
|
||||
starts = DateTime.parse $1
|
||||
elsif line =~ /ends \d+ (.+?);/
|
||||
ends = DateTime.parse $1
|
||||
elsif line =~ /^\}/
|
||||
now = DateTime.now
|
||||
if starts and ends and
|
||||
starts <= now and ends >= now
|
||||
count += 1
|
||||
end
|
||||
end
|
||||
end
|
||||
puts "PUTVAL \"#{hostname}/exec-dhcpd/current_sessions-leases\" interval=#{INTERVAL} N:#{count}"
|
||||
starts = nil
|
||||
ends = nil
|
||||
ignore = false
|
||||
|
||||
sleep INTERVAL
|
||||
IO::readlines("/var/lib/dhcp/dhcpd.leases").each do |line|
|
||||
if line =~ /^lease (.+) \{/
|
||||
addr = $1
|
||||
ignore = seen[addr]
|
||||
|
||||
seen[addr] = true
|
||||
starts = nil
|
||||
ends = nil
|
||||
elsif line =~ /starts \d+ (.+?);/
|
||||
starts = DateTime.parse $1
|
||||
elsif line =~ /ends \d+ (.+?);/
|
||||
ends = DateTime.parse $1
|
||||
elsif line =~ /^\}/
|
||||
now = DateTime.now
|
||||
if (not ignore) and starts and ends and
|
||||
starts <= now and ends >= now and
|
||||
count += 1
|
||||
end
|
||||
end
|
||||
end
|
||||
puts "PUTVAL \"#{hostname}/exec-dhcpd/current_sessions-leases\" interval=#{INTERVAL} N:#{count}"
|
||||
|
||||
sleep INTERVAL
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue