花了不少时间来研究paramiko中sftpclient的文件传输,一顿操作猛如虎,最后就一直卡在了路径报错问题,疯狂查阅资料借鉴大佬们的心得,还是搞不好,睡了个午觉醒来,仔细一看原来是指定路径的文件不存在,然后我下去买了个雪糕冷静了下。留下代码,供大家借鉴,可以直接拿来用就行了。
import paramiko
class Linux(object):

     def __init__(self,ip,username,password,timout = 30):
self.hostname = ip
self.username = username
self.password = password
self.port = 22
self.t = ''
self.chan = ''
#连接重试次数
self.try_times = 3
#调用改方法连接linux主机
def conn(self):
pass
#断开连接
def close(self):
pass
#发送要执行的命令
def send(self):
pass
#上传文件
def sftp_put(self,localfile,remotefile):
# 设置SSH连接的远程主机地址和端口
t = paramiko.Transport((self.hostname, 22))
# 设置登陆用户名和密码等参数
t.connect(username=self.username, password=self.password)
#将实例化的Transport作为参数传入SFTPClient中
sftp = paramiko.SFTPClient.from_transport(t)
# 将本地的test.txt put到远端,并保持为test.txt
sftp.put(localfile,remotefile)
#关闭连接
t.close()
# 下载文件
def sftp_get(self,remotefile,newlocalfile): t = paramiko.Transport((self.hostname, 22)) t.connect(username=self.username, password=self.password) sftp = paramiko.SFTPClient.from_transport(t)
# 将远端的test.txt put到远端,并保持为newtest.txt
sftp.get(remotefile,newlocalfile )
# 关闭连接
t.close() if __name__ == '__main__':
localpath = r'I:\Meitu\数据库密码.txt'
remotepath = r'/usr/local/test/数据库密码.txt'
newlocalpath = r'I:\Meitu\newtest.gz'
host = Linux('192.168.55.158', 'root', '1')
host.sftp_put(localpath,remotepath)
host.sftp_get(remotepath,newlocalpath)

paramiko远程连接linux服务器进行上传下载文件的更多相关文章

  1. 远程登录Linux系统及上传下载文件

    目录 1. 远程登录Linux系统 1.1 为什么要远程登录 1.2 Xshell6安装 1.3 连接登录 1.3.1 连接前提 1.3.2 Xshell连接配置 2. 远程上传下载文件 2.1 Xf ...

  2. Mac 远程连接Linux服务器及上传、下载命令

    1.使用ssh命令连接远程服务器主机 1.不设置端口,默认就是22 ssh root@192.168.18.129 1.1.设置端口例: ssh -p 22 root@192.168.18.1292. ...

  3. linux使用命令上传下载文件 -- lrzsz

    之前都是用Xftp工具在本地和linux系统之间上传下载文件,最近觉得麻烦,因为平时用Xshell连接,要传输文件的时候还要额外使用别的工具,下面是lrzsz的安装和简单的使用过程: 详细的使用可以s ...

  4. mac通过自带的ssh连接Linux服务器并上传解压文件

    需求: 1:mac连接linux服务器 2:将mac上的文件上传到linux服务器指定位置 3:解压文件 mac上使用命令,推荐使用 iterm2 .当然,也可以使用mac自带的终端工具. 操作过程: ...

  5. 批量执行(Linux命令,上传/下载文件)

    前言: 每个公司的网络环境大都划分 办公网络.线上网络,之所以划分的主要原因是为了保证线上操作安全: 对于外部用户而言也只能访问线上网络的特定开放端口,那么是什么控制了用户访问线上网络的呢? 防火墙过 ...

  6. Linux与本地上传下载文件

    当出于安全原因,客户的服务器不允许使用windows第三方插件连接的时候,本地windows跟远程的linux服务器进行文件的上下传受到了限制,此时可以在linux服务器上安装一个工具:lrzsz.安 ...

  7. linux下怎么样上传下载文件夹

    Linux下目录复制:本机->远程服务器 scp -r /home/shaoxiaohu/test1 zhidao@192.168.0.1:/home/test2 test1为源目录,test2 ...

  8. python实现批量远程执行命令及批量上传下载文件

    #!/usr/bin/env python # -*- coding: utf- -*- # @Time : // : # @Author : xuxuedong # @Site : # @File ...

  9. Winscp远程连接Linux主机,上传和下载文件

    1.安装Winscp.这里不再赘述,网上搜索下载安装就可以 2.点击桌面Winscp快捷键,打开Winscp 3.在打开的页面上填写远程主机的IP,用户名和密码,点击保存,会在页面的左边出现一个站点, ...

随机推荐

  1. Java基本的程序结构设计 基本类型的输入输出

    读取输入: java.util.Scanner 一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器. 了解: Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹 ...

  2. C语言字符串追加,双色球等案例

    //C语言中没有字符串概念,有的只是字符型数组,以str1[]的值为例,该字符数组的长度为11--->包含了字母,空格,以及结束字符'\0'(斜杠0)//基于上述原因,读取一个字符型数组的有效方 ...

  3. Scala class和case class的区别

    在Scala中存在case class,它其实就是一个普通的class.但是它又和普通的class略有区别,如下: 1.初始化的时候可以不用new,当然你也可以加上,普通类一定需要加new: scal ...

  4. select编程[回调+事件循环]

    感觉比java写起来还要忧伤..... """ select , poll,epoll 注意: epoll并不一定比select的性能好,这需要看场景 1. 在高并发场景 ...

  5. jmeter之jtl文件解析(生成测试报告)命令行

    jmeter -g TestReport201905060302.jtl -o ./report 1:命令行模式将jtl转成测试图表-注意此方法只使用jmeter3.0以后版本 第一种:在测试过程中将 ...

  6. php使用ob缓存来实现动态页面静态化

    php7中的php.ini 默认开启 output_buffering = 4096 例子: <?phpinclude_once 'common/common.php';//数据库操作方法 $f ...

  7. ArrayList的contains()和HashSet的contains()效率比较

    ArrayList的contains(Object o)方法内部只有一行代码:判断indexOf(0)是否大于等于0.而indexOf(o)内部会从头遍历数组,直到某位置的元素等于o,极端情况下,要把 ...

  8. linux 硬件时间 系统时间

    建了一个虚拟机,发现每次重启后系统时钟总是跟现有时间相差10多个小时 用date -s进行修正之后,再次重启又出现该问题.于是怀疑跟硬件时钟有关 用hwclock看了下,发现的确硬件时钟的时间存在差异 ...

  9. Redis实战(十七)Redis各个版本新特性

    序言 Redis1.0 Redis2.0 Redis3.0 Redis4.0 Redis5.0 资料

  10. 浅谈BSGS(大步小步)及其扩展

    用途: 一般用来求\(a^x\equiv b\,\,(mod\,p)\)的最小正整数解,其中gcd(a,p)=1 设\(u=\lceil sqrt(p)\rceil\),则式子可以转化为\(a^{iu ...