python paramiko

 使用paramiko 上传文件到sftp服务器:

代码:

import paramiko
import types
from batchdb import *
__author__ = 'hp'

def LogSftp(files, sftp_type):
    conn = gen_db_connection()
    ip = str(get_para(conn, 'sftp', 'ip'))
    port = int(get_para(conn, 'sftp', 'port'))
    if not port:
        port = 22
    username = str(get_para(conn, 'sftp', 'username'))
    password = str(get_para(conn, 'sftp', 'password'))
    remote_path = str(get_para(conn, 'sftp', 'path'))
    return_code = True
    # if not os.path.exists(remote_path): os.mkdir(remote_path)
    if type(files) == types.ListType:
        pass
    else:
        files = [files]
    try:
        transport = paramiko.Transport((ip, port))
        transport.connect(username= username, password= password)
        sftp = paramiko.SFTPClient.from_transport(transport)
    except:
        log(conn,'sftp', 'Connect to server%s %s failed!'%(ip, port), '1' )
        return False
    try:
        sftp.chdir(remote_path)
    except:
        log(conn, 'sftp', 'chdir server-%s file path %s failed!'%(ip,remote_path), '1')
        return False

#  上传文件到服务器
    if sftp_type == 'put':
        for f in files:
            f_remote = os.path.split(f)[-1]
            #remo_file_path = remote_path + f_remote
            try:
                sftp.put(f, f_remote)
                log(conn, 'sftp', 'put log file %s to server-%s successfully!'%(f, ip),'0')
            except:
                return_code = False
                log(conn,'sftp', 'Put file %s to server-%s   failed! '%(f, ip),'1')

# 从服务器 下载文件到本地

# 注意的是这里的sftp服务上的路径为 sftp下的路径 
    elif sftp_type == 'get':
        sftp.get(f_remote_path, f_local_path)
    sftp.close()
    transport.close()
    conn.close()
    return return_code




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值