Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- require 'io/console'
- require 'nexpose'
- include Nexpose
- def get_console(prompt="Console IP: ")
- print prompt
- gets.chomp
- end
- def get_username(prompt="User: ")
- print prompt
- gets.chomp
- end
- def get_password(prompt="Password: ")
- print prompt
- STDIN.noecho(&:gets).chomp
- end
- @console = get_console
- @username = get_username
- @password = get_password
- nsc = Connection.new(@console, @username, @password)
- nsc.login
- at_exit { nsc.logout }
- asset_count = {}
- engine_load = {}
- nsc.sites.each do |site|
- config = Site.load(nsc, site.id)
- next if config.scan_template_name =~ /discover/
- asset_count[site.id] = nsc.list_site_devices(site.id).count
- last_scan = nsc.last_scan(site.id)
- next if last_scan.nil?
- engine_load[last_scan.engine_id] ||= 0
- engine_load[last_scan.engine_id] += asset_count[site.id]
- end
- total_assets = asset_count.values.reduce(0) { |acc, count| acc += count }
- engines = nsc.engines
- engine_load.each do |id, count|
- engine = engines.find { |eng| eng.id == id }
- if engine.nil?
- puts "Could not find engine with ID #{id}"
- next
- end
- percent = '%.2f' % (count.to_f / total_assets * 100)
- puts "#{name} : #{count} (#{percent}%)"
- end
Add Comment
Please, Sign In to add comment