Python 拉取远程服务器资源到本地

因为功能需要,需要从远端服务器拉取文件资源到本地,写了一个简单脚本. 功能没有很复杂就不写相关解释了

import paramiko

def download_from_remote(remote_path, local_path):
    # 服务器连接信息
    host_ip = 'xxx.xx.xx.xxx'
    port = 22
    user_name = 'root'
    password = 'root'

    try:
        t = paramiko.Transport((host_ip, port))
        t.connect(username=user_name, password=password)  # 登录远程服务器
        sftp = paramiko.SFTPClient.from_transport(t)  # sftp传输协议

        for file_name in sftp.listdir(remote_path):
            if file_name.endswith('.xlsx'):
                src = remote_path + file_name
                des = local_path + file_name
                sftp.get(src, des)  # 下载文件
        t.close()
    except:
        print(IOError)
        remote_scp(host_ip, user_name, password)

if __name__ == '__main__':
    remote_path = '/data/app/test/'
    local_path = '/data/app//resources/'
    #判断文件是否存在
    createDirIfNotExists(local_path)
    # 下载远端文件到当前服务器
    download_from_remote(remote_path, local_path)

需要注意的地方是 sftp.get(src, des) 参数的路径一定要是 ‘文件地址 + 文件名’ (/data/app/test/aa.xlsx) 的格式 ; 否则会出现一个 os的异常,具体这里不在展示了

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值