pythonparamiko paramiko 遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接,可以实现远程文件的上传,下载或通过ssh远程执行命令。项目地址:https://github.com/paramiko/paramiko

一、安装root@ubuntu:~/paramiko# pip install paramiko

测试是否安装成功>>> import paramiko

>>>

二、上传文件到远程服务器原理:通过SFTPClient类根据SSH传输协议的sftp会话,实现远程文件上传、下载等操作。实现远程文件上传、下载。任务:10. 1.101.187向10.1.101.186发送文件。10.1.101.187 目录/root/paramiko  有三个文件 paramikosend.py  test  test.tar10.1.101.186 目录/root/paramiko   开始为空文件夹执行python paramikosend.py,代码如下root@ubuntu:~/paramiko# cat paramikosend.py

import paramiko,datetime,os

hostname = '10.1.101.186'

username = 'root'

password = '123456'

port = 22

local_dir = '/root/paramiko'

remote_dir = '/root/paramiko'

try:

t=paramiko.Transport((hostname,port))

t.connect(username=username,password=password)

sftp = paramiko.SFTPClient.from_transport(t)

files = os.listdir(local_dir)

for f in files:

sftp.put(os.path.join(local_dir,f),os.path.join(remote_dir,f))

t.close()

except Exception:

print "connect error!"

结果:

三、从远程服务器下载文件原理:通过SFTPClient类根据SSH传输协议的sftp会话,实现远程文件上传、下载等操作。实现远程文件上传、下载。任务:现在10.1.101.186的/root/paramiko/temp186目录有两个文件,将其下载到10.1.101.187的/root/paramiko/temp187目录。

执行 python paramikoget.py ,代码如下root@ubuntu:~/paramiko# cat paramikoget.py

import paramiko,datetime,os

hostname = '10.1.101.186'

username = 'root'

password = '123456'

port = 22

local_dir = '/root/paramiko/temp187'

remote_dir = '/root/paramiko/temp186'

try:

t=paramiko.Transport((hostname,port))

t.connect(username=username,password=password)

sftp = paramiko.SFTPClient.from_transport(t)

files = sftp.listdir(remote_dir) #这里需要注意,列出远程文件必须使用sftp

for f in files:

sftp.get(os.path.join(remote_dir,f),os.path.join(local_dir,f))

t.close()

except Exception:

print "connect error!"

结果:

四、执行命令测试原理:通过SSHClient类执行命令。SSHClient类是SSH服务会话的高级表示,封装了传输、通道以及SFTPClient的校验、建立方法,通常用于执行命令。任务:通过10.1.101.187连接到10.1.101.186,然后进入目录/root/paramiko,创建一个目录lxy。执行python paramikocommand.py,代码如下:root@ubuntu:~/paramiko# cat paramikocommand.py

#!/usr/bin/python

import paramiko

hostname = '10.1.101.186'

username = 'root'

password = '123456'

port = 22

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(hostname=hostname,port=port,username=username,password=password)

stdin, stdout, stderr = ssh.exec_command("cd  /root/paramiko;mkdir lxy")print stdout.readlines()

ssh.close()

结果:

命令中也可以带参数:root@ubuntu:~/paramiko# cat paramikocommand.py

#!/usr/bin/python

import paramiko

hostname = '10.1.101.186'

username = 'root'

password = '123456'

port = 22

name='testcmd'

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(hostname=hostname,port=port,username=username,password=password)

stdin, stdout, stderr = ssh.exec_command("cd /root/paramiko;mkdir %s" %name)

print stdout.readlines()

ssh.close()

Note:exec_command为单个会话,执行完成之后会回到登录时的缺省目录。比如执行下面两句。stdin, stdout, stderr = ssh.exec_command("cd  /root/paramiko;mkdir %s" %name)

stdin,stdout,stderr = ssh.exec_command('mkdir haha')

haha目录最终是在缺省的/root目录下新建的,而不是/root/paramiko目录。五、python远程执行操作的其他开源模块fabric:fabric是封装了paramiko模块来实现ssh来传输文件的。pexpect:也可以实现ssh 登录到某个用户指定的主机上,运行某个用户指定的命令

