D-Link DSL-G624T: Script para autoreiniciar si se cuelga el ADSL
28 de Junio de 2007 en Sistemas, Linux
Lecturas: 9,119
buy generic clomid no rx cialis cheapest clomid order levitra online where to buy accutane find discount cialis online viagra tablets cheapest accutane prices buy acomplia cheap low cost viagra lasix online stores discount cialis no rx viagra india acomplia sale viagra approved viagra pharmacy cialis pills soma without prescription buy viagra in canada find no rx viagra buy zithromax find viagra clomid online stores discount acomplia cheap clomid tablets buy generic levitra purchase levitra online cialis buy cialis india cheapest cialis prices zithromax without prescription acomplia online stores buy cheapest viagra on line propecia online cheap purchase soma online synthroid without prescription cost viagra levitra pills viagra overnight shipping cheap viagra internet buy viagra us buy generic accutane synthroid sale cheap lasix online purchase cialis without prescription buy synthroid cheap viagra cheap drug cialis for order buy cheap zithromax viagra cheap price order accutane online buy viagra low price zithromax prices order propecia online discount clomid order cialis on internet online soma order cialis no prescription cheap propecia online acomplia pills buy accutane without prescription cialis australia price of soma cialis sales buy soma without prescription no prescription cialis lasix generic cheap cialis on internet cheap clomid online synthroid online cheap purchase clomid online where to buy synthroid cheap levitra online discount cialis overnight delivery viagra australia buying viagra online zithromax for sale viagra cost viagra pills buy cialis lowest price price of clomid cialis side effects lasix for sale cheapest generic cialis find viagra on internet levitra online stores cialis overnight shipping viagra online review free cialis cialis approved buy cheapest viagra cheap viagra online where to buy levitra order cialis from canada cialis pharmacy order soma levitra cheap viagra without rx clomid cheap cheap generic synthroid where to buy propecia buy generic synthroid order lasix online where to order viagra buy accutane cheap cheap accutane tablets cheapest synthroid prices cheap viagra in uk synthroid online stores accutane prescription where to order cialis order viagra on internet sale viagra buy cheap clomid buy cialis low price find cialis no prescription required viagra internet buy discount viagra best price for viagra cheap propecia clomid without a prescription buy viagra without prescription discount lasix levitra for sale buy clomid certified cialis where to buy acomplia buy cheap accutane online buy cheapest viagra online buy cheapest cialis on line lowest price propecia viagra in uk buy no rx viagra cheapest clomid prices order cialis in us cheap acomplia tablets buy lasix without prescription discount viagra overnight delivery cheap cialis internet cialis overnight no prescription viagra buy synthroid viagra price find cheap cialis online order clomid online best price for cialis viagra purchase purchase cialis online online lasix cheapest acomplia prices zithromax without a prescription best price viagra cialis order accutane cheap buy cialis in us buy viagra on internet purchase clomid clomid cialis pharmacy online cialis purchase cheap lasix tablets cialis generic cheapest viagra price zithromax no prescription zithromax cheap cialis cheap drug buy cialis in canada cheap zithromax tablets buy clomid without prescription lowest price lasix acomplia discount cialis online viagra tablet synthroid generic propecia no prescription buy generic zithromax order viagra in us purchase viagra no rx approved viagra pharmacy purchase viagra online soma generic accutane cialis no rx required online synthroid purchase viagra overnight delivery discount cialis buy no rx cialis viagra generic buy cialis us clomid prescription acomplia prices purchase lasix online buy cheap synthroid viagra online pharmacy buy cheap clomid online lasix cheap cheap generic clomid viagra buy drug clomid pharmacy propecia without prescription synthroid online accutane sale levitra no prescription online accutane price of cialis synthroid without a prescription buy generic viagra viagra in australia cheapest zithromax prices buy lasix discount zithromax cheapest levitra cost of cialis cheap viagra in usa propecia online stores buy zithromax cheap sale cialis find cheap viagra viagra us cheap clomid cialis online stores soma no prescription buy cialis online where to buy viagra generic viagra buy cialis internet buy levitra cheap order cialis no prescription required cheap levitra tablets buy cialis overnight delivery buy viagra generic lasix online cheap cialis no prescription acomplia cheap order viagra no prescription required cheapest levitra prices discount viagra online viagra where to buy zithromax buy cheap acomplia purchase viagra accutane for sale generic acomplia cheap viagra no prescription compare viagra prices generic zithromax buy clomid online propecia cheap levitra prescription buy clomid cheap viagra in malaysia acomplia pharmacy acomplia for sale order viagra cheap online online viagra buy acomplia without prescription lowest price soma discount cialis online lasix prices cialis cheapest price cheap accutane online buy synthroid without prescription find cialis without prescription accutane without prescription buy acomplia cialis cheap cheap viagra from usa online cialis clomid discount cheap cialis in usa soma online cheap cialis without a prescription where to buy soma purchase propecia online cialis sale buy cheap soma find viagra online cheap soma online cialis free sample lowest price viagra buy cialis on line viagra from canada online pharmacy cialis levitra drug viagra online purchase drug cialis buy zithromax online buy propecia lasix pharmacy accutane generic clomid online cheap soma prices synthroid levitra generic order viagra from us purchase accutane lasix discount cheapest cialis cheap cialis pill find discount viagra online lowest price for viagra accutane prices acomplia generic cheap cialis tablet synthroid pills viagra pharmacy online viagra overnight synthroid pharmacy viagra online stores buy discount viagra online levitra online certified viagra cheap viagra in canada cheapest propecia prices order viagra without prescription clomid sale price of viagra cialis cost lowest price synthroid purchase cialis buying generic viagra lasix pills generic accutane buy cheap soma online buy lasix cheap cialis online review purchase cialis overnight delivery soma for sale cheap viagra on internet lowest price cialis cheap viagra from uk buy generic lasix buy cheap lasix order levitra cialis without prescription cialis prices buy viagra no rx buy cialis no rx purchase zithromax online best price cialis cialis in uk buy discount cialis online propecia prescription cialis discount purchase lasix propecia sale order discount cialis viagra prices discount synthroid buy generic cialis soma online buy generic viagra online buy cialis from india cheap viagra pharmacy buy synthroid online online levitra order cheap viagra cost cialis cheapest cialis price cialis us acomplia without a prescription order cialis cheap generic zithromax cheap levitra cheap cialis without prescription cheapest viagra prices cheap cialis from canada zithromax pills zithromax generic buy viagra internet drug cialis online purchase compare viagra prices online buy cialis from us cialis tablets generic viagra online buy cheap viagra internet lasix prescription drug viagra accutane discount buying cialis online cheap soma order clomid buy generic acomplia cialis online without prescription price of levitra buy levitra online acomplia without prescription cialis rx buy propecia online buy cheap accutane price of synthroid synthroid prescription viagra online cheap synthroid online order propecia order synthroid online soma without a prescription viagra free delivery buy cialis without prescription purchase synthroid discount cialis without prescription buy viagra overnight delivery order acomplia online approved cialis pharmacy cialis uk order generic cialis buy propecia cheap cialis in bangkok clomid for sale zithromax pharmacy viagra online cheap order cheap cialis online pharmacy viagra buy cheapest cialis online order generic viagra cheap cialis overnight delivery buy cheap viagra find cheap cialis buy zithromax without prescription buy viagra on line tablet cialis purchase zithromax cialis in australia lowest price clomid overnight cialis cialis in us clomid without prescription cialis overnight delivery cheap lasix cheap synthroid cheapest lasix cheapest soma prices viagra cheap cheapest lasix prices find cialis on internet order viagra no prescription zithromax online compare cialis prices find cheap viagra online generic lasix discount propecia acomplia no prescription generic cialis online cheap viagra tablets order viagra buy soma cheap propecia for sale generic viagra cheap cheap propecia tablets cheap generic acomplia viagra bangkok discount viagra without prescription levitra prices cheapest accutane propecia online zithromax online cheap lasix sale where to buy lasix buy cheap synthroid online price of lasix price of acomplia find viagra no prescription required viagra online without prescription low cost cialis cheap zithromax propecia cheap acomplia online order cialis cheap online cheap cialis cialis bangkok lowest price for cialis cialis no online prescription cheap cialis pharmacy cialis canada buy accutane cheap cialis from uk viagra sales cialis from india order cialis without prescription order discount viagra order accutane find discount viagra order cialis no rx cialis prescription buy propecia without prescription cheap zithromax online cheap viagra pill buy cheap propecia purchase acomplia buying generic cialis cialis online pharmacy buy viagra online cheap buy cheap levitra online viagra for order cheap cialis in uk acomplia online generic clomid zithromax sale where to buy clomid buy viagra viagra without a prescription buy lasix online purchase propecia cheap cialis no rx viagra side effects order cheap cialis online cialis online cheap cialis drug online propecia generic cialis cheap cialis buy viagra no prescription required accutane pharmacy viagra discount buy soma online order viagra online propecia pharmacy accutane without a prescription levitra without prescription discount accutane cheapest viagra viagra no rx required buy cialis buy viagra cheap order no rx cialis cheapest cialis online purchase levitra cheapest zithromax lasix without a prescription zithromax order no rx viagra buy viagra lowest price cialis vendors cialis in malaysia cheapest generic cialis online cheap viagra buy discount cialis cialis from canada buy soma cialis malaysia levitra pharmacy synthroid no prescription cheap cialis tablets price of zithromax order cialis in canada discount soma order cialis overnight delivery soma cheap zithromax prescription order discount viagra online viagra from india propecia generic buy cheap cialis internet viagra buy viagra uk acomplia online cheap order acomplia cialis buy drug buy cheap lasix online levitra without a prescription cialis free delivery online acomplia where to buy cialis pharmacy viagra accutane online cheap cheapest generic viagra online purchase accutane online lowest price accutane buy viagra online generic soma lasix no prescription propecia without a prescription synthroid discount cheap generic accutane viagra sale viagra pill discount viagra no rx viagra free sample no rx viagra lasix online cheap order cheap viagra online viagra order lasix free viagra clomid pills buy cheap acomplia online propecia prices buy levitra without prescription price of accutane buy cheap viagra online lowest price zithromax soma find cialis find discount cialis order viagra no rx tablet viagra viagra buy online order synthroid viagra no online prescription soma prescription lowest price acomplia cheap viagra overnight delivery cheap acomplia discount viagra find viagra without prescription synthroid for sale acomplia prescription purchase synthroid online cialis information soma pills order lasix viagra no prescription lasix without prescription accutane pills purchase acomplia online zithromax online stores cheapest soma viagra cheapest price compare cialis prices online cheap viagra tablet order cialis online buy acomplia online cheap synthroid tablets viagra canada cialis no prescription viagra information price of propecia buy cialis generic order soma online order discount cialis online cheap generic lasix purchase viagra without prescription viagra vendors cialis medication order viagra overnight delivery viagra no rx overnight viagra cheap cialis online clomid prices cheap accutane buy viagra from india cialis tablet cheap viagra no rx viagra rx buy accutane online find no rx cialis buy generic cialis online cheap viagra without prescription cheapest propecia buy cheap propecia online levitra online cheap order viagra from canada accutane no prescription soma discount cheapest synthroid generic levitra cialis price online clomid generic cialis fda approved viagra purchase cialis no rx cialis without rx cheapest acomplia buy levitra pharmacy cialis accutane online stores soma online stores buy cialis from canada clomid generic propecia pills synthroid prices cheapest generic viagra buy cheap levitra buy cialis cheap buy cialis no prescription required viagra without prescription cheap generic soma accutane online buy viagra from canada find cialis online cialis no rx discount levitra buy cialis online cheap order cialis from us viagra in us buy cheap cialis online cialis for sale cheap price cialis cialis buy online order zithromax online fda approved cialis generic propecia viagra malaysia cheap cialis from usa buying cialis generic synthroid viagra medication propecia discount cheap generic cialis soma pharmacy levitra discount cheap generic propecia viagra for sale soma sale online zithromax acomplia cheap viagra from canada buy generic propecia viagra in bangkok buy cheap zithromax online cheap generic levitra cheap price viagra buy cheap cialis cheap cialis in canada buy generic soma cheap soma tablets viagra prescription lowest price levitra buy viagra from us cialis internet buy cheapest cialis buy viagra in us buying viagra cheapest viagra online viagra overnight delivery purchase soma clomid no prescription cialis pill cheap generic viagra levitra sale order viagra in canada viagra drug synthroid cheap order zithromax cialis cheap price buy cialis on internet cost of viagra clomid online

D-Link DSL-G624TPara conectarme a internet uso un router Wifi D-Link DSL-G624T regalado al contratar el ADSL con Ya.com. No es un mal router una vez configurado un poco, pero sufre algunos problemas para mantener la conexión a internet cuando se calienta en exceso o cuando la mula está encendida.

Sus cuelgues son curiosos, pues la Wireless sigue funcionando, pero la conexión a internet se cierra y el acceso al router por Web también. En cambio el acceso por telnet sigue operativo. Normalmente lo reseteo físicamente y en un par de minutos todo vuelve a la normalidad. El problema viene cuando no estoy en casa y no tengo acceso a él, con lo que no puedo restaurar la conexión a internet de la casa hasta que no vuelvo.

Chafardeando el router me encontré con que internamente funciona con un BusyBox pequeñito, que no deja de ser un mini-Linux con sus funcionalidades básicas

En este artículo explico cómo realizar un script en nuestro servidor casero que comprueba el aceso a internet, y si no lo hay, que acceda al router y lo reinicie.

En primer lugar debo dar las gracias a i compañero Alex, pues me enseñó la forma de automatizar la conexión al router por telnet y su reseteo para embedirlo en un script Bash.

El truco consiste en un par de scripts: uno que efectúa el reseteo del router y otro que controla la lógica del programa. De hecho, se podría confeccionar un sólo script que haga todo el trabajo pero me gusta tener el script de reseteo por separado por si lo uso atómicamente en otra tarea.

