由于要将文件上传到另一台服务器;所以试了下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?????

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

 

相关文章:

  • 2021-10-30
  • 2021-07-16
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-26
  • 2021-09-04
猜你喜欢
  • 2021-06-12
  • 2021-10-05
  • 2022-12-23
  • 2021-11-29
  • 2021-12-28
  • 2022-03-07
  • 2021-07-26
相关资源
相似解决方案