python paramiko使用_python paramiko 模块使用方法
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 模块使用方法相关推荐
- python decimal用法_Python decimal模块使用方法详解
decimal 模块:decimal意思为十进制,这个模块提供了十进制浮点运算支持 1.可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确. 2.要从浮点数据转换为 ...
- Python中os和shutil模块实用方法集锦
Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...
- python wget 卡住_python – Paramiko在执行大型wget命令时挂起
嗨,我在执行一个通过Ubuntu 10服务器执行100mb文件的wget的命令时遇到问题.除此之外,较短的命令工作正常.下面的类包含我如何使用paramiko和我克服这个问题的不同尝试(请参阅不同的r ...
- python卸载模块的方法汇总_Python卸载模块的方法汇总
本文给大家汇总介绍了3种卸载Python已安装模块的方法,推荐大家使用easy_install或者pip的方式来进行,简单方便 easy_install 卸载 通过easy_install 安装的模块 ...
- python卸载包很慢_Python卸载模块的方法汇总
本文给大家汇总介绍了3种卸载Python已安装模块的方法,推荐大家使用easy_install或者pip的方式来进行,简单方便 easy_install 卸载 通过easy_install 安装的模块 ...
- python卸载模块的方法汇总_Python卸载模块的方法
easy_install 卸载 通过easy_install 安装的模块可以直接通过 easy_install -m PackageName 卸载,然后删除\Python27\Lib\site-pac ...
- python dcf估值_Python 常用模块
本节内容 模块介绍 os 模块 sys 模块 time & datetime模块 random 模块 json & picle shutil 模块 shelve 模块 xml 模块 c ...
- python莫比乌斯环_python基础|模块
1 模块简介 在python中常见的模块有三种,在python解释器中的内置模块,第三方模块和自定义模块.模块的有使用python编写的文件,有已被编译为共享库或DLL的C或C++扩展,也有使用C编写 ...
- python模块调用的用法_如何使用Python语言中的random模块调用方法
Python语言中的random模块,包含了很多方法属性,可以直接调用这些方法和设置属性.根据不同的方法展示不同的内容.下面利用几个实例查看random模块中的方法,操作如下: 工具/原料 Pytho ...
最新文章
- 转:去掉Flex4生成的SWF加载时的进度条
- 框架警察 fxcop 的规则莫名其妙
- TCP/IP详解--学习笔记(8)-DNS域名系统
- 分布式系统中一些主要的副本更新策略——Dynamo/Cassandra/Riak同时采取了主从式更新的同步+异步类型,以及任意节点更新的策略。...
- 常见的几种异常类型 Exception
- activity7 拖不动_Activiti7相关问题汇总
- 不止代码:恐狼后卫(ybtoj-区间dp)
- apache camel_使用Apache Camel发布/订阅模式
- 【Clickhouse】Clickhouse 外部存储引擎之 hdfs
- 运用计算机计算电力系统潮流分布时,电力系统【第四章:复杂电力系统潮流分布的计算机算法】...
- linux中断调用spi函数,基于Linux的ARM与FPGA SPI驱动,中断函数调用spidev_sync_read(),出现异常...
- 网络编程中udp,tcp.客户端,和服务器端。运用到的软件,串口调试助手 NetAssist
- 软件项目管理 问答题
- 一款全面超越ps3的国产游戏机
- 学会计学java,Java 属于以下哪种语言?_学小易找答案
- 左声道,右声道和立体声
- 消息中间件MQ的学习境界和路线
- 部署k8s(15):持久化存储方案
- Forecasting Principles And Practice(预测,方法与实践在线阅读)
- 优秀程序员必懂知识点,你要是还不会就out了