python paramiko 传送文件 远端到远端

import paramiko

class HostInfo:

    def __init__(self, host, port, username, password, location):
        self.host = host
        self.port = port
        self.username = username
        self.password = password
        self.location = location

def sftp_remote_to_remote(remote_from, remote_to):
    sf_from = paramiko.Transport((remote_from.host, remote_from.port))
    sf_from.connect(username=remote_from.username, password=remote_from.password)
    sftp_from = paramiko.SFTPClient.from_transport(sf_from)

    sf_to = paramiko.Transport((remote_to.host, remote_to.port))
    sf_to.connect(username=remote_to.username, password=remote_to.password)
    sftp_to = paramiko.SFTPClient.from_transport(sf_to)

    with sftp_to.file(remote_to.location, 'wb') as fl:
        fl.set_pipelined(True)

        file_size = sftp_from.stat(remote_from.location).st_size
        with sftp_from.open(remote_from.location, 'rb') as fr:
            fr.prefetch(file_size)
            return sftp_from._transfer_with_callback(
                reader=fr, writer=fl, file_size=file_size, callback=None
            )


if __name__ == '__main__':
    remote_from = HostInfo('192.168.56.200', 22, 'root', 'r00tme', '/root/pkg/logstash-5.6.3.tar.gz')
    remote_to = HostInfo('192.168.56.200', 22, 'root', 'r00tme', '/root/cp/logstash-5.6.3.tar.gz')
    sftp_remote_to_remote(remote_from, remote_to)


上面的代码是通过paramiko将远端的一个文件通过本机传输到远端。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值