示例#1
0
def snmpcli(argv):
    """snmpcli [-h] [-p <port>] [-s <scriptname>] [-m <module>] host community

Provides an interactive session to an SNMP agent.
    """
    port = 161
    sourcefile = None
    logfile = None
    modname = None
    try:
        optlist, longopts, args = getopt.getopt(argv[1:], "hl:p:s:m:")
    except getopt.GetoptError:
        print(snmpcli.__doc__)
        return
    for opt, val in optlist:
        if opt == "-s":
            sourcefile = val
        elif opt == "-l":
            logfile = val
        elif opt == "-h":
            print(snmpcli.__doc__)
            return
        elif opt == "-p":
            try:
                port = int(val)
            except ValueError:
                print(snmpcli.__doc__)
                return
        elif opt == "-m":
            modname = val

    if not args:
        print(snmpcli.__doc__)
        return

    host = args[0]
    if len(args) > 1:
        community = args[1]
    else:
        community = "public"

    if modname:
        module = __import__(modname, globals(), locals(), ["*"])
        manager = module.get_manager(host, community)
    else:
        manager = Manager.get_manager(host, community, mibs=[SNMPv2_MIB, IF_MIB])

    parser = CLI.get_generic_cli(
        manager, SNMPManagerCommands, logfile=logfile, historyfile=os.path.expandvars("$HOME/.hist_snmpcli")
    )

    if sourcefile:
        try:
            parser.parse(sourcefile)
        except CLI.CommandQuit:
            pass
    else:
        parser.interact()
示例#2
0
def snmpcli(argv):
    """snmpcli [-h] [-p <port>] [-s <scriptname>] [-m <module>] host community

Provides an interactive session to an SNMP agent.
    """
    port = 161
    sourcefile = None
    logfile = None
    modname = None
    try:
        optlist, longopts, args = getopt.getopt(argv[1:], "hl:p:s:m:")
    except getopt.GetoptError:
        print(snmpcli.__doc__)
        return
    for opt, val in optlist:
        if opt == "-s":
            sourcefile = val
        elif opt == "-l":
            logfile = val
        elif opt == "-h":
            print(snmpcli.__doc__)
            return
        elif opt == "-p":
            try:
                port = int(val)
            except ValueError:
                print(snmpcli.__doc__)
                return
        elif opt == "-m":
            modname = val

    if not args:
        print(snmpcli.__doc__)
        return

    host = args[0]
    if len(args) > 1:
        community = args[1]
    else:
        community = "public"

    if modname:
        module = __import__(modname, globals(), locals(), ["*"])
        manager = module.get_manager(host, community)
    else:
        manager = Manager.get_manager(host,
                                      community,
                                      mibs=[SNMPv2_MIB, IF_MIB])

    parser = CLI.get_generic_cli(
        manager,
        SNMPManagerCommands,
        logfile=logfile,
        historyfile=os.path.expandvars("$HOME/.hist_snmpcli"))

    if sourcefile:
        try:
            parser.parse(sourcefile)
        except CLI.CommandQuit:
            pass
    else:
        parser.interact()