Guest User

Untitled

a guest
Nov 17th, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2. require 'io/console'
  3. require 'nexpose'
  4. include Nexpose
  5.  
  6. def get_console(prompt="Console IP: ")
  7. print prompt
  8. gets.chomp
  9. end
  10. def get_username(prompt="User: ")
  11. print prompt
  12. gets.chomp
  13. end
  14. def get_password(prompt="Password: ")
  15. print prompt
  16. STDIN.noecho(&:gets).chomp
  17. end
  18.  
  19. @console = get_console
  20. @username = get_username
  21. @password = get_password
  22.  
  23. nsc = Connection.new(@console, @username, @password)
  24.  
  25. nsc.login
  26. at_exit { nsc.logout }
  27.  
  28. asset_count = {}
  29. engine_load = {}
  30.  
  31. nsc.sites.each do |site|
  32. config = Site.load(nsc, site.id)
  33. next if config.scan_template_name =~ /discover/
  34.  
  35. asset_count[site.id] = nsc.list_site_devices(site.id).count
  36. last_scan = nsc.last_scan(site.id)
  37. engine_load[last_scan.engine_id] ||= 0
  38. engine_load[last_scan.engine_id] += asset_count[site.id]
  39. end
  40.  
  41. total_assets = asset_count.values.reduce(0) { |acc, count| acc += count }
  42.  
  43. engines = nsc.engines
  44. engine_load.each do |id, count|
  45. name = engines.find { |eng| eng.id == id }.name
  46. percent = '%.2f' % (count.to_f / total_assets * 100)
  47. puts "#{name} : #{count} (#{percent}%)"
  48. end
Add Comment
Please, Sign In to add comment