Python3ред рдорд▓реНрдЯреА-рд╡реЗрдВрдбрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рди

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛


рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рди!

рдореИрдВ рдПрдХ рдмрдбрд╝реЗ рджреВрд░рд╕рдВрдЪрд╛рд░ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдореЗрд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдПрдХреНрд╕реЗрд╕ рд╕реНрд╡рд┐рдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рдпрд╣ рд▓реЗрдЦ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрд╖ рдирд╛рдорд╛рдВрдХрди рдХреА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рд░рдЪрдирд╛ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рд▓реЗрдЦ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рддрд╣рдд рдХреЛрдб рдХрд╛ рдПрдХ рдмреНрд▓реЙрдХ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рдиреАрдЪреЗ рдХреНрд▓рд┐рдкрд┐рдВрдЧ рдФрд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╡рд░рдг рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реИред

рдХрд╛рд░реНрдп


Python3 рдХрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реВрдЪреА рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рдХреНрд░реЗрддрд╛, рдЖрд╡рд╢реНрдпрдХ рдХрдорд╛рдВрдб рджреЗрдВ, рд▓реЙрдЧ рдХрд░реЗрдВред

рдЕрд╕рд▓ рдореЗрдВ рдореИрдВ рдпрд╣ рдХреИрд╕реЗ рдЖрдпрд╛


рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдиреЗ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рддреБрд░рдВрдд рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХреЗрдВрджреНрд░реАрдХреГрдд рдкреНрд░рд╢рд╛рд╕рди рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдиреБрдЕрд▓ рдХрд╛рдо рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд╛рд╕ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдмреИрд╢, рдкрд░реНрд▓ред

рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдХреБрдЫ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЬрд╝рд░реВрд░реА рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдЬрдЧрд░ рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдЕрдкрдиреЗ рдХреМрд╢рд▓ рдХреЛ рдЙрдиреНрдирдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рдЙрдкрдХрд░рдг рдХреЛ рдПрдХ рд╣рдереМрдбрд╝рд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди, рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди)ред рдЕрдЧрд░ рджрд┐рд▓рдЪрд╕реНрдкреА рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИ рддреЛ рдореИрдВ рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред

Googling рдФрд░ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдвреВрдВрдврдирд╛ (рдЬреИрд╕реЗ рдХрд┐ рдордВрдЪреЛрдВ рдкрд░ рдпрд╣ рд╕рд╡рд╛рд▓ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЧрд▓рдд рдерд╛), рдореИрдВрдиреЗ рдЕрдкрдиреА рдЦреБрдж рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрд╡рд┐рдЪ рд╣реИрдВ:

  • Raisecom
  • рдХреНрдпреВрдЯреЗрдХ рд░реЗрд╡ред 1.0
  • рдХреНрдпреВрдЯреЗрдХ рд░реЗрд╡ред 2.0 (рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдЕрдВрддрд░)
  • ELTEX
  • рдбреА-рд▓рд┐рдВрдХ
  • рд╕реНрдкреЙрди рдлреНрд░реЗрдВрдХрд╕реНрдЯреАрди рд╕реНрд╡рд┐рдЪ Qtech Rev 1.0 рд╕реЗ рдПрдХ рдереВрдерди рдХреЗ рд╕рд╛рде рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ, рдФрд░ Raisecom рд╕реЗ рд▓реЛрд╣рд╛ рд╣рдо рдЗрд╕реЗ ROS рдХрд╣реЗрдВрдЧреЗ

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░реЗрдВ:

import telnetlib import time import os import sys import getpass import pexpect from telnetlib import Telnet import datetime import subprocess 

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╣рдо рд╡рд┐рдХреНрд░реЗрддрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рджреЛ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛:

