Sha256: 03b0a39f80a42c6ba473b2da4e9f167255828642ba074a398a0b9946b2af7e57
Contents?: true
Size: 1.2 KB
Versions: 1
Compression:
Stored size: 1.2 KB
Contents
#!/usr/bin/env ruby require 'optparse' require 'methadone' require 'rut' require 'snmp' class App include Methadone::Main include Methadone::CLILogging attr_accessor :router_ip main do |router_ip| @router_ip = router_ip SNMP::Manager.open(host: @router_ip, retries: 0, mib_modules: ["DISMAN-EVENT-MIB", "SNMPv2-MIB"]) do |manager| run_and_handle_exceptions do response = manager.get_value(["sysUpTimeInstance" , "sysName.0"]) days = response[0] router_name = response[1].capitalize puts "#{router_name} has been up #{days}" end end end # supplemental methods here def self.run_and_handle_exceptions begin yield rescue SNMP::RequestTimeout exception_output("Host #{@router_ip} not responding", 1) rescue SocketError exception_output("#{@router_ip} is an invalid ip address", 2) rescue Exception exception_output($!.inspect, 99) end end def self.exception_output(output, code) puts output exit(code) end # Declare command-line interface here description "Shows uptime on your router" # Require an argument arg :router_ip version Rut::VERSION use_log_level_option go! end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rut-0.0.2 | bin/rut |