首页 > 其他分享 >netmiko模块

netmiko模块

时间:2023-09-25 10:47:37浏览次数:31  
标签:netmiko ip dev 模块 print import conn

 

#!/bin/python
# -*- coding:UTF-8 -*-
# pip install netmiko
from netmiko import ConnectHandler, SSHDetect
from netmiko.exceptions import NetMikoAuthenticationException, NetMikoTimeoutException
import threading
import datetime
import queue
import re, os
import logging

logging.basicConfig(filename='test.log', level=logging.DEBUG)
logger = logging.getLogger("netmiko")


def conn_info(ip):
    dev = {
        # 'device_type': 'huawei_serial',  # 指定设备类型,串口方式登陆,默认连接COM1,波特率9600
        # 'device_type': 'huawei_telnet',  # 指定设备类型,该类型适用于huawei设备,telnet方式
        'device_type': 'huawei',  # 该类型适用于huawei设备,ssh方式
        'host': ip,
        'port': 1022,  # ssh默认使用22,telnet默认使用23
        'username': 'admin',  # 设备管理员用户
        'password': 'TJuOO8Uz',  # 管理员用户密码
    }
    return dev


def conn_dev(dev_q):
    while not dev_q.empty():
        dev_ip = dev_q.get()
        try:
            dev_dict = conn_info(dev_ip)
            # guesser = SSHDetect(**dev_dict)
            # best_match = guesser.autodetect()
            # print('best_match is:{}'.format(best_match))
            # print('all guessers  is:{}'.format(guesser.potential_matches))
            # dev_dict['device_type'] = best_match
            dev_conn = ConnectHandler(**dev_dict)
            print("[%s] Connected." % dev_ip)
            output = dev_conn.send_config_from_file('cmds.txt')
            print(output)
            output = dev_conn.save_config()
            print(output)
            dev_conn.disconnect()
            print('[%s] done.\n' % dev_ip)
        except NetMikoAuthenticationException:
            print("[%s] Error! Please check username or password ..." % dev_ip)
        except NetMikoTimeoutException:
            print("[%s] Error! Connect time out ..." % dev_ip)
        except Exception as e:
            print('[%s] Error:%s' % (dev_ip, e))


if __name__ == "__main__":
    devs_ip = ['192.168.12.34', '192.168.12.35', '192.168.13.19']  # 需进行配置的交换机ip地址列表

    devs_q = queue.Queue()
    for dev in devs_ip:
        devs_q.put(dev)

    max_conn = 15  # 同时操作交换机数量(可增加或减少)

    ts = []  # 线程集合
    for i in range(max_conn):
        t = threading.Thread(target=conn_dev, args=(devs_q,))
        t.start()
        ts.append(t)
    for t in ts:
        t.join()

    print("Done.")

 

标签:netmiko,ip,dev,模块,print,import,conn
From: https://www.cnblogs.com/xwupiaomiao/p/17727371.html

相关文章

  • checkstyle教程:Maven多模块工程的 maven-checkstyle-plugin 配置示例
    <project>...<build><pluginManagement><plugins><!--compiler在maven声明周期内置,所以后面不用声明也可使用--><plugin><groupId>org.apache.maven.plugins......
  • JHub开发之插件化模块构建
    在根项目上选择新建模块,新建一个Maven用户模块。​​​​结果如下:​​同理,新建一个jhub-common项目。最终项目结构:​​‍......
  • android驱动模块实现文件重定位
    编写驱动模块进行sys_call_tablehook替换sys_open和sys_openat系统调用为自定义函数,需要注意sys_call_table是只读的,修改前需要前修改其内存属性为可写。直接修改内核源码,并编写驱动模块实现filterfunction进行过滤。sys_call_tablehook只能对系统调用函数进行hook。而第......
  • 01-React-组件-CSS模块化
    CssModule(推荐)React的脚手架已经内置了cssmodules的配置:.css/.less/.scss等样式文件都修改成.module.css/.module.less/.module.scss等;在以前我们的文件是这样的index.css如果使用了CSS的模块化之后,在之前的文件的基础上在加上.module即可,如,index.module.cs......
  • python 循环 import模块
    关于循环while条件:当条件为true时,不断执行子代码foriinrange(20):循环20次子代码break结束当前循环continue跳过当前循环importrandom模块random.choice()随机一个参数random.sample(数据源,3)从数据源中随机抽3个值random.randint(1,100)打印一个随机数......
  • freeswitch 新模块开发2
    1、随便找个地方,创建个目录mod_book2、在里面创建个mod_book.c文件,写入#include<switch.h>SWITCH_MODULE_LOAD_FUNCTION(mod_book_load);SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_book_shutdown);SWITCH_MODULE_DEFINITION(mod_book,mod_book_load,mod_book_shutdown,N......
  • 序列模块pickle模块hashlib模块
    序列模块pickle模块hashlib模块序列化模块什么是序列化?什么是序列? 序列就是字符串序列化是把其他数据类型转为json字符串的过程什么是反序列化? 把json字符串转为其他数据类型的过程就是反序列化"""json字符串json对象"""在Python中把其他数据类型转为json需......
  • 3. 设计数据采集模块——基于FPGA的串口发送数据实验
    1.设计数据采集模块基于Send_en的可控设计。使得使用外部信号Data_done来启动数据发送成为可能。放弃使用Tx_done控制的做法。因此把控制Send_en的逻辑放到内部去完成。这样设计更加符合应用。1.1设计要求把Send_en的控制部分放到模块内部去,使用Send_Go作为输入信号可能......
  • 你的LED模块FCC证书ICES证书LM79报告
    LED模块EN62031报告LED模块IEC62031报告LED模块GB24819报告LED模块CE证书LED模块EMC证书LED模块LVD证书LED模块CCC证书LED灯3C证书LED模块FCC证书LED模块ICES证书LED模块SAA证书LED模块RCM证书LED模块LM79报告LED模块LM80报告LED模块Erp能效报告LED模块TUV证书LED......
  • freeswitch 新模块开发
    1、在Debian系统上成功编译并通过源码安装freeswitch2、在src/mod/application/目录下新建mod_helloworld目录。2、在src/mod/application/mod_helloworld/目录下创建mod_helloworld.c文件3、在文件中写入如下内容:#include<switch.h>SWITCH_MODULE_LOAD_FUNCTION......