Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os,math
- from datetime import *
- thor = raw_input("Enter the name of the BitTorrent Sync debug log file: ")
- odin = raw_input("Enter the name of the folder where synced files are stored: ")
- report = open("report.log",'w');
- sync_log = open(thor,'r');
- fn = open("fn.log",'w');
- pre_st = open("pre_st.log",'w');
- pre_et = open("pre_et.log",'w');
- report.write('Name of the files & corresponding no of chunks' + '\n')
- report.write('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' + '\n')
- i=0
- for eachline in sync_log:
- if 'Got file from remote' in eachline:
- i=i+1
- fn.write(str(eachline[88:135]) + ' ' + str(eachline[162:165]) + '\n')
- report.write(str(eachline[88:135]) + ' ' + str(eachline[162:165]) + '\n')
- elif 'event = "IN_CREATE"' in eachline:
- pre_st.write(str(eachline[43:90] + ' ' + eachline[10:22]) + '\n')
- elif 'Finished downloading file' in eachline:
- pre_et.write(str(eachline[50:97] + ' ' + eachline[10:22]) + '\n')
- report.write('\n')
- report.write('Total no of files' + '\n')
- report.write('~~~~~~~~~~~~~~~~~' + '\n')
- report.write(str(i) + '\n' + '\n')
- report.write('Size of the files (in bytes)' + '\n')
- report.write('~~~~~~~~~~~~~~~~~~~~~~~~~~~~' + '\n')
- dir = odin
- fs = open("fs.log",'w');
- for f in os.listdir(dir):
- if os.path.isfile(dir + '/' + f) and len(f) == 47:
- fs.write(str(os.path.getsize(dir + '/' + f)) + '\n')
- report.write(f + ' ' + str(os.path.getsize(dir + '/' + f)) + '\n')
- report.write('\n')
- report.write('Size of the chunks of the files (in bytes)' + '\n')
- report.write('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' + '\n')
- fs = open("fs.log",'r');
- fn = open("fn.log",'r');
- for eachline1, eachline2 in zip(fs, fn):
- chunk_size = float(eachline1)/float(eachline2[48:51])
- report.write(eachline2[:47] + ' ' + "%.2f" % chunk_size + '\n')
- report.write('\n')
- report.write('Sync starting time' + '\n')
- report.write('~~~~~~~~~~~~~~~~~~' + '\n')
- pre_st = open("pre_st.log", 'r')
- st = open("st.log", 'w')
- lineList = pre_st.readlines()
- lineList.sort()
- for line in lineList:
- st.write(line)
- report.write(line)
- report.write('\n')
- pre_st.close()
- report.write('Sync ending time' + '\n')
- report.write('~~~~~~~~~~~~~~~~' + '\n')
- pre_et = open("pre_et.log", 'r')
- et = open("et.log", 'w')
- lineList = pre_et.readlines()
- lineList.sort()
- for line in lineList:
- et.write(line)
- report.write(line)
- report.write('\n')
- pre_et.close()
- report.write('Time required for syncing (in seconds)' + '\n')
- report.write('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' + '\n')
- st = open("st.log",'r');
- et = open("et.log",'r');
- tt = open("tt.log",'w');
- for eachline1, eachline2 in zip(st, et):
- if eachline1[:47] == eachline2[:47]:
- s_t=datetime.strptime(eachline1[48:60], "%H:%M:%S.%f")
- e_t=datetime.strptime(eachline2[48:60], "%H:%M:%S.%f")
- diff=e_t-s_t
- tt.write(str(diff.seconds) + '\n')
- report.write(eachline1[:47] + ' ' + str(diff.seconds) + '\n')
- report.write('\n')
- report.write('Average syncing speed (in KBPS)' + '\n')
- report.write('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' + '\n')
- fs = open("fs.log",'r');
- tt = open("tt.log",'r');
- ts = open("ts.log",'w');
- for eachline1, eachline2 in zip(fs, tt):
- kbps = float(eachline1)/float(eachline2)/1024
- ts.write("%.2f" % kbps + '\n')
- report.write("%.2f" % kbps + '\n')
- report.write('\n')
- report.write('Some statistics regarding syncing speed' + '\n')
- report.write('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' + '\n')
- ts = open("ts.log",'r');
- sum=0
- sumsq=0
- for eachline in ts:
- sum=sum+float(eachline)
- sumsq=sumsq+float(eachline)*float(eachline)
- mean=sum/i
- sd=math.sqrt((sumsq/i)-mean*mean)
- report.write("Mean: %.3f" % mean + '\n')
- report.write("SD: %.3f" % sd)
- fs.close()
- fn.close()
- st.close()
- et.close()
- tt.close()
- ts.close()
- os.remove("pre_st.log")
- os.remove("pre_et.log")
- os.remove("fs.log")
- os.remove("fn.log")
- os.remove("st.log")
- os.remove("et.log")
- os.remove("tt.log")
- os.remove("ts.log")
- raw_input("\nThe log is analysed & the report is stored in report.log.")
- raw_input("\nPress the enter key to exit.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement