美文网首页
python--批处理--批量获取模块

python--批处理--批量获取模块

作者: w_dll | 来源:发表于2020-09-09 09:19 被阅读0次

根据我之前的那个小改了下;
后面计划是将原本的主模块改为执行模块;
重新设计一个主模块,然后通过参数,指定各个子模块。

#!/usr/bin/python
# -*- coding:utf-8 -*-

import threading
import time
import sys
import os


class myThread (threading.Thread):
  def __init__(self, threadID, name, target_file, save_dir):
    threading.Thread.__init__(self)
    self.threadID = threadID
    self.name = name
    self.target_file = target_file
    self.save_dir = save_dir
  def run(self):
    this_str="start :" + self.name
    print (this_str)
    try :
      os.system(('scp -o ConnectTimeout=5 -q -r root@%s:%s %s') % (str(self.name), str(self.target_file), str(self.save_dir)))
    except :
      print ('connect fail !')
      return False
    else :
      this_save_dir=str(self.save_dir)+'/'+str(self.name)
      res = os.popen(('cd %s && ls -l') % (str(self.save_dir))).read()
      this_str = "==> " + self.name + '\n' + str(res) + '\n\n'
      print (this_str)

target_file = sys.argv[1]
save_dir = sys.argv[2]
os.system(('[ ! -d "%s" ] && mkdir -p "%s"') % (str(save_dir), str(save_dir)))

if __name__ == '__main__':
  ip_lists = []
  ip_file = open('ip.txt', 'rb')
  for li in ip_file :
    if li and '#' not in li :
      li = str(li).split()
      li = li[0]
      ip_lists.append(str(li))
  ip_file.close()

  #max_tasks = input('请输入并行个数:')
  max_tasks = 10
  while ip_lists :
    this_ip_lists = []
    for li in range(max_tasks) :
      if ip_lists :
        this_ip = ip_lists.pop(0)
        this_ip_lists.append(str(this_ip))
    this_threads = []
    for ip in this_ip_lists :
      this_save_dir=str(save_dir)+'/'+str(ip)
      os.system(('[ ! -d "%s" ] && mkdir -p "%s"') % (str(this_save_dir), str(this_save_dir)))
      t_name = str(ip)
      t_name = myThread(t_name, t_name, target_file, this_save_dir)
      this_threads.append(t_name)
    [ thr.start() for thr in this_threads ]
    [ thr.join() for thr in this_threads ]
    print('-----------------------------------------')

第一个参数为远程机器上要获取的文件,第二个参数为想要保存到哪里


相关文章

  • python--批处理--批量获取模块

    根据我之前的那个小改了下;后面计划是将原本的主模块改为执行模块;重新设计一个主模块,然后通过参数,指定各个子模块。...

  • python--批处理--批量发送文件

    目前写这个的目的是为了实现,可以批处理发送的一个模块;后期将各个模块整合到一起,实现更加丰富的功能,类似于ansi...

  • 03 批处理

    02 批处理 在批处理中,我们可以对命令进行批量操作,并且可以引入一些逻辑处理的环节。在windows下,批处理脚...

  • 十二,MyBatis进行批处理

    本节学习利用集合保存批处理数据,再利用批处理sql(使用foreach进行遍历)一次性进行数据的批处理 一,批量新...

  • 18 批量构造器

    批量构造器[仅限ptgui Pro] 与批量缝合器相结合,批量生成器是一种批量缝合大量全景图的工具。批处理生成器由...

  • 曾经踩过的坑:批处理

    批处理,顾名思义,批处理就是对某对象进行批量的处理。本来并不掌握这块,但由于经常被朋友捉弄,也逐渐了解了一些批处理...

  • 获取windows批处理时间戳

    获取批处理命令时间戳,最终格式为yyyyMMddHHmmSS 获取结果

  • python--批处理--多进程

    2020-07-23 更新,增加线程自定义 初始

  • BAT批处理程序

    批处理程序中获取路径 批处理程序 D:\Desktop\echoPath.bat 在D:\Downloads 文件...

  • shell--批处理(执行、发送、获取)模块

    前文请见https://www.jianshu.com/p/b7a35769114a[https://www.ji...

网友评论

      本文标题:python--批处理--批量获取模块

      本文链接:https://www.haomeiwen.com/subject/nmosektx.html