使用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 冒泡,选择,插入排序使用实例
Feb 05 Python
python生成随机mac地址的方法
Mar 16 Python
python获取外网ip地址的方法总结
Jul 02 Python
python算法表示概念扫盲教程
Apr 13 Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
Jun 04 Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 Python
python numpy之np.random的随机数函数使用介绍
Oct 06 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
Apr 19 Python
Pycharm安装并配置jupyter notebook的实现
May 18 Python
python爬虫框架feapde的使用简介
Apr 20 Python
如何使用Tkinter进行窗口的管理与设置
Jun 30 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
S900/ ETON E1-XM 收音机
2021/03/02 无线电
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
javascript放大镜效果的简单实现
2013/12/09 Javascript
js 通用订单代码
2013/12/23 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
JavaScript框架是什么?怎样才能叫做框架?
2015/07/01 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
介绍Python中的__future__模块
2015/04/27 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
PyQt5下拉式复选框QComboCheckBox的实例
2019/06/25 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
vivo智能手机官方商城:vivo
2016/09/22 全球购物
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
本科毕业生自我鉴定
2013/11/02 职场文书
大三学生入党思想汇报
2014/01/02 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
老公保证书
2015/01/17 职场文书
出纳岗位职责范本
2015/03/31 职场文书
父母教会我观后感
2015/06/17 职场文书
初中体育课教学反思
2016/02/16 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
Python深度学习之实现卷积神经网络
2021/06/05 Python
微信小程序实现聊天室功能
2021/06/14 Javascript
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS