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

