如何在Python项目中使用SSH连接到网络设备(python,ssh,开发技术)

时间:2024-04-30 01:45:42 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

1. 测试环境及关键代码解释

1.1 简单测试环境

  • 使用python3环境

  • 使用第三方Netmiko模块(基于Paramiko库进行改版)

  • 简单的实验环境

如何在Python项目中使用SSH连接到网络设备

1.2 关键代码

  • import xx:导入模块

  • class xx:定义类

  • def xx: 定义函数

  • try-except :处理可能引发的异常

  • ssh.enable():进入enable模式

  • ssh.find_prompt():返回当前提示符

  • ssh.send_command():发送查询命令并返回结果

  • ssh.send_config_set():发送配置命令到目标设备

  • ssh.disconnect():关闭连接

Tips: import ConnectHandler和import Netmiko是一样的效果的哈。

2. 完整代码

'''欢迎关注微信公众号:'diandijishu'此平台是网路工程师个人日常技术、项目案例经验分享,为巩固及提升技术能力乃至共享所学所知技术,也欢迎各位工程师一起分享、一起成长。'''#!/usr/bin/envpython#coding:utf-8fromnetmikoimportConnectHandlerfromnetmiko.ssh_exceptionimportNetMikoTimeoutExceptionfromnetmiko.ssh_exceptionimportNetMikoAuthenticationExceptionfromdatetimeimportdatetimeimporttimeimportloggingfrommy_devicesimportdevice_listasdevices'定义类'classSSH_Client():'定义login_host函数,用于登陆设备'deflogin_host(self,a_device):try:self.ssh=ConnectHandler(**a_device)self.ssh.enable()reply=self.ssh.find_prompt()print('>'*10+'成功登陆结果如下:'+'>'*10+'\n'+reply)returnTrueexceptValueError:logging.warning(a_device['host']+'Secret密码错误')exceptNetMikoTimeoutException:logging.warning(a_device['host']+'连接不上设备,请检查网络是否正常通信')exceptNetMikoAuthenticationException:logging.warning(a_device['host']+'登陆失败,用户名或密码错误')'定义do_cmd函数,用于执行命令'defdo_cmd(self,cmds):'读取文件,for语句循环执行命令'withopen(cmds)ascmd_obj:forcmdincmd_obj:reply=self.ssh.send_command(cmd)time.sleep(2)logging.warning('>'*10+cmd.rstrip()+'命令执行结果如下:'+'>'*10+'\n'+reply)'定义logout_host函数,关闭程序'deflogout_host(self):self.ssh.disconnect()if__name__=='__main__':cmds='cmd.txt'#存放执行命令文件,相对路径ssh_client=SSH_Client()start_time=datetime.now()fora_deviceindevices:'如果登录结果为True,则执行命令,然后退出'ifssh_client.login_host(a_device):ssh_client.do_cmd(cmds)ssh_client.logout_host()time.sleep(2)stop_time=datetime.now()print('总花费时长:{0}\n'.format(stop_time-start_time))

3. 运行效果

如何在Python项目中使用SSH连接到网络设备

4. 报错效果

4.1 远程连接不上

如何在Python项目中使用SSH连接到网络设备

4.2 用户名和密码错误

如何在Python项目中使用SSH连接到网络设备

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:如何在Python项目中使用SSH连接到网络设备的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:怎么在IDEA中使用SpringBoot+MyBatis+MySql实现一个动态登录与注册功能下一篇:

6 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18