1) рдорд╛рди рд▓реЗрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рдХреНрд░реЗрддрд╛ рд╣реИ (рд▓реЙрдЧрд┐рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рдирд┐рдордВрддреНрд░рдг рдкрд░) рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИ: Qtech (рд▓реЙрдЧрд┐рди :), Raisecom рдФрд░ ROS (рд▓реЙрдЧ рдЗрди :), рдПрд▓реНрдЯреЗрдХреНрд╕ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо :), рдбреА-рд▓рд┐рдВрдХ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо)ред

2) рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж - рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкрд╣рд▓реЗ рдЖрдЗрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд┐рдирд╛ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдмреЗрд╣рддрд░ рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдо рдХрд┐рд╕ рд╕реНрд╡рд┐рдЪ рдкрд░ рд╣реИрдВред

рд╕рдорд╛рд░реЛрд╣
 def who_is(): #   global ver_status global sab_versus global versus sab_versus='' ver_status='' versus='' #  a = 'Serial No.:1405' # #qtech rev1 d = 'Command: show switch' # #d-link f = 'Raisecom Operating System Software' # #raisecom h = 'QOS' # #raisecom-qtech j = 'MES1124M' # #eltex k = 'eltex' # #eltex n = 'Build245' #qtech2.0 parser=open('servers_&_log/ver.txt', 'r') #  for line in parser.readlines(): line1 = line.find(a) line4 = line.find(d) line5 = line.find(f) line6 = line.find(h) line7 = line.find(j) line8 = line.find(k) line10 = line.find(n) if line1 != -1: ver_status='qtech_rev_1.0' if line4 != -1: ver_status='d-link' if line5 != -1: ver_status='raisecom' if line6 != -1: ver_status='raisecom-qtech' sab_versus=1 if line7 !=-1: ver_status='eltex' if line8 !=-1: ver_status='eltex' if line10 != -1: ver_status = 'qtech_rev_2.0' time.sleep(0.1) parser.close() os.remove('servers_&_log/ver.txt') return ver_status,sab_versus 


рдкреВрд░реЗ рд╕рдорд╛рд░реЛрд╣ рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рдХреЗ рддрд╣рдд рд╣реИред рд╣рдо рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкреВрд░реА рд▓рд┐рдкрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ:

 global ver_status global sab_versus global versus 

рд╡реИрд░рд┐рдПрдмрд▓ a, d, f, h, j, k, n рдЙрди рдХреАрд╡рд░реНрдб рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдмрд╛рдж рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХреЗ рдореЙрдбрд▓ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗред

 a = 'Serial No.:1405' # #qtech rev1 d = 'Command: show switch' # #d-link f = 'Raisecom Operating System Software' # #raisecom h = 'QOS' # #raisecom-qtech j = 'MES1124M' # #eltex k = 'eltex' # #eltex n = 'Build245' #qtech2.0 

Ver.txt рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕реЗ рд▓рд╛рдЗрди рдмрд╛рдп рд▓рд╛рдЗрди рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдХреАрд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ, рдФрд░ рд╣рдо рд╢рд╛рдЦрд╛рдПрдБ рдмрдирд╛рдПрдВрдЧреЗ, рддреЛ рдЦреЛрдЬ () рдлрд╝рдВрдХреНрд╢рди -1 рджреЗрддрд╛ рд╣реИред

 parser=open('servers_&_log/ver.txt', 'r') #  for line in parser.readlines(): line1 = line.find(a) line4 = line.find(d) line5 = line.find(f) line6 = line.find(h) line7 = line.find(j) line8 = line.find(k) line10 = line.find(n) if line1 != -1: ver_status='qtech_rev_1.0' 

...

рдореИрдВ рдХреЛрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реВрдВ, рдмрд╛рдХреА рдКрдкрд░ рдХреЗ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рдиреАрдЪреЗред

рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХреА рдЬрд╛рдПрдЧреАред рд╕рднреА рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж рдФрд░ рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ver.txt рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред

