paramiko是python一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接
1、可以远程操作服务器文件

例如:
df:查看磁盘使用情况
mkdir:创建目录
mv/cp/mkdir/rmdir:对文件或目录进行操作
/sbin/service/ xxxservice start/stop/restart:启动、停止、重启某服务
netstat -ntl |grep 8080:查看8080端口的使用情况
或者 nc -zv localhost :查看所有端口的使用情况
find / -name XXX:查找某文件 等等

2、可以实现远程文件的上传,下载(类似于ssh的scp功能)

首先安装paramiko
pip install paramiko
但是安装paramiko需要先安装一个依赖包叫PyCrypto的模块。PyCrypto是python编写的加密工具包,支持的各种加密算法(主要有:MD2 128 bits;MD4 128 bits;MD5 128 bits;RIPEMD 160 bits;SHA1 160 bits;SHA256 256 bits;AES 16, 24, or 32 bytes/16 bytes;ARC2 Variable/8 bytes;Blowfish Variable/8 bytes;CAST Variable/8 bytes;DES 8 bytes/8 bytes ;DES3 (Triple DES) 16 bytes/8 bytes;IDEA 16 bytes/8 bytes ;RC5 Variable/8 bytes等等。)

具体实例代码如下:
1、实现简单的命令操作

 #!/usr/bin/env python
# -*- coding:utf-8 -*- import paramiko #创建ssh对象
ssh = paramiko.SSHClient() #允许连接不在know_host中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #连接服务器
ssh.connect(hostname='192.168.1.1',port=22,username='user',password='pwd') #执行命令
stdin, stdout, stderr = ssh.exec_command('cd home;ls -l') #执行结果
#result = stderr.read() #如果有错误则打印
result = stdout.read()
print result
#关闭连接
ssh.close()

2、实现远程上传

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Eric.yue import paramiko,os class Paramiko_put(object):
def __init__(self,local_dir,remote_dir):
self.host = '192.168.1.1'
self.username = 'user'
self.passwd = 'pwd'
self.port = 22
self.local_dir = local_dir
self.remote_dir = remote_dir
self.tt = None def pk_connect(self):
self.tt = paramiko.Transport((self.host, self.port))
self.tt.connect(username = self.username, password = self.passwd)
try:
return paramiko.SFTPClient.from_transport(self.tt)
except Exception as e:
print 'Connect error:',e
exit() def put_file(self):
sftp = self.pk_connect()
files = os.listdir(self.local_dir)
cnt = 0
for file in files:
sftp.put(os.path.join(self.local_dir, file), os.path.join(self.remote_dir, file))
cnt += 1 if cnt == len(files):
print str(cnt) +' files put successful'
else:
print 'put failure' def __del__(self):
self.tt.close() pk = Paramiko_put('/home/mywork/test/day8','/home/mywork/test/day8')
pk.put_file()

3、实现远程下载

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Eric.yue import paramiko,os class Paramiko_get(object):
def __init__(self,remote_dir,local_dir):
self.host = '192.168.1.1'
self.username = 'user'
self.passwd = 'pwd'
self.port = 22
self.local_dir = local_dir
self.remote_dir = remote_dir
self.tt = None def pk_connect(self):
self.tt = paramiko.Transport((self.host, self.port))
self.tt.connect(username = self.username, password = self.passwd)
try:
return paramiko.SFTPClient.from_transport(self.tt)
except Exception as e:
print 'Connect error:',e
exit() def get_file(self):
sftp = self.pk_connect()
files = sftp.listdir(self.remote_dir)
cnt = 0
for file in files:
sftp.get(os.path.join(self.remote_dir, file),os.path.join(self.local_dir, file))
cnt += 1 if cnt == len(files):
print str(cnt) +' files get successful'
else:
print 'get failure' def __del__(self):
self.tt.close() pk = Paramiko_get('/home/inf/mywork/day8','/home/mywork/day8')
pk.get_file()

温馨提示:实现上传下载功能时要保证目录存在,有可操作权限哦!

python中paramiko模块的使用的更多相关文章

  1. Python之paramiko模块

    今天我们来了解一下python的paramiko模块 paramiko是python基于SSH用于远程服务器并执行相应的操作. 我们先在windows下安装paramiko 1.cmd下用pip安装p ...

  2. Python之paramiko模块和SQL连接API

    堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: i ...

  3. Python中optionParser模块的使用方法[转]

    本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...

  4. python中threading模块详解(一)

    python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...

  5. 【转】关于python中re模块split方法的使用

    注:最近在研究文本处理,需要用到正则切割文本,所以收索到了这篇文章,很有用,谢谢原作者. 原址:http://blog.sciencenet.cn/blog-314114-775285.html 关于 ...

  6. Python中的模块介绍和使用

    在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一 ...

  7. python中导入模块的本质, 无法导入手写模块的解决办法

    最近身边一些朋友发生在项目当中编写自己模块,导入的时候无法导入的问题. 下面我来分享一下关于python中导入模块的一些基本知识. 1 导入模块时寻找路径 在每一个运行的python程序当中,都维护了 ...

  8. Python中time模块详解

    Python中time模块详解 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. ...

  9. Python中collections模块

    目录 Python中collections模块 Counter defaultdict OrderedDict namedtuple deque ChainMap Python中collections ...

随机推荐

  1. [UCSD白板题] Take as Much Gold as Possible

    Problem Introduction This problem is about implementing an algorithm for the knapsack without repeti ...

  2. EDA技术与ASIC设计和FPGA开发有什么关系?FPGA在ASIC设计中有什么用途?

    利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现:FPGA和CPLD是实现这一途径的主流器件.FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC.FPGA和C ...

  3. shell 记录

    查看进程打开的文件句柄lsof -p 进程号|wc -l date --set "Wed Dec 11 14:51:41 CST 2013" 重启VPN pon vpn arg=` ...

  4. fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”? 解决方法

    错误描述: fatal error C1010: 在查找预编译头时遇到意外的文件结尾.是否忘记了向源中添加“#include "StdAfx.h"”? 错误分析:     此错误发 ...

  5. 无鼠标Windows操作

    1.常用tab键,方便跳转 2.打开软件方式:  1.win+1,2,3...依序打开任务栏图标.常用软件可以放在这里: 2.创建quickStart文件夹,配置路径,将所有要用到的功能都放在这里.( ...

  6. Yaf零基础学习总结4-Yaf的配置文件

    在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...

  7. mfc

    (1)编写mfc程序的基本步骤: 1.资源编辑: 2.关联控件变量: 3.编写新的类和成员函数: 4.添加消息处理函数. (2)消息映射机制: (3)常用控件: (4)界面美化:

  8. Django的virtualenv环境搭建

    安装virtualenv好处多多,可以让当前的项目使用单独的类库,实现系统类库的隔离,所以能够自由地控制当前项目类库的版本,不受系统类库的影响:还有其他N多好处. 下面是安装说明和使用示例: 首先安装 ...

  9. vmware下的linux的host only上网配置

    1.虚拟机 的网络适配器类型,选择Host-only.启动时修改网络适配器类型需要关电源重启. 2.本机电脑设置,网络邻居 启用 VMware Virtual Ethernet Adapter for ...

  10. Service简介

    Service是在一段不定的时间运行在后台,不和用户交互应用组件.每个Service必须在manifest中 通过<service>来声明.可以通过contect.startservice ...