使用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实现扫描端口示例
Mar 29 Python
使用C语言扩展Python程序的简单入门指引
Apr 14 Python
Python记录详细调用堆栈日志的方法
May 05 Python
Python文件操作,open读写文件,追加文本内容实例
Dec 14 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
使用pandas读取文件的实现
Jul 31 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
python配置文件写入过程详解
Oct 19 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
Python pandas之求和运算和非空值个数统计
Aug 07 Python
python中redis包操作数据库的教程
Apr 19 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
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
php 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
Python中除法使用的注意事项
2014/08/21 Python
使用Python实现一个简单的项目监控
2015/03/31 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
八大排序算法的Python实现
2021/01/28 Python
Python的组合模式与责任链模式编程示例
2016/02/02 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
使用python实现BLAST
2018/02/12 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
python中的colorlog库使用详解
2019/07/05 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
Python字符串三种格式化输出
2020/09/17 Python
5分钟快速掌握Python定时任务框架的实现
2021/01/26 Python
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
曼联官方网上商店:Manchester United Direct
2017/07/28 全球购物
《黄河颂》教学反思
2014/02/07 职场文书
客户接待方案
2014/02/26 职场文书
科学发展观活动总结
2014/08/28 职场文书
2014年人事部工作总结
2014/12/03 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python