使用Python脚本来获取Cisco设备信息的示例


Posted in Python onMay 04, 2015

今天发现一个使用python写的管理cisco设备的小框架tratto,可以用来批量执行命令。

下载后主要有3个文件:

Systems.py 定义了一些不同设备的操作系统及其常见命令。

Connectivity.py 是主要实现功能的代码,其实主要就是使用了python的pexpect模块。

Driver.py是一个示例文件。

[root@safe tratto-master]# cat driver.py
#!/usr/bin/env python
import Connectivity
import Systems
#telnet to a cisco switch
m = Systems.OperatingSystems['IOS']
s = Connectivity.Session("192.168.1.1",23,"telnet",m)
s.login("yourusername", "yourpassword")
# if your need to issue an "enable" command
s.escalateprivileges('yourenablepassword')
s.sendcommand("show clock")
s.sendcommand("show run")
s.logout()

以上就是示例driver.py的内容,使用很简单。

首先选择一个设备系统版本,此例cisco交换机,所以使用了IOS。作者现在写的可以支持的设备系统有:

OperatingSystems = {

  'IOS': CiscoIOS,

  'WebNS': CiscoWebNS,

  'OSX': AppleOSX,

  'SOS': SecureComputingSidewinder,

  'AOS': ArubaOS,

  'OBSD': OpenBSD,

  }

然后填写ip,端口,telnet或者ssh,最后就是上步选择的系统版本。login填上登陆凭证。

s.escalateprivileges是特权凭证。so easy~

以下是我写的一个使用脚本,抓取交换机的一些信息,然后保存到文件。

[root@safe tratto-master]# cat cisco.py
#!/usr/bin/env python
#
# Cisco Switch commands
# By s7eph4ni3
#
import Connectivity
import Systems
m = Systems.OperatingSystems['IOS']
iplist = ['192.168.1.1','192.168.1.2']
cmdlist = ['show ip int brief','show cdp nei detail','show arp','show ver']
for ip in iplist:
  if ip == '192.168.1.1':
    s = Connectivity.Session(ip,23,"telnet",m)
    s.login("", "passwd")
  else:
    s = Connectivity.Session(ip,22,"ssh",m)
    s.login("username", "passwd")
  s.escalateprivileges('enpasswd')
  f = open(ip+'.txt','w+')
  for cmd in cmdlist:
    a = s.sendcommand(cmd)
    f.write(ip+cmd+'\n')
    f.write(a+'\n')
  f.close()
  s.logout()
Python 相关文章推荐
python获取当前计算机cpu数量的方法
Apr 18 Python
批处理与python代码混合编程的方法
May 19 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
Apr 17 Python
Python Learning 列表的更多操作及示例代码
Aug 22 Python
对Python2与Python3中__bool__方法的差异详解
Nov 01 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
Python Django框架防御CSRF攻击的方法分析
Oct 18 Python
在keras里实现自定义上采样层
Jun 28 Python
python中最小二乘法详细讲解
Feb 19 Python
python3美化表格数据输出结果的实现代码
Apr 14 Python
教你怎么用Python处理excel实现自动化办公
Apr 30 Python
pycharm无法安装cv2模块问题
May 20 Python
用Python脚本来删除指定容量以上的文件的教程
May 04 #Python
编写Python脚本来获取Google搜索结果的示例
May 04 #Python
编写Python脚本来实现最简单的FTP下载的教程
May 04 #Python
Python下线程之间的共享和释放示例
May 04 #Python
简单介绍Python中利用生成器实现的并发编程
May 04 #Python
简单分析Python中用fork()函数生成的子进程
May 04 #Python
python实现从字典中删除元素的方法
May 04 #Python
You might like
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
php加密解密字符串示例
2016/10/13 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
js实现用户注册协议倒计时的方法
2015/01/21 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
Javascript函数的参数
2015/07/16 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
送你43道JS面试题(收藏)
2019/06/17 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
python内存管理分析
2015/04/08 Python
python中的计时器timeit的使用方法
2017/10/20 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
文秘自荐信
2013/10/20 职场文书
药学专业个人自我评价
2013/11/11 职场文书
大学本科毕业生的自我鉴定
2013/11/26 职场文书
升国旗仪式主持词
2014/03/19 职场文书
爱护公物演讲稿
2014/09/09 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
义卖募捐活动总结
2015/05/09 职场文书
请客吃饭开场白
2015/06/01 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
导游词之井冈山
2019/11/20 职场文书
Windows环境下实现批量执行Sql文件
2021/10/05 SQL Server