Tomsk Sysadmins Forum
Unix => Программирование => Topic started by: Maikl on May 05, 2010, 14:43:07
-
помогите запустить такой скрипт
import os
import re
import time
import sys
import telnetlib
from threading import Thread
class testit(Thread):
def __init__ (self,ip):
Thread.__init__(self)
self.ip = ip
self.status = -1
def run(self):
pingaling = os.popen("ping -q -c2 "+self.ip,"r")
while 1:
line = pingaling.readline()
if not line: break
igot = re.findall(testit.lifeline,line)
if igot:
self.status = int(igot[0])
if self.status == 0:
tn = telnetlib.Telnet(HOST)
tn.read_until("BCM96338 ADSL Router")
tn.read_until("Login:")
tn.write(user + "\n")
tn.read_until("Password: ")
tn.write(password + "\n")
time.sleep(5)
#tn.write("ifconfig ppp_0_1_32_1\n")
tn.write(«reboot\n»)
time.sleep(5)
tn.write(«logout\n»)
time.sleep(60)
testit.lifeline = re.compile(r"(\d) received")
ip = "213.180.204.8"
HOST = "192.168.168.1"
user = "user"
password = "password"
current = testit(ip)
current.start()
выдаёт ошибку NameError: name 'testit' is not defined
-
Нет, он выдает другую ошибку:
File "shit.py", line 20
self.status = int(igot[])
^
SyntaxError: invalid syntax
И прочтите pep-8, смотреть страшно ж. Класс именуется с прописными, пробел после `,` и тп.
-
но у меня выдает именно такую ошибку, кстати код не мой и синтаксические ошибки исправлены просто мне необходимо ребутить модем при пропадании пинга до определенного узла, наткнулся на этот скрипт, может в системе чего-то не хватает ?
-
Киньте актуальный скрипт на paste, тут парсер лох его козявит.
-
я код подправил у меня он выглядит именно так
-
Попробуйте так. Сильно не вдавался, но будет запускаться:
import os
import re
import time
import sys
import telnetlib
from threading import Thread
class TestIt(Thread):
def __init__ (self, ip):
Thread.__init__(self)
self.ip = ip
self.status = -1
self.lifeline = re.compile(r"(\d) received")
def run(self):
pingaling = os.popen("ping -q -c2 " + self.ip, "r")
while 1:
line = pingaling.readline()
if not line:
break
igot = re.findall(self.lifeline, line)
if igot:
self.status = int(igot[0])
if self.status == 0:
tn = telnetlib.Telnet(HOST)
tn.read_until("BCM96338 ADSL Router")
tn.read_until("Login:")
tn.write(user + "\n")
tn.read_until("Password: ")
tn.write(password + "\n")
time.sleep(5)
#tn.write("ifconfig ppp_0_1_32_1\n")
tn.write("reboot\n")
time.sleep(5)
tn.write("logout\n")
time.sleep(60)
ip = "213.180.204.8"
HOST = "192.168.168.1"
user = "user"
password = "password"
current = TestIt(ip)
current.start()
-
не работает, точнее запускается но ничего не делает, в режиме отладки дает
/testit(45)<module>()->None
и так по кругу