栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 实现读取多个文件进行配置多个网络设备

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 实现读取多个文件进行配置多个网络设备

原理:

       将设备的配置文件,放到同目录下,然后将ip_add、username、passwd、path属性放入字典,写入device_info.py文件,并用datebase列表来接收字典。

        在脚本中导入device_info库,最外层嵌套一个循环用来遍历datebase列表,用来实现对不同文件的遍历读取,然后在ssh连接时需要属性时,调用datebase中元素的键,从而实现对不同文件的读取。

        代码不理解,可以去读上一篇文章,实际上就是将上篇文章中的固定变量,设置为灵活变量,以便调用不同文件

 

device_info.py:

# 需要一个数据库,存储着 各个设备的信息
dict_sw1 = {"ip_add": "192.168.19.10", "username": "zhangxiong", "passwd": "huawei@123", "path": "sw1.cfg"}
dict_sw2 = {"ip_add": "192.168.19.20", "username": "zhangxiong", "passwd": "huawei@123", "path": "sw2.cfg"}
dict_sw3 = {"ip_add": "192.168.100.30", "username": "zhangxiong", "passwd": "huawei@123", "path": "sw3.cfg"}
datebase = [dict_sw1, dict_sw2]

 python代码实现:

import paramiko
import time
from device_info import *


for item in range(len(datebase)):
    # 1.创建客户端对象
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 使用客户端,导入参数
    ssh.connect(hostname=datebase[item]["ip_add"], username=datebase[item]["username"], password=datebase[item]["passwd"])
    command = ssh.invoke_shell()  # 创建一个命令对象 ,调用shell

    with open(f'{datebase[item]["path"]}', 'r', encoding='utf-8') as f:
        while True:
            content = f.readline()  # 将读取到的文件,按行,存储为一个列表
            if not content:
                break
            command.send(content.encode())

    print("please wait ....")
    time.sleep(5)  # 发送完命令,需要一个延时,等待设备 将回显值回传,等待时间不能太短
    output = command.recv(65535)  # 接收服务器的返回数据
    print(output.decode())  # 将接收的数据解码

    ssh.close()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853926.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号