Empezando por el script de reseteo, consiste en una sucesión de instrucciones que abren un telnet y le printan en su consola las instrucciones que queremos, esperando unos segundos entre instrucción e instrución para darle tiempo al shell de darnos los prompts necesarios.

En primer lugar creamos un archivo llamado restart_router.sh dentro de nuestro directorio de nuestras utilidades del sistema (en mi caso en /server/utils):

$ touch /server/utils/restart_router.sh

y entonces lo abrimos para editarlo:

$ vim /server/utils/restart_router.sh

Una vez abierto escribimos lo siguiente:

(sleep 3; echo “admin”; sleep 3; echo “contrasenya_router”; sleep 3; echo “/sbin/reboot”; sleep 3; echo “exit”) | telnet 192.168.1.1

Vamos a explicarlo… En primer lugar vemos que al final de la línea hay un telnet 192.168.1.1. Ésta es la instrucción que nos conecta con el router. A ella le pasaremos seguidamente el usuario (porque lo primero que hace es preguntarnos el usuario), la contraseña, y justo después la instrucción a ejecutar, haciendo luego un exit para que cierre la conexión. La forma de automatizar el proceso es pasarle las instrucciones mediante el pipe al telnet, hacer un echo de las instrucciones a ejecutar (deben estar entre dobles comillas) y separar las instrucciones con una pausa para darle tiempo a sacar el prompt (de ahí el sleep de 3 segundos). Deberemos sustituir la dirección IP de aquí con la IP de nuestro router y “contrasenya_servidor” con la contraseña que usamos para entrar al router. Debemos asegurarnos que está todo en una misma línea y que los parámetros están todos entre un mismo paréntesis.

