Skip to content

Instantly share code, notes, and snippets.

@IotaSpencer
Last active January 7, 2016 06:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save IotaSpencer/f55764368b7faca00521 to your computer and use it in GitHub Desktop.
Save IotaSpencer/f55764368b7faca00521 to your computer and use it in GitHub Desktop.
<%= result.inspect %>
get "/uptime/?:format?/?" do
uptimeReport = Hash.new
#uptimeReport = Hash.new { |h, k| h[k] = Hash.new &h.default_proc }
format = params[:format]
servers = YAML.load_file("uptime.yaml")
case
when format.match(/raw/i)
erb :raw_uptime, :locals => {"servers" => servers}, :layout => false
when format.match(/json/i)
servers.each do |type, value|
uptimeReport[type] = {}
value.each do |server, info|
puts server
Net::SSH.start(info["host"], info["user"], :port => info["port"], :keys => ["/var/ht/id_rsa"]) do |ssh|
output = ssh.exec!("uptime")
puts output
uptimeReport[type][server] = output.chomp
end
end
end
puts uptimeReport
uptimeReport = uptimeReport.to_json
erb :json_uptime, :locals => {"servers" => servers, "result" => uptimeReport}, :layout => false
else
erb :uptime, :locals => {"servers" => servers}
end
end
{"IRC":{"Services Hub":" 01:31:45 up 118 days, 5:31, 0 users, load average: 0.00, 0.00, 0.00","EU Hub/Nanoha":" 01:31:46 up 12 days, 3:02, 2 users, load average: 0.00, 0.01, 0.05","Shitty":" 06:31:56 up 8 days, 13:59, 0 users, load average: 0.00, 0.01, 0.05","Squirrel":" 01:31:48 up 130 days, 15:55, 0 users, load average: 0.02, 0.01, 0.00","Neko":" 22:31:50 up 19 days, 4:07, 0 users, load average: 0.00, 0.01, 0.05","MilkyWay":" 07:31:51 up 173 days, 7:33, 0 users, load average: 0.50, 0.68, 0.74"},"BNC":{"Ood":" 01:31:47 up 24 days, 22:29, 0 users, load average: 0.00, 0.01, 0.05"},"Web etc.":{"Rammy":" 01:31:51 up 30 days, 5 min, 2 users, load average: 0.12, 0.07, 0.08"}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment