python练习 scp拷贝文件

由于要将文件上传到另一台服务器;所以试了下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[i]):
        file=os.path.join(dir,list[i])
        pool.aply_async(scp_file,(ip,file,file))
pool.close()
pool.join()

但是结果不尽人意啊。多进程没有起作用,一个文件也没有传送过去,why?????

由于我的场景是大量文件实时传过来,我要把它们传到其他服务器,顺便结合了前面的多进程

 

posted @ 2015-03-19 16:31  测试小开  阅读(1445)  评论(1)    收藏  举报