Una vez guardado el archivo, debemos darle permisos de ejecución al archivo con, por ejemplo:

$ chmod +x /server/utils/restart_router.sh

A continuación, vamos a por el segundo script. Éste debe decidir si hay acceso a internet o no. Para ello haremos ping a un host de internet (por ejemplo a Google) y capturaremos la salida. De la salida nos quedamos con el número del porcentaje de paquetes perdidos que será lo que usaremos para distinguir si hay internet o no. Así que primero de todo creamos el archivo:

$ touch /server/utils/adsl_keep_online.sh

Y lo abrimos para editarlo:

$ vim /server/utils/adsl_keep_online.sh

Allí escribimos la cabecera del intérprete de comandos:

#!/bin/bash

Y ejecutamos el ping seleccionando la parte que nos interesa (el número del porcentaje de paquetes perdidos) y lo almacenamos en una variable llamada result:

result=`ping -c 5 www.google.com | grep “packet loss” | awk ‘{printf (”%d”,$6)}’`

En primer lugar, notemos que no hay espacios antes y después del signo igual. Luego, toda la línea del comando (lo que va después del igual) va encerrado entre acentos abiertos sin carácter (dándole al acento y luego un espacio). No confundirlo con comilla simple! La instrución ping la ponemos con el parámetro -c 5, que significa que sólo enviará 5 paquetes (si no ponemos nada, va enviando paquetes hasta el infinito). La salida la dirigimos al grep para que seleccione la línea que contiene “packet loss” (encerrado entre comillas dobles). La salida de ésto la dirigimos al awk, que nos saque sólamente la columna 6, formateándolo en decimal para quitar el símbolo del porcentaje.

