python paramiko利用sftp上传目录到远程
来源:互联网 发布:大路口车流量数据 编辑:程序博客网 时间:2024/05/29 10:11
网上大部分都是上传文件,于是个人参照网上一些博客的内容,写了一个把windows上目录上传到远程linux的一个小程序。
下面是代码:
class ExportPrepare(object):
def __init__(self):
pass
def sftp_con(self):
t = paramiko.Transport((self.ip, self.port))
t.connect(username=self.username, password=self.password)
return t
# 找到所有你要上传的目录已经文件。
def __get_all_files_in_local_dir(self, local_dir):
all_files = list()
if os.path.exists(local_dir):
files = os.listdir(local_dir)
for x in files:
filename = os.path.join(local_dir, x)
print "filename:" + filename
# isdir
if os.path.isdir(filename):
all_files.extend(self.__get_all_files_in_local_dir(filename))
else:
all_files.append(filename)
else:
print '{}does not exist'.format(local_dir)
return all_files
# Copy a local file (localpath) to the SFTP server as remotepath
def sftp_put_dir(self):
try:
#本地test目录上传到远程root/usr/下面
local_dir = "c:/test"
remote_dir = "/root/usr/test"
t = self.sftp_con()
sftp = paramiko.SFTPClient.from_transport(t)
# sshclient
ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(self.ip, port=self.port, username=self.username, password=self.password, compress=True)
ssh.exec_command('rm -rf ' + remote_dir)
if remote_dir[-1] == '/':
remote_dir = remote_dir[0:-1]
all_files = self.__get_all_files_in_local_dir(local_dir)
for x in all_files:
filename = os.path.split(x)[-1]
remote_file = os.path.split(x)[0].replace(local_dir, remote_dir)
path = remote_file.replace('\\', '/')
# 创建目录 sftp的mkdir也可以,但是不能创建多级目录所以改用ssh创建。
tdin, stdout, stderr = ssh.exec_command('mkdir -p ' + path)
print stderr.read()
remote_filename = path + '/' + filename
print u'Put files...' + filename
sftp.put(x, remote_filename)
ssh.close()
except Exception, e:
print e
if __name__=='__main__':
export_prepare = ExportPrepare()
export_prepare.sftp_put_dir()
比较匆忙,不足之处可以指出,共同进步。
- python paramiko利用sftp上传目录到远程
- python用paramiko模块上传本地目录到远程目录
- [Python]paramiko实时获取命令执行输出及sftp上传
- python下paramiko模块学习之三:上传批量文件到远程主机
- python paramiko模块实现远程文件上传文件, 执行命令
- python (paramiko模块) 利用id_rsa登陆远程的服务器
- python利用paramiko连接远程服务器执行命令
- python paramiko 通过密钥文件登陆ssh和听过sftp上传文件
- 利用python模块paramiko在CentOS 6.3 64上搭建SFTP环境
- (转)python中paramiko ssh sftp使用
- Python paramiko模块之SSH SFTP
- Python + Paramiko实现sftp文件上传下载
- python paramiko模块实现sftp上传下载文件
- Python-远程管理-Paramiko实现ssh&sftp
- Python paramiko SFTP协议上传下载文件
- Python + Paramiko实现sftp文件上传下载
- python利用watchdog监控目录并上传到ftp
- sftp远程上传文件到阿里云的linux服务器
- PHP 闭包函数应用
- 常见的一些bug整理
- MySQL存储过程详解 mysql 存储过程
- 定义类注意!!!!
- 让python同时兼容python2和python3的8个技巧分享
- python paramiko利用sftp上传目录到远程
- jvm调优总结---jvm参数配置
- JFinal+FreeMarker+Tomcat下ajax跨域请求
- Android实现下载图片,视频,APK功能等功能
- MBProgressHUD的基本用法
- JSON解析
- (转) 卷积的意义
- ORA-01775: 同义词的循环链
- 排列的字典序问题