使用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中的jquery PyQuery库使用小结
May 13 Python
python获取android设备的GPS信息脚本分享
Mar 06 Python
Python简单进程锁代码实例
Apr 27 Python
简介Python中用于处理字符串的center()方法
May 18 Python
通过Python实现自动填写调查问卷
Sep 06 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
python实现简单日期工具类
Apr 24 Python
Python面向对象编程基础实例分析
Jan 17 Python
PyCharm刷新项目(文件)目录的实现
Feb 14 Python
python实现画图工具
Aug 27 Python
Python绘制分类图的方法
Apr 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封装json通信接口详解及实例
2017/03/07 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
jquery实现滑动图片自己测试的例子
2013/11/05 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
javascript canvas检测小球碰撞
2020/04/17 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python多线程http下载实现示例
2013/12/30 Python
python获取文件扩展名的方法
2015/07/06 Python
Python中subprocess的简单使用示例
2015/07/28 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
Django静态文件加载失败解决方案
2020/08/26 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
法雷奥SQA(electric)面试问题
2016/01/23 面试题
创业计划书中要认真思考的问题
2013/12/28 职场文书
安全责任书范本
2014/04/15 职场文书
终止合同协议书
2014/04/17 职场文书
超市创业计划书
2014/04/24 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
2014年电信员工工作总结
2014/12/19 职场文书
如何写辞职书
2015/02/26 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
Linux中sftp常用命令整理
2022/06/28 Servers
Python可视化神器pyecharts之绘制箱形图
2022/07/07 Python