рдореБрдЦреНрдп рдЪрд░ рдХреА рдШреЛрд╖рдгрд╛, рдореБрдЦреНрдп рд▓реВрдк рдХрд╛ рд╢рд░реАрд░
 user='user' password='password' komm=open('servers_&_log/komm.txt') log=open('servers_&_log/log.txt','a') ######### counter_komm=0 counter_dlink=0 counter_qtech=0 counter_eltex=0 counter_raisecom=0 counter_ROS=0 counter_qtech1_0=0 counter_qtech2_0=0 ########## for host in komm.readlines(): print('connect....',host) vend = '' response = os.system('ping -c 1 ' + host) verinfo = open('servers_&_log/ver.txt', 'w') ver_status = '' sab_versus = '' if response == 0: telnet = pexpect.spawn('telnet ' + host,timeout=40) vend = telnet.expect(['login:', 'Login:', 'User Name:', 'Username']) telnet.close() tn = Telnet(host.replace('\n', ''), 23,30) try: print('Ok'+'\n') tn.read_until(b':') tn.write((user +'\n').encode('ascii')) tn.read_until(b':') tn.write((password + '\n').encode('ascii')) time.sleep(3) tn.read_until(b'#',timeout=20) except: print('connection refused' + '\n') f = open('servers_&_log/log.txt', 'a') print(host, 'connection refused', file=log) print('#' * 100, host, file=log) ###   ######################################################### if vend == 0:#    Qtech tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=verinfo) verinfo.close() who_is() ... 


рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рд╢рд░реАрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЪрд░ рдХреЛ рдкрд░реЗрд╢рд╛рди рди рдХрд░реЗрдВ рдФрд░ рд╕реЗрдЯ рдХрд░реЗрдВ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд░рдХреНрд╖рд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдФрд░ рд╕реНрд╡рд┐рдЪ рдХреА рд╕реВрдЪреА рдЦреЛрд▓реЗрдВ

 komm=open('servers_&_log/komm.txt') log=open('servers_&_log/log.txt','a') 

рд╣рдо рд▓реВрдк рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реНрд╡рд┐рдЪ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рдкрдврд╝реЗрдВ

 for host in komm.readlines(): print('connect....',host) vend = '' 

рд╣рдо рдЗрд╕реЗ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ

 response = os.system('ping -c 1 ' + host) 

рдпрджрд┐ рдпрд╣ pexpect рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдЯреЗрд▓рдиреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣рд╛рдВ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдордВрддреНрд░рдг рдкрд░ рдкрд╣рд▓рд╛ рдЪреЗрдХ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред

 if response == 0: telnet = pexpect.spawn('telnet ' + host,timeout=40) vend = telnet.expect(['login:', 'Login:', 'User Name:', 'Username']) telnet.close() tn = Telnet(host.replace('\n', ''), 23,30) 

рд╡реЗрд░рд┐рдПрдмрд▓ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ 0 рд╕реЗ 3 рдЗрдирдХреНрд▓реВрд╕рд┐рд╡ рд╕реЗ рд╡реИрд▓реНрдпреВ рдорд┐рд▓реЗрдЧреА, рдФрд░ рдпрд╣ рд▓реЙрдЧ рдЗрди рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдЧреЗ рдХреА рдмреНрд░рд╛рдВрдЪ рдмрдиреЗрдЧреАред

рдЗрд╕ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рд╕реЗ, рдПрдХ рдЪреМрдХрд╕ рдкрд╛рдардХ рдпрд╣ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕реНрд╡рд┐рдЪ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рддреБрд░рдВрдд рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЯреЗрд▓рдиреЗрдЯрд▓рд┐рдм рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдкрд░, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдордп-рд╕рдордп рдкрд░ рдЕрдЯрдХ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рдЧрд┐рд░ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдпрд╣ рдмреИрд╕рд╛рдЦреА рдмрд╣реБрдд рдорджрдж рдХрд░рддреА рд╣реИред

рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯреЗрд▓рдиреЗрдЯрд▓рд┐рдм рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЗрд╡рд▓ рдкреБрди: рд╕рдВрдпреЛрдЬрди рдХрд░рддреЗ рд╣реИрдВред

рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдЧрд┐рд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдКрдкрд░ рдХреА рдЬрд╛рдБрдЪ рдХреА рдХрд┐ рд╕реНрд╡рд┐рдЪ рд╕реБрд▓рдн рд╣реИ, рдФрд░ рдПрдХ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╕реНрд╡рд┐рдЪ рдХреЗ рдХрд╛рд░рдг рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реБрдХрд╛рд╡рдЯ рдХреЛ рдмрд╛рд╣рд░ рдХрд░реЗрдВ, рдмреНрд▓реЙрдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХреЛрд╢рд┐рд╢ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рдкреЗрдЯреЗрдВред

рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛ рдЬрдм 100 рд╕реНрд╡рд┐рдЪ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдЦреБрдж рдХреЛ рдЕрдВрджрд░ рдирд╣реАрдВ рдЖрдиреЗ рджрд┐рдпрд╛ред

 try: print('Ok'+'\n') tn.read_until(b':') tn.write((user +'\n').encode('ascii')) tn.read_until(b':') tn.write((password + '\n').encode('ascii')) time.sleep(3) tn.read_until(b'#',timeout=20) except: print('connection refused' + '\n') f = open('servers_&_log/log.txt', 'a') print(host, 'connection refused', file=log) print('#' * 100, host, file=log) 

...
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ рдФрд░ рд╣рдо рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛,
рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рднреА рдХреЛрд▓рди рдкреНрд░реЙрдореНрдкреНрдЯ рдПрдХ рдХреЛрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрд╕рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

 tn.read_until(b':') 

рд╣рдо рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж

 tn.write((user +'\n').encode('ascii')) 

рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рдХреЛрд▓рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ

 tn.read_until(b':') 

рдкрд╛рд╕рд╡рд░реНрдб рдбрд╛рд▓реЗрдВ

 tn.write((password + '\n').encode('ascii')) 

рдФрд░ рд╣рдо 3 рд╕реЗрдХрдВрдб рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ (рдЖрд░рд╛рдо рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдордиреЗ рдЗрддрдирд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ)

 time.sleep(3) 

рдирд┐рдордВрддреНрд░рдг рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж

 tn.read_until(b'#',timeout=20) 

рдпрд╣рд╛рдВ рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдо рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рд╕реНрддрд░ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред

 if vend == 0:#    Qtech tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=verinfo) verinfo.close() who_is() 

рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рд╣рдо Qtech рдХреЛ рдорд┐рд▓ рдЧрдП рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝реЗрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдореЗрдВ qtech рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ рдЬреЛ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдореЗрдВ рднрд┐рдиреНрди рд╣реИрдВ, рдлрд┐рд░ рднреА рд╣рдореЗрдВ рд╕рд╛рдордВрдЬрд╕реНрдп рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╢реЛ рдХреЛ рдХрдорд╛рдВрдб рджреЗрддреЗ рд╣реИрдВ, рд╕рднреА рдЖрдЙрдЯрдкреБрдЯ рдХреЛ ver.txt рдлрд╛рдЗрд▓ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ
рдФрд░ who_is () рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд╢реЛ рдХреНрдпреВ рдЯреАрдо рд╕рднреА Qtech, Raisecom, Eltex рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реИ,

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдбреА-рд▓рд┐рдВрдХ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рд╢реЛ рд╕реНрд╡рд╛рдЗрдЪ рдХрд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЪрддреБрд░ рд╣реИрдВ рдФрд░ рд╡реНрдпрд░реНрде рдореЗрдВ рдПрдХ рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреА рдХрдерд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкреЗрд╢ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

 if vend == 3:#   D-link tn.write(('show sw' + '\n').encode('ascii')) tn.write(('a' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=verinfo) verinfo.close() who_is() 

