当前位置: 首页 > wzjs >正文

衡阳建设学校网站百度小程序下载

衡阳建设学校网站,百度小程序下载,适合新手的跨境电商平台,网页实训报告目录 脚本概述 代码解析 导入模块 日志配置 核心函数config_device 主程序逻辑 使用说明 脚本优化建议 完整代码 脚本概述 这是一个使用Python编写的网络设备批量配置脚本,主要功能是通过SSH协议批量登录多台网络设备(如路由器、交换机等&…

目录

  1. 脚本概述

  2. 代码解析

    • 导入模块

    • 日志配置

    • 核心函数config_device

    • 主程序逻辑

  3. 使用说明

  4. 脚本优化建议

  5. 完整代码

脚本概述

这是一个使用Python编写的网络设备批量配置脚本,主要功能是通过SSH协议批量登录多台网络设备(如路由器、交换机等),并执行预定义的配置命令。脚本采用了多线程技术,可以同时管理多台设备,大大提高了批量操作的效率。

代码解析

导入模块

import paramiko
import getpass
import logging
import time
from concurrent.futures import ThreadPoolExecutor
  • paramiko: 用于实现SSH协议的Python库,提供SSH客户端功能

  • getpass: 安全获取用户输入的密码(虽然本脚本中未直接使用)

  • logging: Python标准日志模块,用于记录操作日志

  • time: 提供时间相关功能,这里主要用于命令执行间隔

  • ThreadPoolExecutor: 来自concurrent.futures模块,实现线程池功能

日志配置

logging.basicConfig(filename='network_ops.log',level=logging.INFO,format='%(asctime)s-%(levelname)s-%(message)s'
)

配置日志系统:

  • 日志输出到文件network_ops.log

  • 日志级别为INFO(记录一般操作信息)

  • 日志格式包含时间戳、日志级别和消息内容

核心函数config_device

def config_device(ip,username,password,commands):try:client=paramiko.SSHClient()client.set_missing_host_key_policy(paramiko.AutoAddPolicy())client.connect(hostname=ip,username=username,password=password,timeout=10)logging.info(f'Successfully connected to {ip}')shell=client.invoke_shell()for cmd in commands:shell.send(cmd+'\n')time.sleep(1)output=shell.recv(65535).decode('utf-8')logging.info(f'{ip} output:\n{output}')except Exception as e:logging.error(f'{ip} failed:{str(e)}')finally:client.close()

函数功能解析:

  1. 创建SSHClient对象并设置自动添加主机密钥策略

  2. 连接目标设备(IP、用户名、密码),设置10秒超时

  3. 获取交互式shell会话

  4. 循环发送每条命令,每条命令间隔1秒

  5. 接收命令输出并记录到日志

  6. 异常处理:记录连接或执行失败的原因

  7. 最终确保SSH连接被关闭

主程序逻辑

if __name__=='__main__':username=input('username:')password=getpass.getpass('password:')with open(r'C:\Users\23608\Desktop\ipadd_python.txt','r')as f:ips=[line.strip() for line in f.readlines()]with open(r'C:\Users\23608\Desktop\cmd_file.txt','r')as f:commands=[line.strip() for line in f.readlines()]with ThreadPoolExecutor(max_workers=5) as excutor:for ip in ips:excutor.submit(config_device,ip,username,password,commands)

执行流程:

  1. 获取用户名和密码

  2. 从两个文本文件读取:

    • ipadd_python.txt: 存储设备IP地址列表

    • cmd_file.txt: 存储要执行的命令列表

  3. 创建最大5个线程的线程池

  4. 为每个IP提交一个配置任务到线程池

使用说明

  1. 准备两个文本文件:

    • ipadd_python.txt: 每行一个设备IP地址

    • cmd_file.txt: 每行一条要执行的命令

  2. 运行脚本,输入设备的用户名和密码

  3. 查看network_ops.log文件获取执行结果

完整代码

import paramiko
import getpass
import logging
import time
from concurrent.futures import ThreadPoolExecutorlogging.basicConfig(filename='network_ops.log',level=logging.INFO,format='%(asctime)s-%(levelname)s-%(message)s'
)def config_device(ip,username,password,commands):try:client=paramiko.SSHClient()client.set_missing_host_key_policy(paramiko.AutoAddPolicy())client.connect(hostname=ip,username=username,password=password,timeout=10)logging.info(f'Successfully connected to {ip}')shell=client.invoke_shell()for cmd in commands:shell.send(cmd+'\n')time.sleep(1)output=shell.recv(65535).decode('utf-8')logging.info(f'{ip} output:\n{output}')except Exception as e:logging.error(f'{ip} failed:{str(e)}')finally:client.close()if __name__=='__main__':username=input('username:')password=getpass.getpass('password:')with open(r'C:\Users\23608\Desktop\ipadd_python.txt','r')as f:ips=[line.strip() for line in f.readlines()]with open(r'C:\Users\23608\Desktop\cmd_file.txt','r')as f:commands=[line.strip() for line in f.readlines()]with ThreadPoolExecutor(max_workers=5) as excutor:for ip in ips:excutor.submit(config_device,ip,username,password,commands)

文章转载自:

http://sQvN81NU.fxqjz.cn
http://kN5DqwRp.fxqjz.cn
http://8vE4vNfJ.fxqjz.cn
http://yNJgp8K5.fxqjz.cn
http://eKwbxxGX.fxqjz.cn
http://uzQECAk9.fxqjz.cn
http://r3AC6gbB.fxqjz.cn
http://nNf7172d.fxqjz.cn
http://a5OFxaLO.fxqjz.cn
http://LtCnuYnt.fxqjz.cn
http://PTdmA1YN.fxqjz.cn
http://UecJY3tB.fxqjz.cn
http://GSA4NzWT.fxqjz.cn
http://QizLU9QW.fxqjz.cn
http://s8frlVqf.fxqjz.cn
http://up9ZMXQH.fxqjz.cn
http://jku0fBx5.fxqjz.cn
http://PEvHHzxV.fxqjz.cn
http://mk9rfWus.fxqjz.cn
http://k8gZEYFu.fxqjz.cn
http://SxjlrWz3.fxqjz.cn
http://cWWDYlLN.fxqjz.cn
http://LjjfeUnN.fxqjz.cn
http://Xdp8ezjr.fxqjz.cn
http://pM2rWgKH.fxqjz.cn
http://vDsv7YiV.fxqjz.cn
http://7ZW7Kve0.fxqjz.cn
http://TpqZA4tR.fxqjz.cn
http://WdyFxFRA.fxqjz.cn
http://pcxifVaD.fxqjz.cn
http://www.dtcms.com/wzjs/732359.html

相关文章:

  • 有哪些网站可以做ppt实木复合门网站建设价格
  • 什么网站做家电测评WordPress模板转换emlog
  • 知识产权网站开发成全视频免费观看在线看厨房电视剧下载
  • 网站技术方案怎么写建立门户网站的费用
  • 网站icp备案怎么做深圳房价
  • 一个免费的网站通辽市网站建设
  • 沈阳网站建设 成创企业网页设计报价
  • 答题做任务网站创建网站成功案例
  • 保定市城乡建设局官方网站西宁专业做网站公司
  • 国网法治建设网站上海市建设工程安全生产协会网站
  • 各种网站末班wordpress打开页面
  • 刷赞网站空间工业设计专业是干嘛的
  • 如何给公司注册网站免费搭建个人服务器
  • 什么类型的网站开发比较困难电商运营培训课程有哪些
  • 湛江免费模板建站全国网站建设公司有多少家
  • 网站视觉优化的意义天津网络推广seo
  • 嘉兴南湖区优秀营销型网站建设wordpress时间函数
  • wordpress开发网站模板如何做一个自己的网站
  • 湖北省建设网站花生壳域名注册官网
  • 足球世界排名莆田百度seo公司
  • 搜索引擎友好的网站有哪些特点湖南sem优化
  • 怎么创建网站平台wordpress固定链接翻页404
  • 什么样的企业要做网站广州新塘做网站
  • 模板式网站开发wordpress插件如何防破解
  • 电子商务网站建设与管理实训内容答案成都市住房与城乡建设局官网
  • 手机版网站建设费用清单大型手游网络游戏排行榜
  • 图书网站开发介绍jsp购物网站开发 论文
  • 在哪建设网站微网站php源码
  • 怎么找网站开发公司家装行业网站建设
  • 怎么给新网站做推广公司注册网上核名通道