Mar-21-2018, 11:27 AM
#!/usr/bin/python import threading import sys import os import unidecode import telnetlib import time import re import datetime from time import sleep start = time.time() user = 'eciecidslam' password = 'Hi-FOCuS' today = datetime.date.today() start = time.time() ecienvfile = open('ecienvstatus.txt','w') def open_telnet(host): timeout = 120 try: session = telnetlib.Telnet(host, 23, timeout) #session.set_debuglevel(2) time.sleep(1) session.read_until(b"Login :") session.write((user+"\r").encode('ascii')) time.sleep(2) session.read_until(b"Password :",2) session.write((password + "\r").encode('ascii')) time.sleep(2) session.read_until(b"MCR64A >") session.write("fan_status".encode('ascii') + b"\r") fan_output = session.read_until("MCR64A >".encode('ascii'), timeout ) session.write("temp_readings".encode('ascii') + b"\r") temp_output = session.read_until("MCR64A >".encode('ascii'), timeout ) session.write =("logout" +b"\r") session.close() for line in fan_output.decode('utf-8').split('\n')[1:]: if 'Fans' in line: #print(line) new_status = line.split(':')[1] if 'NORMAL' in new_status: status = 'Normal' if 'fail' in new_status: status = 'Fan_Fail' for temp_status in temp_output.decode('utf-8').split('\n')[4:]: tem_status = re.sub('\s{2,}', ' ', temp_status) Dirty,Temperature,Sensation = tem_status.split('|')[3],tem_status.split('|')[4],tem_status.split('|')[5] print('{}\t {}\t {}\t {}\t {}'.format(host,status,Dirty,Temperature,Sensation)) ecienvfile.write('{} {} {} {} {}\n'.format(host,status,Dirty,Temperature,Sensation)) sr_no +=1 except Exception as excp: pass def create_threads(): threads = [] with open('ecienv.txt','r') as ipfile: for sr_no, line in enumerate(ipfile, start=1): host = line.strip() th = threading.Thread(target = open_telnet ,args = (host,)) th.start() threads.append(th) for thr in threads: thr.join() if __name__ == "__main__": create_threads() print ("Exiting the program") #outfile.close() ecienvfile.close() print('It took', time.time()-start, 'seconds.')where as without threading, shows output
#!/usr/bin/python import threading import sys import os import unidecode import telnetlib import time import re import datetime from time import sleep start = time.time() user = 'eciecidslam' password = 'Hi-FOCuS' today = datetime.date.today() start = time.time() ecienvfile = open('ecienvstatus.txt','w') #def open_telnet(host): timeout = 120 with open('ecienv.txt','r') as ipfile: for sr_no, line in enumerate(ipfile, start=1): host = line.strip() #print(host) try: #print(host) session = telnetlib.Telnet(host, 23, timeout) #session.set_debuglevel(2) time.sleep(1) session.read_until(b"Login :") session.write((user+"\r").encode('ascii')) time.sleep(2) session.read_until(b"Password :",2) session.write((password + "\r").encode('ascii')) time.sleep(2) session.read_until(b"MCR64A >") session.write("fan_status".encode('ascii') + b"\r") fan_output = session.read_until("MCR64A >".encode('ascii'), timeout ) session.write("temp_readings".encode('ascii') + b"\r") temp_output = session.read_until("MCR64A >".encode('ascii'), timeout ) session.write =("logout" +b"\r") session.close() for line in fan_output.decode('utf-8').split('\n')[1:]: if 'Fans' in line: #print(line) new_status = line.split(':')[1] if 'NORMAL' in new_status: status = 'Normal' if 'fail' in new_status: status = 'Fan_Fail' if 'not' in new_status: status = 'No_Fan' #print(status) for temp_status in temp_output.decode('utf-8').split('\n')[4:]: tem_status = re.sub('\s{2,}', ' ', temp_status) Dirty,Temperature,Sensation = tem_status.split('|')[3],tem_status.split('|')[4],tem_status.split('|')[5] print('{}\t {}\t {}\t {}\t {}'.format(host,status,Dirty,Temperature,Sensation)) #ecienvfile.write('{} {} {} {} {}\n'.format(host,status,Dirty,Temperature,Sensation)) sr_no +=1 except Exception as excp: pass