рддреЛ рддреБрд░рдВрдд, рд╢реЛ рд╕реНрд╡рд╛рдЗрдЪ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдЫреЛрдЯреА рд╕реА рдЯрд┐рдкреНрдкрдгреА, рд╕реНрд╡рд┐рдЪ рдЕрдзреВрд░реА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрдЧреЗ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдХреБрдВрдЬреА рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдлрд┐рд░ рдкреВрд░реА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдП" рд╡рд░реНрдг рднреЗрдЬрддреЗ рд╣реИрдВред

 tn.write(('a' + '\n').encode('ascii')) 

рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреНрд▓рд┐рдкреИрдбрд┐рдВрдЧ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд┐рдХреНрд░реЗрддрд╛ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ 99% рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рд╕реНрд╡рд┐рдЪ рдХреЗ рдореЙрдбрд▓ рдХреА рд╕рд╣реА рдкрд╣рдЪрд╛рди рдХреА рд╣реИ рдФрд░ рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд╡рд┐рдЪ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрджреЗрд╢реЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рд╣реИред

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмреНрд▓реЙрдХ
 ... elif ver_status == 'qtech_rev_1.0': tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) counter_qtech1_0+=1 komand_qtech1_0=open('servers_&_log/komand_qtech_ver1.0.txt') for kommand in komand_qtech1_0.readlines(): tn.write((kommand.replace('\n', '') + '\n').encode('ascii')) tn.write(('exit' + '\n').encode('ascii')) print(tn.read_all().decode('ascii'), file=log) print('   qtech1.0') print('Qtech rev1.0 ' + host, file=log) print('#' * 100, file=log) ################################################################################ elif ver_status == 'qtech_rev_2.0': tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) counter_qtech2_0+=1 komand_qtech2_0=open('servers_&_log/komand_qtech_ver2.0.txt') print('   qtech2.0') for kommand in komand_qtech2_0.readlines(): tn.write((kommand.replace('\n', '') + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) print('Qtech rev2.0 ' + host, file=log) print('#' * 100, file=log) ... 


рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ ver_status рдЪрд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЖрдЧреЗ рдХреЗ рдХрд╛рдо рдХреЛ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреМрди рд╕рд╛ рд╕реНрд╡рд┐рдЪ рд▓рд╛рдЗрди рдкрд░ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕реНрд╡рд┐рдЪ рдХреЛ рдХрдорд╛рдВрдб рд╢реЛ рд╡реЗрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рд▓реЙрдЧ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рдбреА-рд▓рд┐рдВрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХрдорд╛рдВрдб рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ)

 tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) 

рдЧреИрд░-рдЕрдиреБрд░реВрдкрддрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреЛ рд░рдЦрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
 counter_qtech1_0+=1 

рд╣рдо рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╛рдЗрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ
 komand_qtech1_0=open('servers_&_log/komand_qtech_ver1.0.txt') 

рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдХреНрд░рдо рд╡реИрд╕рд╛ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕рд╛ рдХрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рджрд░реНрдЬ рдХрд░реЗрдЧрд╛

рдПрдХ рдЙрджрд╛рд╣рд░рдг:

conf
vlan 2525
name SPD
int ethe 1/1
sw mode access
sw acc vl 2525
exit
exit
save
y

рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реИ - рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреЛ рддрдм рддрдХ рдкрдврд╝рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд▓рд╛рдЗрдиреЗрдВ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ

 for kommand in komand_qtech1_0.readlines(): tn.write((kommand.replace('\n', '') + '\n').encode('ascii')) 

рд▓реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕реНрд╡рд┐рдЪ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдлрд╛рдЗрд▓ рдХреЗ рд╕рднреА рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЗрд╡рд▓ qtech1.0 рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХрднреА-рдХрднреА рдХрд┐рд╕реА рдЪреАрдЬ рдХреА рдкреНрд░рддреНрдпрд╛рд╢рд╛ рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд┐рдкрдХ рдЬрд╛рддреА рд╣реИ рдФрд░ рдпрд╣ рдЗрд╕ рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдкрджреНрд░рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдпрд╣ рд╕рдорд╛рдзрд╛рди рдореБрдЭреЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд▓рдЧ рд░рд╣рд╛ рдерд╛ред