python paramiko使用_python paramiko 模块使用方法相关推荐

  1. python decimal用法_Python decimal模块使用方法详解

    decimal 模块:decimal意思为十进制,这个模块提供了十进制浮点运算支持 1.可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确. 2.要从浮点数据转换为 ...

  2. Python中os和shutil模块实用方法集锦

    Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...

  3. python wget 卡住_python – Paramiko在执行大型wget命令时挂起

    嗨,我在执行一个通过Ubuntu 10服务器执行100mb文件的wget的命令时遇到问题.除此之外,较短的命令工作正常.下面的类包含我如何使用paramiko和我克服这个问题的不同尝试(请参阅不同的r ...

  4. python卸载模块的方法汇总_Python卸载模块的方法汇总

    本文给大家汇总介绍了3种卸载Python已安装模块的方法,推荐大家使用easy_install或者pip的方式来进行,简单方便 easy_install 卸载 通过easy_install 安装的模块 ...

  5. python卸载包很慢_Python卸载模块的方法汇总

    本文给大家汇总介绍了3种卸载Python已安装模块的方法,推荐大家使用easy_install或者pip的方式来进行,简单方便 easy_install 卸载 通过easy_install 安装的模块 ...

  6. python卸载模块的方法汇总_Python卸载模块的方法

    easy_install 卸载 通过easy_install 安装的模块可以直接通过 easy_install -m PackageName 卸载,然后删除\Python27\Lib\site-pac ...

  7. python dcf估值_Python 常用模块

    本节内容 模块介绍 os 模块 sys 模块 time & datetime模块 random 模块 json & picle shutil 模块 shelve 模块 xml 模块 c ...

  8. python莫比乌斯环_python基础|模块

    1 模块简介 在python中常见的模块有三种,在python解释器中的内置模块,第三方模块和自定义模块.模块的有使用python编写的文件,有已被编译为共享库或DLL的C或C++扩展,也有使用C编写 ...

  9. python模块调用的用法_如何使用Python语言中的random模块调用方法

    Python语言中的random模块,包含了很多方法属性,可以直接调用这些方法和设置属性.根据不同的方法展示不同的内容.下面利用几个实例查看random模块中的方法,操作如下: 工具/原料 Pytho ...

最新文章

  1. 转:去掉Flex4生成的SWF加载时的进度条
  2. 框架警察 fxcop 的规则莫名其妙
  3. TCP/IP详解--学习笔记(8)-DNS域名系统
  4. 分布式系统中一些主要的副本更新策略——Dynamo/Cassandra/Riak同时采取了主从式更新的同步+异步类型,以及任意节点更新的策略。...
  5. 常见的几种异常类型 Exception
  6. activity7 拖不动_Activiti7相关问题汇总
  7. 不止代码:恐狼后卫(ybtoj-区间dp)
  8. apache camel_使用Apache Camel发布/订阅模式
  9. 【Clickhouse】Clickhouse 外部存储引擎之 hdfs
  10. 运用计算机计算电力系统潮流分布时,电力系统【第四章:复杂电力系统潮流分布的计算机算法】...
  11. linux中断调用spi函数,基于Linux的ARM与FPGA SPI驱动,中断函数调用spidev_sync_read(),出现异常...
  12. 网络编程中udp,tcp.客户端,和服务器端。运用到的软件,串口调试助手 NetAssist
  13. 软件项目管理 问答题
  14. 一款全面超越ps3的国产游戏机
  15. 学会计学java,Java 属于以下哪种语言?_学小易找答案
  16. 左声道,右声道和立体声
  17. 消息中间件MQ的学习境界和路线
  18. 部署k8s(15):持久化存储方案
  19. Forecasting Principles And Practice(预测,方法与实践在线阅读)
  20. 优秀程序员必懂知识点,你要是还不会就out了

热门文章

  1. ruby 查看csv文件_如何使用CSV和Ruby构建终端游戏
  2. 垃圾回收算法的实现原理_有关垃圾回收算法工作原理的动画指南
  3. ubuntu下安装proxychains
  4. vscode用作markdown入门1--环境创建
  5. python获取系统内存占用信息的实例方法
  6. Python老司机总结新手常见10大错误
  7. 程序员如何 10 分钟用 Python 画出蒙娜丽莎?
  8. TCP/IP协议简述
  9. 距离度量方式(马氏距离,欧式距离,曼哈顿距离)
  10. 深度学习《CGAN新认识》