zoukankan      html  css  js  c++  java
  • python 远程统计文件

    #!/usr/bin/python
    #encoding=utf-8
    import time
    import os
    import paramiko
    import multiprocessing
    
    #统计文件数量
    def get_total(ip,password,filepath):
        paramiko.util.log_to_file('paramiko.log')
        ssh=paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        try:
            starttime=time.time()
            ssh.connect(hostname=ip,port=22,username='root',password=password)
            #stdin,stdout,stderr = ssh.exec_command(str(len(os.listdir(filepath))))
            stdin,stdout,stderr = ssh.exec_command('cd filepath ;ls |wc -l')
            #print ip,filepath,stdout.read().strip('
    ')
            count=int(stdout.read().strip('
    '))
            endtime=time.time()
            caltime=endtime-starttime
            result=ip+','+filepath.strip('
    ')+','+str(count)+','+str(caltime)+'
    '
            return result
        except:
            result=ip+','+filepath.strip('
    ')+','+'failed'+'
    '
            return result
    #读取ip、密码,ip.csv每一行为192.168.1.1,111111,/var 第一列是ip地址,第二例是密码,第三列是路径iplist=open('ip.csv').readlines()
    #存入统计结果
    ipresultlist=['IP,FILEPATH,COUNT,TIMECOST
    ']
    #多进程统计
    pool=multiprocessing.Pool(processes=6)
    #循环每一行进行统计
    for ip in iplist:
        ipin=ip.split(',')
        pool.apply_async(ipresultlist.append(get_total(ipin[0],ipin[1],ipin[2])))
    pool.close()
    pool.join()
    #写入文件
    fp=open('tongji_log'+'_'+time.strftime('%Y%m%d%H%M%S',time.localtime())+'.csv','a+')
    fp.writelines(ipresultlist)
    fp.close()
      
  • 相关阅读:
    遇到项目上面有叉,但是找不到错误的原因
    遇到build的问题
    遇到scan configurtation CDT builder等的错误
    遇到attemp to invoke virtual method
    遇到looper之类关于消息循环的
    Linux与Windows信息交互快捷方法
    并行查询
    PostgreSQL 事务管理的MVCC
    Linux安装memcached
    Linux 安装 Redis
  • 原文地址:https://www.cnblogs.com/qq916653496/p/4500337.html
Copyright © 2011-2022 走看看