基于 Paramiko 的 SSH 通讯类
# -*- coding: UTF-8 -*-
import paramiko
import time ##################################################################
'''类名称: SSHCommunication
描述:SSH通讯类
作者:Sid Zhang(autopenguin)'''
##################################################################
class SSHCommunication():
def __init__(self):
self.client = paramiko.SSHClient()
##################################################################
'''方法名称: Logon
参数:HostIP->登录主机IP【字符串】
SSHPort->SSH登录端口号【数字】
Username->登录用户名【字符串】
Password->登录密码【字符串】
返回值:None
描述:SSH登录方法'''
##################################################################
def Logon(self, HostIP, SSHPort, Username, Password):
self.client.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy())
self.client.connect(HostIP, SSHPort, Username, Password)
self.chan = self.client.invoke_shell()
self.chan.settimeout(120)
##################################################################
'''函数名称: Send
参数:Cmds->待发送的命令列表【字符串列表】
返回值:None
描述:发送命令方法'''
##################################################################
def Send(self, Cmds = []):
for Cmd in Cmds:
while not self.chan.send_ready():
time.sleep(0.1)
self.chan.send(Cmd + '\n')
print 'Execute Command: ' + Cmd
##################################################################
'''函数名称: SendWithoutReceive
参数:Cmds->待发送的命令列表【字符串列表】
返回值:None
描述:发送命令且无须接收结果方法'''
#################################################################
def SendWithoutReceive(self, Cmds=[]):
self.Send(Cmds)
self.Receive()
##################################################################
'''函数名称: Receive
参数:None
返回值:命令执行输出
描述:接收命令输出方法'''
##################################################################
def Receive(self):
while not self.chan.recv_ready():
time.sleep(0.1) 。
CommandOut = self.chan.recv(1024000)
CommandOutAll = CommandOut
while not (CommandOut.endswith('\x1b[m\x0f') or CommandOut.endswith('> ') or CommandOut.endswith('$') or CommandOut.endswith('# ')):
while not self.chan.recv_ready():
time.sleep(0.1)
CommandOut = self.chan.recv(102400)
CommandOutAll = CommandOutAll + CommandOut
return CommandOutAll
##################################################################
'''函数名称: Logout
参数:None
返回值:None
描述:SSH登出方法'''
##################################################################
def Logout(self):
self.chan.close()
基于 Paramiko 的 SSH 通讯类的更多相关文章
- Android基于XMPP的即时通讯2-文件传输
本文是在上一篇博文Android基于XMPP的即时通讯1-基本对话的基础上,添加新的功能,文件传输 1.初始化文件传输管理类 public static FileTransferManager get ...
- 批量远程执行linux服务器程序--基于paramiko(多线程版)
批量远程执行linux服务器程序--基于paramiko paramiko模块是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 具体安装方法这里不写,网 ...
- 并发编程概述 委托(delegate) 事件(event) .net core 2.0 event bus 一个简单的基于内存事件总线实现 .net core 基于NPOI 的excel导出类,支持自定义导出哪些字段 基于Ace Admin 的菜单栏实现 第五节:SignalR大杂烩(与MVC融合、全局的几个配置、跨域的应用、C/S程序充当Client和Server)
并发编程概述 前言 说实话,在我软件开发的头两年几乎不考虑并发编程,请求与响应把业务逻辑尽快完成一个星期的任务能两天完成绝不拖三天(剩下时间各种浪),根本不会考虑性能问题(能接受范围内).但随着工 ...
- Python的paramiko模块ssh操作
SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import paramiko # 创建 ...
- Java之基于Eclipse搭建SSH框架(下)
在上篇博客里,我简介了Tomcat滴配置与Struts2滴搭建,假设对这个还不会滴童鞋去看一下我滴上篇博客<Java之基于Eclipse搭建SSH框架(上)>.今天我们接着上篇博客滴内容. ...
- 第二部分用户交互程序开发,通过paramiko记录ssh会话记录
需求及任务:实现一个给用户登录的界面(通过ssh登到堡垒机上,然后给它展现一个命令行的页面,然后他选择登哪台机器,一选择就连上去且把日志也记录下来). 先在admin创建几条组数据并与用户关联如下图: ...
- .Net开发笔记(十五) 基于“泵”的TCP通讯(接上篇)
上一篇博客中说了基于“泵”的UDP通讯,附上了一个Demo,模拟飞鸽传书的功能,功能不太完善,主要是为了说明“泵”在编程中的应用.本篇文章我再附上一个关于TCP通讯的两个Demo,也都采用了“泵”模式 ...
- [安卓] 12、开源一个基于SurfaceView的飞行射击类小游戏
前言 这款安卓小游戏是基于SurfaceView的飞行射击类游戏,采用Java来写,没有采用游戏引擎,注释详细,条理比较清晰,适合初学者了解游戏状态转化自动机和一些继承与封装的技巧. 效果展示 ...
- Android基于XMPP的即时通讯3-表情发送
这篇博文主要讲表情发送的一些东西. 参考:Android基于XMPP的即时通讯1-基本对话 1.准备好资源文件 采用的是emoji的表情,我打包好了,下载地址:http://files.cnblogs ...
随机推荐
- Oracle中使用escape关键字实现like匹配特殊字符,以及&字符的转义
转:http://blog.chinaunix.net/uid-26896647-id-3433968.html 问题描述:如果在一个表中的一个字段上存在'&', '_', '%'这样的特 ...
- android webview js alert对话框 不能弹出 解决办法
在配置了webview的 setting属性后,以前设置的都是可以直接弹出来的,今天写一个小demo时候莫名其妙的发现alert怎么也出来,即使设置了这么多也不行: webSettings.setJa ...
- AspNet WebApi OData 学习
OData介绍:是一个查询和更新数据的Web协议.OData应用了web技术如HTTP.Atom发布协议(AtomPub)和JSON等来提供对不同应用程序,服务 和存储的信息访问.除了提供一些基本的操 ...
- error while loading shared libraries: libevent-2.0.so.5解决办法
安装memcache时,需要建立文件索引或者说文件连接(link),类似windows下的快捷方式 启动服务时出现 error while loading shared libraries: libe ...
- hihoCoder 1385 A Simple Job
#1385 : A Simple Job 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Institute of Computational Linguistics (I ...
- 翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(4)
停止ElasticSearch(Shutting down ElasticSearch) 尽管我们期望集群(或节点)终生完美运行,我们最终可能需要重启或者正确的停止它(例如,维护).有三种方式来停止E ...
- <转>Python运行的17个时新手常见错误小结
1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”) 该错误将发生在 ...
- 仿酷狗音乐播放器开发日志二十六 duilib在标题栏弹出菜单的方法
转载请说明原出处,谢谢~~ 上篇日志说明了怎么让自定义控件响应右键消息.之后我给主窗体的标题栏增加右键响应,观察原酷狗后可以发现,在整个标题栏都是可以响应右键并弹出菜单的.应该的效果如下: 本以为像上 ...
- bzoj 1097 [POI2007]旅游景点atr(最短路,状压DP)
[题意] 给定一个n点m边的无向图,要求1开始n结束而且顺序经过k个点,给出经过关系x,y代表y必须在x之后经过,求最短路. [思路] 先对k个点进行spfa求出最短路. 设f[s][i]代表经过点集 ...
- 高精度+搜索+质数 BZOJ1225 [HNOI2001] 求正整数
// 高精度+搜索+质数 BZOJ1225 [HNOI2001] 求正整数 // 思路: // http://blog.csdn.net/huzecong/article/details/847868 ...