|
由于要将文件上传到另一台服务器;所以试了下python
1、首先了解了python如何调用scp,网络上要不是用pexpect交互输入密码,要不就是用paramiko,比较了下,应该paramiko方便些,性能也高一点
#!/usr/bin/python
#coding:utf-8
import paramiko
import multiprocessing
import os
def scp_file(ip,localfile,remotefile):
scp = paramiko.Transport((ip,22))
scp.connect(username = "username", password = "password")
sftp = paramiko.SFTPClient.from_transport(scp)
#将本地文件上传至远程
sftp.put(localfile,remotefile)
scp.close()
pool=multiprocessing.Pool(processes=4)
dir='/var/test'
list=os.listdir(dir)
for i in range(len(list)):
if os.path.isfile(list):
file=os.path.join(dir,list)
pool.aply_async(scp_file,(ip,file,file))
pool.close()
pool.join()
但是结果不尽人意啊。多进程没有起作用,一个文件也没有传送过去,why?????
由于我的场景是大量文件实时传过来,我要把它们传到其他服务器,顺便结合了前面的多进程
|
|
|