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

xiaoxiao2021-02-28  89

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

#!/usr/bin/python # -*- coding: UTF-8 -*- import pysftp import os cnopts1 = pysftp.CnOpts() cnopts1.hostkeys = None local_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 paramiko t=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/sh echo “OK, starting now…” cd /home/ExtractedData pwd sftp -b /dev/stdin user@ip_address <<EOF cd Desktop/my_folder pwd get 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 remotepath if [ "$#" -eq "5" ]; then IP=$1 USER=$2 PWD=$3 LOCAL=$4 REMOTE=$5 lftp -u ${USER},${PWD} sftp://${IP} <<EOF cd ${REMOTE} put ${LOCAL} bye EOF elif [ "$#" -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} bye EOF fi
转载请注明原文地址: https://www.6miu.com/read-37833.html

最新回复(0)