Python 脚本:创建SFTP连接传输数据

来源:互联网 发布:日本综艺节目软件app 编辑:程序博客网 时间:2024/06/05 11:16

以下脚本不一定能成功运行:
1.Python脚本, 需要pysftp包

#!/usr/bin/python# -*- coding: UTF-8 -*-import pysftpimport oscnopts1 = pysftp.CnOpts()cnopts1.hostkeys = Nonelocal_path='c:\pysftptest.py'remote_path='/home/abc/pytest.py' with pysftp.Connection(host='123.123.123.123', username='abc', password='123456',cnopts=cnopts1) as sftp:    sftp.put(local_path, remote_path)    sftp.get(remote_path)    os.system('hadoop fs -put '+remote_path+' /user/hadoop/')

2. Python脚本,需要paramiko包

import paramikot=paramiko.Transport(('123.123.123.123',22))t.connect(username='abc',password='123456')sftp=paramiko.SFTPClient.from_transport(t)  # sftp = t.open_sftp_client()#sftp.get(...)#sftp.put(...)

3.shell 脚本

#!/bin/bash#!/bin/shecho “OK, starting now…”cd /home/ExtractedDatapwdsftp -b /dev/stdin user@ip_address <<EOFcd Desktop/my_folderpwdget filename.txt!sleep 30!pwd!hadoop fs -put /home/username/ExtractedData/ /demo!echo “OK, exiting now…”

4. shell 脚本,使用lftp

#!/bin/bash# upload file command: sh sftpupload.sh ip username password localfilepath remotepath# upload folder command: sh sftpupload.sh ip username password -d localfolderpath remotepathif [ "$#" -eq "5" ]; then    IP=$1    USER=$2    PWD=$3    LOCAL=$4    REMOTE=$5    lftp -u ${USER},${PWD} sftp://${IP} <<EOF    cd ${REMOTE}    put ${LOCAL}    byeEOFelif [ "$#" -eq "6" ]; then    IP=$1    USER=$2    PWD=$3    LOCAL=$5    REMOTE=$6    lftp -u ${USER},${PWD} sftp://${IP} <<EOF    cd ${REMOTE}    mirror -R ${LOCAL}    byeEOFfi