python 遠程統(tǒng)計文件
#!/usr/bin/python
#encoding=utf-8
import time
import os
import paramiko
import multiprocessing
#統(tǒng)計文件數(shù)量
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()
#存入統(tǒng)計結(jié)果
ipresultlist=['IP,FILEPATH,COUNT,TIMECOST\n']
#多進程統(tǒng)計
pool=multiprocessing.Pool(processes=6)
#循環(huán)每一行進行統(tǒng)計
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()
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

