使用python管理Cisco设备-乾颐堂
今天发现一个老外使用python写的管理cisco设备的小框架tratto,可以用来批量执行命令。
下载后主要有3个文件:
Systems.py 定义了一些不同设备的操作系统及其常见命令。
Connectivity.py 是主要实现功能的代码,其实主要就是使用了python的pexpect模块。
Driver.py是一个示例文件。
[root@safe tratto-master]# cat driver.py
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#!/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() |
www.qytang.com/
http://www.qytang.com/cn/list/29/
http://www.qytang.com/cn/list/28/404.htm
http://www.qytang.com/cn/list/28/397.htm
http://www.qytang.com/cn/list/28/396.htm
http://www.qytang.com/cn/list/28/395.htm
http://www.qytang.com/cn/list/28/394.htm
http://www.qytang.com/cn/list/28/393.htm
http://www.qytang.com/cn/list/28/391.htm
http://www.qytang.com/cn/list/28/389.htm
http://www.qytang.com/cn/list/28/388.htm
http://www.qytang.com/cn/list/28/362.htm
http://www.qytang.com/cn/list/28/358.htm
http://www.qytang.com/cn/list/28/351.htm
http://www.qytang.com/cn/list/28/348.htm
http://www.qytang.com/cn/list/28/340.htm
http://www.qytang.com/cn/list/28/338.htm
http://www.qytang.com/cn/list/28/336.htm
http://www.qytang.com/cn/list/28/330.htm
使用python管理Cisco设备-乾颐堂的更多相关文章
- 使用python进行汉语分词-乾颐堂
目前我常常使用的分词有结巴分词.NLPIR分词等等 最近是在使用结巴分词,稍微做一下推荐,还是蛮好用的. 一.结巴分词简介 利用结巴分词进行中文分词,基本实现原理有三: 基于Trie树结构实现高效的词 ...
- python的metaclass浅析-乾颐堂
元类一般用于创建类.在执行类定义时,解释器必须要知道这个类的正确的元类.解释器会先寻找类属性__metaclass__,如果此属性存在,就将这个属性赋值给此类作为它的元类.如果此属性没有定义,它会向上 ...
- Python监控日志程序-乾颐堂
一个简易的日志监控的脚本,功能如下:1.windows环境2.当匹配日志关键字时会发出声音,匹配的关键字不同,播放的声音不同3.能做到实时响应 注意:是在win环境下哦 直接上代码吧 1 2 3 4 ...
- Python之FTP传输-乾颐堂
访问FTP,无非两件事情:upload和download,最近在项目中需要从ftp下载大量文件,然后我就试着去实验自己的ftp操作类,如下(PS:此段有问题,别复制使用,可以参考去试验自己的ftp类! ...
- 乾颐堂7月HCIE、CCIE通过名单
拼多多都上市了,现在很多培训机构也流行公用一张PASS了,山寨总是山寨的,不脚踏实地总是欺骗自己7月(自然月)乾颐堂通过22名学员,每个考试日通过一名HCIE.CCIE 转载于:https://blo ...
- python用sqlite3模块操作sqlite数据库-乾颐堂
SQLite是一个包含在C库中的轻量级数据库.它并不需要独立的维护进程,并且允许使用非标准变体(nonstandard variant)的SQL查询语句来访问数据库. 一些应用可是使用SQLite保存 ...
- python高性能编程方法一-乾颐堂
阅读 Zen of Python,在Python解析器中输入 import this. 一个犀利的Python新手可能会注意到"解析"一词, 认为Python不过是另一门脚本语言. ...
- Python手机开发调用DLL实现部分ADB功能-乾颐堂
近期学了一点Python,然后正好有一个手机同步工具方面的预研工作要完成. 要实现PC与手机的通信,首先要找到他们的通信协议,还好的是Android有完善的协议:ADB ADB的代码是开源的,而且支持 ...
- Python使用wxPython、py2exe编写桌面程序-乾颐堂
Python是支持可视化编程,即编写gui程序,你可以用它来编写自己喜欢的桌面程序.使用wxPython来做界面非常的简单,只是不能像C#一样拖动控件,需要自行写代码布局.在完成编写之后,由于直接的p ...
随机推荐
- OPCDAAuto.dll 的一个坑
最近项目需要对SCADA系统的下位机采集实时数据,常见做法是两种,一种采用ModBus RTU/TCP协议直接通过支持ModBus的下位机通信,一种是通过OPC规范,使用厂商提供的OPC Server ...
- git log 中文乱码的解决方案
设置 Git 支持 utf-8 编码在命令行下输入以下命令:$ git config --global core.quotepath false # 显示 status 编码$ git config ...
- 【转】使用JMeter做性能测试的心得
企业应用开发过程中,性能测试是很重要的一个环节,在这个环节中Apache的JMeter以它开源.100%纯Java.操作方便等优点发挥着很大的作用. 经过一段时间的使用,多少有些心得和技巧,拿出来共享 ...
- ESXI5-WIN2008R2安装域控以及额外域笔记
每次安装域控都要找教程,每次都没法一次性搞定.写个笔记吧...主要是给自己看的.写的比较含糊.不清楚的可以直接QQ本人. 1.安装WIN2008R2,192.168.188.10 2.上载SLICET ...
- WordSmith2013-6-19
WordSmith Good Evening Ladies and Gentlemen,I’am Jason,I’m pleasured to be wordsmith tonight. First ...
- OD 实验(八) - 对一个程序的逆向
程序: 运行 弹出 NAG 窗口,提示要花 20 美元注册 然后会进入主窗口 提示剩余 5 天的使用时间 点击,菜单栏 -> Help -> About 显示未注册版本 逆向: 用 OD ...
- [Cpp primer] Namespace using Declarations
If we want to use cin in the standard library, we need to std::cin To simplify this work, we can do ...
- python开发_python中的range()函数
python中的range()函数的功能hen强大,所以我觉得很有必要和大家分享一下 就好像其API中所描述的: If you do need to iterate over a sequence o ...
- wwwroot文件无读取某个文件夹权限(对IIS_USER增加全部权限)
- C# 鼠标穿透窗体与恢复
转自原文 C# 鼠标穿透窗体与恢复 引入user32.dll [DllImport("user32.dll")] public static extern uint SetWind ...