Added non-standard SSH port support

pull/2/head
Aaron Johnson 6 years ago
parent ab06b8474f
commit bf7edc7814

@ -1,8 +1,13 @@
def process_callback_zone(message) def process_callback_zone(message)
host = message.data.split("|")[1] host = message.data.split("|")[1]
zone = @probes[host].values.first #zone = @probes[host].values.first
zone = @probes[host].select { |k,v| k == 'loc' }
zone = zone["loc"]
puts "Selected: #{zone}" puts "Selected: #{zone}"
tdata = process_tdata(host) port = @probes[host].select { |k,v| k == 'port' }
port = port["port"]
#print " Port: #{port}\n"
tdata = process_tdata(host, port)
#puts "Selected: #{zone} [#{tdata}]" #puts "Selected: #{zone} [#{tdata}]"
send_message(message.message.chat.id, "#{zone}: #{tdata}") send_message(message.message.chat.id, "#{zone}: #{tdata}")
STDOUT.flush STDOUT.flush

@ -102,8 +102,9 @@ def process_command_report(message, command, adm, simple=false)
end end
@probes.each do |k,v| @probes.each do |k,v|
zone = v["loc"].to_s zone = v["loc"].to_s
port = v["port"].to_s
host = k host = k
tdata = process_tdata(host, simple) tdata = process_tdata(host, port, simple)
report = report + "#{zone}: #{tdata}\n" report = report + "#{zone}: #{tdata}\n"
STDOUT.flush STDOUT.flush
end end

@ -164,7 +164,8 @@ puts "Temporary direcotry: #{@tmpdir}"
puts "Temperature unit: #{@tunit}" puts "Temperature unit: #{@tunit}"
puts "Probes loaded:" puts "Probes loaded:"
@probes.each do |k,v| @probes.each do |k,v|
puts " [#{k}] #{v["loc"].to_s}" #puts " [#{k}] #{v["loc"].to_s}"
puts " [" + "#{k}: ".bold + v['port'].to_s.green.bold + "] #{v['loc'].to_s}"
end end
puts "Start time: " + timestamp + "\n\n\n\n" puts "Start time: " + timestamp + "\n\n\n\n"
STDOUT.flush STDOUT.flush
@ -181,9 +182,6 @@ STDOUT.flush
#end #end
def host_lookup(select_loc) def host_lookup(select_loc)
#@probes.select { |k,v| v['loc'] == select_loc }.each do |host,loc|
# return host
#end
return @probes.select { |k,v| v['loc'] == select_loc } return @probes.select { |k,v| v['loc'] == select_loc }
end end
@ -195,11 +193,11 @@ class String
/^\s*[+-]?((\d+_?)*\d+(\.(\d+_?)*\d+)?|\.(\d+_?)*\d+)(\s*|([eE][+-]?(\d+_?)*\d+)\s*)$/ === self /^\s*[+-]?((\d+_?)*\d+(\.(\d+_?)*\d+)?|\.(\d+_?)*\d+)(\s*|([eE][+-]?(\d+_?)*\d+)\s*)$/ === self
end end
end end
def process_tdata(host, simple=false) def process_tdata(host, port, simple=false)
print "Processing #{host}: " print "Processing #{host}: "
STDOUT.flush STDOUT.flush
if system("nmap #{host} -p 22 2>&1 | grep 22 | grep open >/dev/null") if system("nmap #{host} -p #{port} 2>&1 | grep #{port} | grep open >/dev/null")
tdata = `ssh -oBatchMode=yes #{host} heatbot_gettemp`.chomp tdata = `ssh -p #{port} -oBatchMode=yes #{host} heatbot_gettemp`.chomp
#if tdata.is_integer? #if tdata.is_integer?
if tdata.is_float? if tdata.is_float?
tdf = tdata.to_f tdf = tdata.to_f

Loading…
Cancel
Save