Pull to refresh

ADSL модем теряет коннект до перезагрузки? Не проблема!

Configuring Linux
Началось все с того, что в один прекрасный день я стал обладателем ADSL-роутера D-Link 2640U. Так как раздаю я интернет еще и друзьям, то включен он у меня круглосуточно, и тут обнаружилась одна досадная неприятность — он переодически терял коннект с провайдером и не хотел подключаться до перезагрузки. Поиски и обновления прошивки не решили проблемы, а так как дома меня иногда не бывает, а перегружать модем надо, то в один прекрасный день был написан скрипт, который делает это автоматически.

Выбор пал на Питон чисто случайно — начал изучать язык и решил попрактиковаться. Вот что из этого вышло:

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()


Скрипт пингует заданный айпи адрес и, если тот недоступен, заходит по телнету на модем и отдает команду для перезагрузки.
Стоит у меня запуск по крону каждые 3 минуты (подобрано опытным путем — самый оптимальный вариант)

ip-адрес, который надо проверять.
HOST — адрес модема.
user, password — соответственно, имя и пароль пользователя на модеме.
строчку BCM96338 ADSL Router у меня выдает модем привходе через телнет, вы можете изменить ее на ту, которая соответствует вашему модему.

Вот и все собственно. Исправления и дополнения приветствуются.
Tags:модемыlinux автоматизация
Hubs: Configuring Linux
Rating +26
Views 13.7k Add to bookmarks 33
Comments
Comments 65

Popular right now

Top of the last 24 hours