Форум сайта python.su
Теперь еще переделал что бы ip брал из файла. Работает но на последнем не завершается а висит пока не остановишь сам.
#!/usr/bin/python # -*- coding: utf-8 -*- import os import sys import telnetlib def connect(): user ="admin" password ="pass" # host = '172.29.114.141' tn = telnetlib.Telnet(host,23,15) # tn.set_debuglevel(1) tn.read_until("Login:",5) tn.write(user+"\n") tn.read_until("Password:",5) tn.write(password+"\n") tn.read_until(">",5) tn.write("ena\n") tn.read_until("Password:",5) tn.write(user+"\n") return tn def comand(tn): tn.write("sh ver\n") tn.write("sh inter port\n") tn.write("q\n") print tn.read_all() def disconnect(tn): tn.close() s = tn.read_all() # print type (s) print s f = open ('test.txt') host = f.readline() while host: print host tl = connect() comand(tl) disconnect(tl) line = f.readline() f.close ()
Отредактировано chipset (Июль 1, 2014 14:50:55)
Офлайн
f = open('test.txt') for host in f.readlines(): print (host)
Отредактировано chipset (Июль 1, 2014 15:00:18)
Офлайн
Теперь решил вынести функции в модуль:
Основной файл:
#!/usr/bin/python # -*- coding: utf-8 -*- import os import sys import telnetlib import test f = open('ip.txt') for host in f.readlines(): # print (host) tl = test.connect() test.comand(tl) test.disconnect(tl)
#!/usr/bin/python # -*- coding: utf-8 -*- import os import sys import telnetlib def connect(): user ="admin" password ="pas" # host = '172.29.114.141' tn = telnetlib.Telnet(host,23,15) # tn.set_debuglevel(1) tn.read_until("Login:",5) tn.write(user+"\n") tn.read_until("Password:",5) tn.write(password+"\n") tn.read_until(">",5) tn.write("ena\n") tn.read_until("Password:",5) tn.write(user+"\n") return tn def comand(tn): # tn.write("sh ver\n") # tn.write("sh inter port\n") # tn.write("q\n") f = open ('comand.txt') for comands in f.readlines(): tn.write(comands+"\n") print tn.read_all() def disconnect(tn): tn.close() s = tn.read_all() # print type (s) print s
./run.py Traceback (most recent call last): File "./run.py", line 11, in <module> tl = test.connect() File "/home/chipset/python/test.py", line 11, in connect tn = telnetlib.Telnet(host,23,15) NameError: global name 'host' is not defined
Офлайн
Исправил в модуле поправив
def connect(host):
tl = raisecom.connect(host)
Офлайн
И еще вопрос как разорвать сессию если я послал команду reboot выход по q уже не пройдет после.
Отредактировано chipset (Июль 1, 2014 16:56:52)
Офлайн
reboot ты посылаешь на *nix системе ?
Офлайн