使用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 24 Python
Python OS模块常用函数说明
May 23 Python
python的mysqldb安装步骤详解
Aug 14 Python
python3操作微信itchat实现发送图片
Feb 24 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
Python 去除字符串中指定字符串
Mar 05 Python
python检查目录文件权限并修改目录文件权限的操作
Mar 11 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 Python
Python爬取英雄联盟MSI直播间弹幕并生成词云图
Jun 01 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 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实现下载文件的两种方法
2013/07/05 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
jquery 批量上传图片实现代码
2010/01/28 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
jquery实现更改表格行顺序示例
2014/04/30 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
Angular 页面跳转时传参问题
2016/08/01 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
2019/02/21 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
关于python pycharm中输出的内容不全的解决办法
2020/01/10 Python
中国跨境电商:Tomtop
2017/03/16 全球购物
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
国际贸易专业求职信
2014/06/04 职场文书
厕所文明标语
2014/06/11 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
营业员岗位职责范本
2015/04/14 职场文书
标枪加油稿
2015/07/22 职场文书
素质教育学习心得体会
2016/01/19 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android