A continuación, miramos con un if si el resultado del ping es mayor al 50% en paquetes perdidos. Si es así ejecutamos nuestro primer script para reiniciar el router. Además, aprovecho la salida para redirigirla a un archivo log situado en /server/logs/adsl.log y dejar constancia así de las verificaciones que se lleban a cabo cada vez que se ejecuta el programa. El archivo queda finalmente así:

#!/bin/bash

result=`ping -c 5 www.google.com | grep “packet loss” | awk ‘{printf (”%d”,$6)}’`
if [ “$result” -gt “50″ ]; then
echo “`date` [KO]: $result% perdido. Rebotando Router” >> /server/logs/adsl.log
echo “————————————>>>>>>>>>>>>>” >> /server/logs/adsl.log
/home/utils/restart_router.sh >> /server/logs/adsl.log
echo “<<<<<<<<<<<<<------------------------------------" >> /server/logs/adsl.log
else
echo “`date` [OK]: $result% perdido” >> /server/logs/adsl.log
fi

Después de guardar debemos setar el archivo como ejecutable:

$ chmod +x /server/utils/adsl_keep_online.sh

Y ya por último queda por incluir este script en la lista de tareas a realizar periódicamente. Yo lo tengo ejecutando cada media hora. Así, debemos editar el archivo de cron:

$ crontab -e

Y añadir una línea de la siguiente forma:

0,30 * * * * /server/utils/adsl_keep_online.sh

Y ya lo tenemos funcionando. Ahora, cada media hora se va a ejecutar un ping de 5 paquetes. Si el resultado en paquetes perdidos es mayor que el 50% se reiniciará el router.

Los más sibaritas en sistemas me podrán decir que reiniciar el router entero por haber perdido la conexión a internet es demasiado bruto. Es verdad, pero aún no he hecho suficientes pruebas para encontrar cuál sería la mejor forma de llevar el objetivo a cabo. Si entramos por telnet al router y ejecutamos un ipconfig podremos ver que existe una interfície llamada ppp0 que es la relativa a el ADSL, pero reiniciar dicha interfície no solucionaría el cuelgue de la administración Web. Seguiré investigando.

Salud!

Tags: , , , , , ,
 Enviar a Fresqui

Leer los Comentarios