рд╕реНрд╡рд┐рдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдХреБрд▓ рдХрд╛рдЙрдВрдЯрд░ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред

 counter_komm+=1 

рдФрд░ рд╣рдо рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рд╕реЗ рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдкрдврд╝рддреЗ рд╣реИрдВ, рдореЙрдбрд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВред

рдореБрдЦреНрдп рдЪрдХреНрд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ,
рд▓реЙрдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЙрди рд╕рднреА рдореЙрдбрд▓реЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рддрд╛рд░реАрдЦ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ, рдареАрдХ рд╣реИ, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

 print('\n\n\n : ', counter_komm,file=log) print('\n\nD-link:', counter_dlink,'\nQtech ver1.0:', counter_qtech1_0,'\nROS:', counter_ROS,'\nRaisecom:',counter_raisecom,'\nEltex:', counter_eltex,'\nQtech ver2.0 :', counter_qtech2_0,file=log) print('\n: ', datetime.datetime.now().isoformat(),'\n', '#'*100,'\n\n\n\n\n',file=log) verinfo.close() log.close() 

рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд╣рд╛рдБ рдирд╣реАрдВ рд░реБрдХреЗрдЧреАред
рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рддрд╣рдд рд╕рднреА рдХреЛрдбред

рд╕реНрд░реЛрдд рдХреЛрдб
 #!/usr/bin/python3 #22/06/2017 17:17 import telnetlib import time import os import sys import getpass import pexpect from telnetlib import Telnet import datetime import subprocess def who_is(): #     ,      . global ver_status global sab_versus global versus sab_versus='' ver_status='' versus='' a = 'Serial No.:1405' # #qtech rev1 #b = 'Serial No.:3922' # #qtech rev2 #c = 'Serial No.:5436' # #qtech rev2 #l = 'Serial No.:16101' # #qtech rev2 d = 'Command: show switch' # #d-link f = 'Raisecom Operating System Software' # #raisecom h = 'QOS' # #raisecom-qtech j = 'MES1124M' # #eltex k = 'eltex' # #eltex n = 'Build245' #qtech2.0 parser=open('servers_&_log/ver.txt', 'r') for line in parser.readlines(): line1 = line.find(a) #line2 = line.find(b) #line3 = line.find(c) line4 = line.find(d) line5 = line.find(f) line6 = line.find(h) line7 = line.find(j) line8 = line.find(k) #line9 = line.find(l) line10 = line.find(n) if line1 != -1: ver_status='qtech_rev_1.0' #if line2 != -1 or line3 != -1 or line9 !=-1: #ver_status='qtech_rev_2.0' if line4 != -1: ver_status='d-link' if line5 != -1: ver_status='raisecom' if line6 != -1: ver_status='raisecom-qtech' sab_versus=1 if line7 !=-1: ver_status='eltex' if line8 !=-1: ver_status='eltex' if line10 != -1: ver_status = 'qtech_rev_2.0' time.sleep(0.1) parser.close() os.remove('servers_&_log/ver.txt') return ver_status,sab_versus user='user' password='password' komm=open('servers_&_log/komm.txt') log=open('servers_&_log/log.txt','a') counter_komm=0 counter_dlink=0 counter_qtech=0 counter_eltex=0 counter_raisecom=0 counter_ROS=0 # counter_qtech1_0=0 counter_qtech2_0=0 for host in komm.readlines(): print('connect....',host) vend = '' #tn = Telnet(host.replace('\n', ''), 23, 20) response = os.system('ping -c 1 ' + host) verinfo = open('servers_&_log/ver.txt', 'w') ver_status = '' sab_versus = '' if response == 0: telnet = pexpect.spawn('telnet ' + host,timeout=40) vend = telnet.expect(['login:', 'Login:', 'User Name:', 'Username']) telnet.close() tn = Telnet(host.replace('\n', ''), 23,30) try: print('Ok'+'\n') tn.read_until(b':') tn.write((user +'\n').encode('ascii')) tn.read_until(b':') tn.write((password + '\n').encode('ascii')) time.sleep(3) tn.read_until(b'#',timeout=20) except: print('connection refused' + '\n') f = open('servers_&_log/log.txt', 'a') print(host, 'connection refused', file=log) print('#' * 100, host, file=log) ###   ################################################################################ if vend == 0:#    Qtech tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=verinfo) verinfo.close() who_is() ################################################################################ if vend == 1: #   Raisecom,Raisecom-Qtech tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=verinfo) verinfo.close() who_is() ################################################################################ if vend == 2:#   Eltex tn.write(('show system' + '\n').encode('ascii')) tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=verinfo) verinfo.close() who_is() ################################################################################ if vend == 3:#   D-link tn.write(('show sw' + '\n').encode('ascii')) tn.write(('a' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=verinfo) verinfo.close() who_is() # ###  # ################################################################################ if ver_status == 'd-link': tn.read_until(b'#', timeout=20) tn.write(('show sw' + '\n').encode('ascii')) tn.write(('a' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) print('D-link ' + host,file=log) print('#'*100,file=log) counter_dlink+=1 ################################################################################ elif ver_status == 'qtech_rev_1.0': tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) counter_qtech1_0+=1 komand_qtech1_0=open('servers_&_log/komand_qtech_ver1.0.txt') for kommand in komand_qtech1_0.readlines(): tn.write((kommand.replace('\n', '') + '\n').encode('ascii')) #print((tn.read_until(b'#').decode('ascii')), file=log) tn.write(('exit' + '\n').encode('ascii')) print(tn.read_all().decode('ascii'), file=log) print('Qtech rev1.0 ' + host, file=log) print('#' * 100, file=log) ################################################################################ elif ver_status == 'qtech_rev_2.0': tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) counter_qtech2_0+=1 komand_qtech2_0=open('servers_&_log/komand_qtech_ver2.0.txt') for kommand in komand_qtech2_0.readlines(): tn.write((kommand.replace('\n', '') + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) time.sleep(1) print('Qtech rev2.0 ' + host, file=log) print('#' * 100, file=log) ################################################################################ elif ver_status == 'raisecom-qtech': tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) raisecom_command = open('servers_&_log/komand_raisecom.txt') for komand in raisecom_command.readlines(): tn.write((komand.replace('\n', '') + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) print('ROS '+ host,file=log) print('#'*100,file=log) counter_ROS+=1 ################################################################################ elif ver_status == 'raisecom': tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) counter_raisecom+=1 raisecom_command = open('servers_&_log/komand_raisecom.txt') for komand in raisecom_command.readlines(): tn.write((komand.replace('\n', '') + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) print(host, ':', 'RAISECOM', file=log) print('#' * 100, host, file=log) ################################################################################ elif ver_status == 'eltex': tn.write(('show ver' + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) eltex_command=open('servers_&_log/komand_eltex.txt') for komand in eltex_command.readlines(): tn.write((komand.replace('\n', '') + '\n').encode('ascii')) print((tn.read_until(b'#').decode('ascii')), file=log) print('Eltex ' + host, file=log) print('#' * 100, file=log) counter_eltex+=1 else: print('no ping') counter_komm+=1 print('\n\n\n : ', counter_komm,file=log) print('\n\nD-link:', counter_dlink,'\nQtech ver1.0:', counter_qtech1_0,'\nROS:', counter_ROS,'\nRaisecom:',counter_raisecom,'\nEltex:', counter_eltex,'\nQtech ver2.0 :', counter_qtech2_0,file=log) print('\n: ', datetime.datetime.now().isoformat(),'\n', '#'*100,'\n\n\n\n\n',file=log) verinfo.close() log.close() 

Source: https://habr.com/ru/post/hi415453/


All Articles