class LogicBomb::Ping
Public Class Methods
new(ping:, tracert:, interval:, mailer:)
click to toggle source
# File lib/logicbomb/ping.rb, line 5 def initialize(ping:, tracert:, interval:, mailer:) @ping = ping @tracert = tracert @interval = interval @mailer = mailer end
Public Instance Methods
daemon()
click to toggle source
# File lib/logicbomb/ping.rb, line 12 def daemon while true sleep @interval netconns = ping next if netconns.nil? mailer.mail netconns, tracert sleep 3600 end end
Private Instance Methods
ping()
click to toggle source
# File lib/logicbomb/ping.rb, line 23 def ping @ping.each do |ip| attempt1 = ping ip next if successful_ping?(ip) sleep 5 attempt2 = ping ip return "#{attempt1}\n#{attempt2}" unless successful_ping?(attempt2) end end
successful_ping?(stdout)
click to toggle source
# File lib/logicbomb/ping.rb, line 41 def successful_ping?(stdout) stdout.include?(" 0% packet loss,") end
tracert()
click to toggle source
# File lib/logicbomb/ping.rb, line 33 def tracert @tracert.map {|ip| "#{ip}:\n" + `traceroute #{ip}`}.join('\n') end