python 遠程統計文件
#!/usr/bin/python#encoding=utf-8import timeimport osimport paramikoimport 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('/n') count=int(stdout.read().strip('/n')) endtime=time.time() caltime=endtime-starttime result=ip+','+filepath.strip('/n')+','+str(count)+','+str(caltime)+'/n' return result except: result=ip+','+filepath.strip('/n')+','+'failed'+'/n' return result#讀取ip、密碼,ip.csv每一行為192.168.1.1,111111,/var 第一列是ip地址,第二例是密碼,第三列是路徑iplist=open('ip.csv').readlines()#存入統計結果ipresultlist=['IP,FILEPATH,COUNT,TIMECOST/n']#多進程統計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()
以上所述就是本文的全部內容了,希望大家能夠喜歡。
新聞熱點
疑難解答