[ # 3350 ] Comment desde Miki [05 de Agosto de 2007, 07:05]

No se que tipo de pruebas de calidad deben hacer los de D-LINK a los equipos de red de gama baja, pero el caso es que en la empresa donde trabajaba adquirimos 8 el año pasado, los cuales iban aparentemente bién hasta que dejaban de funcionar (el mismo dia). Después de hacer mil pruebas para asegurar que no era nada nuestro descubrimos que efectivamente era por la temperatura así que los devolvimos todos reportando la incidencia.
Dos meses más tarde nos llegaron los nuevos más un firewall de regalo, supongo que por la espera, lo cual es de agradecer, no obstante aunque aguantan un poco más no podíamos apilarlos ya que volvían a fallar.
Muy buena la explicación de los scripts, un saludo.

[ # 3362 ] Comment desde Xavi [06 de Agosto de 2007, 08:02]

En mi caso es desesperante. Con el verano ha llegado la calor, y con él cuelgues casi diários del router. A veces se cuelga sin posibilidad de que el script haga su trabajo…
Saludos!

[ # 6791 ] Comment desde Yo [10 de Octubre de 2007, 08:28]

¿Y si en vez de “/sbin/reboot” pones “/sbin/init”?

::restart:/sbin/init

‘restart’ is the action taken to restart the init process

[ # 6819 ] Comment desde Xavi [11 de Octubre de 2007, 07:40]

Pues hombre, la vía fácil era el reboot. puedes usar el init, pero debes asegurarte si está soportado por el sistema. Ahora mismo uso otro router así que no lo puedo comprobar.

Saludos.

[ # 10934 ] Comment desde sQalo [05 de Diciembre de 2007, 07:32]

Con reboot me queda claro que reinicia el router, pero como puedo mediante telne resetear el router a los valores de fábrica???? gracias

[ # 12307 ] Comment desde ramoncio [20 de Diciembre de 2007, 08:24]

Muy buena jugada!
Y no habria manera de poner ese script dentro del propio router?
Por lo que tengo entendido, tienes que tener un equipo linux corriendo el script continuamente…
Si el router tiene linux igual se podria meter en el firmware o en la flash, no se como funciona este router en particular.
Asi no tendrias que tener un equipo encargado de la faena, seria el propio router el que lo hiciera todo, y tambien valdria para los windowseros sin cygwin, que por desgracia son la mayoria.

[ # 12331 ] Comment desde Xavi [21 de Diciembre de 2007, 09:05]

No he probado de poner el script dentro. De hecho, se podría hacer que el par de scripts estuviera dentro… seria, como dices, más lógico y menos dependiente de un PC externo. Sólo es necesario un cron ;) Y no miré si lo lleva.

Salu10

[ # 16973 ] Comment desde ANTONIO [04 de Febrero de 2008, 08:28]

Tengo un amigo que ha intentado actualizar el firmware y se le ha quedado frito. Hay alguna forma de hacer algo?
Gracias por adelantado.

[ # 17022 ] Comment desde Xavi [05 de Febrero de 2008, 09:31]

No lo sé… Y éso se escapa del tema del artículo…

[ # 17197 ] Comment desde ahs [06 de Febrero de 2008, 10:49]

El script adsl_keep_online.sh me da problemas al escribirlo en un documento, podrías colgar el tuyo.

[ # 17253 ] Comment desde ahs [08 de Febrero de 2008, 01:16]

a costa de repetirme me gustaría pedir a alguien que tenga el script adsl_keep_online.sh que me lo enviara por correo si puede a la direción ahs_rodrigez1@hotmail.com, os lo agradecería. mucho

[ # 17257 ] Comment desde Xavi [08 de Febrero de 2008, 09:34]

ahs: El script te da problemas por el tema de las comillas. Te pasaría el mío pero ahora tengo el server jodido (un DIMM de RAM muerto) y no puedo acceder a él.

Léete el artículo y pon especial atención a las comillas (en el artículo está explicado). Cuando pueda colgaré el script para descarga.

[ # 17330 ] Comment desde ahs [10 de Febrero de 2008, 07:50]

Xavi: e intentado lo que dices de las comillas pero sigue dándome error

[ # 18448 ] Comment desde Pedro [12 de Marzo de 2008, 04:36]

Yo tambien estoy intentando meterle el script a mi busybox basado en ash y no bash…y no acabo de hacerlo funcionar: 2: Syntax error: “(” unexpected

Por favor, alguien que lo tuviera podria enviarmelo a este email?

Gracias y un saludo.

[ # 19444 ] Comment desde david [07 de Abril de 2008, 11:45]

el problema seguramente lo tendreis con este trozo :

result=`ping -c 5 www.google.com | grep “packet loss” | awk ‘{printf (”%d”,$6)}’`

que ha de ir junto en una sola linea y os detecta el (”%d”,$6)}’` como otra linea , editad el fichero , todo este trozo ha de ir en un sola linea.

[ # 22291 ] Comment desde Tass [19 de Mayo de 2008, 04:00]

En el script adsl_keep_online.sh en la línea del if si dejamos la comparación entre comillas trata de ejecutar el $result como comando en vez de comparar los números (debian):

if [ “$result” -gt “50″ ]; then
por
if [ $result -gt 50 ]; then

Igualmente gracias por el script :)

[ # 24502 ] Comment desde Miquel Adrover [12 de Junio de 2008, 09:28]

FYI

En esta página hay mucha información de como administrar el router via telnet:

http://pukadiary.ranmachan.dyndns.org/D-Link_DSL380T

[ # 24505 ] Comment desde Miquel Adrover [12 de Junio de 2008, 09:35]

Para obtener la velocidad de bajada del router:

(sleep 3; echo “admin”; sleep 3; echo “admin”; sleep 3; echo “echo ’sar:status/dsl_ds_rate’ | cm_cli -l “; sleep 3; echo “exit”) | telnet 192.168.1.1 | grep dsl_ds_rate | awk -F”=” ‘{print $2}’

[ # 24545 ] Comment desde Xavi [13 de Junio de 2008, 09:57]

Gracias Miquel.

[ # 31591 ] Comment desde Peperfus [09 de Agosto de 2008, 05:50]

Hola, el script va de PM, una excelente solución. Lo utilizo para el router conceptronic.

El problema que tengo, es que no se me ejecuta en el cron y no sé por que. Lo tengo puesto igual, a cada media hora. Uso Debian 4 (etch). ¿Alguna idea de por qué puede ser?

[ # 31772 ] Comment desde Xavi [11 de Agosto de 2008, 07:55]

Verifica que la ruta de acceso al script sea la correcta. Si no te dió problemas al editar el crontab, diría que debes tenerlo funcionando… pero puede que la ruta esté mal.

Pruébalo y nos dices.

Salu2

[ # 32326 ] Comment desde Peperfus [16 de Agosto de 2008, 02:04]

Ok, ya está arreglado lo del cron. El problema era que tenía que añadir la ejecución cron manualmente en /etc/cron.d. Además, para invocar al script, tuve que hacerlo mediante sh y el usuario.

Pero ahora creo que tenemos un problema, bastante lógico que acabo de descubrir. Es un pequeño bug del script que creo que se puede corregir fácilmente, aunque necesito pulir un detalle.

El bug consiste en esto:
Si no hay internet, el comando ping no va a conseguir resolver la IP de la petición www.google.es, por lo tanto dará error y la variable result no coge valor. Luego el test falla porque no existe result.
Creo que deberíamos reemplazar www.google.es por una IP (una de las IPs de google, por ejemplo), así no necesita dns para resolver.
En los casos en que funciona supongo que será porque ya tiene la petición resuelta en la caché y por eso no pregunta al dns.
Bueno, yo lo he probado y avanza ese paso, el ping va bien, pero el problema es que la variable result me coge un valor un poco extraño y sospecho que tiene que ver con el formato de printf.

¿Al variar la longitud de la cadena del ping supongo que cambiará el “recorte de la cadena” para extraer el porcentaje de paquetes perdidos…?
En tal caso, cuál sería la orden printf correcta para que recortara el % si cambiamos www.google.es por 66.249.91.147 (que es la IP que me resuelve mi dns por www.google.es).

Gracias y perdón por el comentario tan largo.

[ # 32329 ] Comment desde Peperfus [16 de Agosto de 2008, 02:21]

Ok, ya veo lo que pasa con la salida del ping…
en caso de éxito de los pings, la salida del packet loss muestra:
“5 packets transmitted, 5 received, 0% packet loss, time 3998ms”
Ahí funciona bien, porque (según creo), el $6 del printf recoge la 6ª palabra, que es el 0%
Pero en caso de fallo de los pings, la salida del packet loss es distinta, muestra:
“5 packet transmitted, 0 received, +5 errors, 100% packet loss, time 3997ms”
Así que el $6 recoge +5, (5) que es menor que 50 (supuesto 50%) de paquetes perdidos y por eso no me reiniciaba el router.
De momento, como parche provisional (hasta mejor solución) creo que se podría arreglar cambiando el test, simplemente a -gt 2 (por ejemplo), que en caso de acierto (0% packet loss) será falso y en caso de fallo (más de 2 packets loss) será verdadero y reiniciará el router.

Bueno, es una sugerencia, que alguien me corrija si me equivoco en algo o hay una mejor solución (supongo que sí).

Saludos y perdón otra vez por el comentario tan largo
Espero que esté bien explicado, si no lo está, pedid aclaración o preguntad lo que sea
xD

[ # 32651 ] Comment desde Xavi [18 de Agosto de 2008, 08:17]

Buenas Peperfus.

He estado fuera y no he podido atenderte a tiempo ;)

Tu mismo ya has encontrado la solución ;) El problema principal es la toma de valores según el número de la columna y usar éso como variable a analizar para decidir si reiniciar el router o no. Puedes jugar con la salida del ping, para que te de un formato con el que puedas contar siempre.

Tu solución me parece perfecta… de momento. A ver si tengo un rato y pruebo algunas soluciones más ;)

Salu10

[ # 46374 ] Comment desde TunLuek [25 de Noviembre de 2008, 06:32]

mas corto >:

#!bin/sh
/bin/ping -c 5 rediris.es || /home/utils/restart_router.sh

Escribe un Comentario





Estadísticas