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
