Home

Script check bloqueo OSCam

HSA2000

Aprendiendo...
Loco por OpenSPA
Fan de OpenSPA
19 Ene 2013
461
184
0
52
Hola...

Ostras es verdad, en el ordenador que estaba transfieriendo el curl con el Filezilla tenia activado "Tratar archivos sin extensión como archivos ASCII", normalmente suelo quitarlo, seme paso en este ordenador quitarlo, vaya despiste tonto. En el otro ordenador que tengo linux, he comprobado si lo habia quitaro esa opcion al Filezilla y lo tenia quitado...

Salu2...
 

saulcont

Usuario
Amigo OpenSPA
7 Nov 2012
35
3
0
Bien, yo ya lo tengo sin problemas... lo he arrancado en el deco como plugin... esta bien asi no?
Por telnet me funcionaba...
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
Bien, yo ya lo tengo sin problemas... lo he arrancado en el deco como plugin... esta bien asi no?
Por telnet me funcionaba...
si funcionaba por telnet, tambien te funciona por la interfaz de plugins, lo unico que tienes que estar seguro es de haberlo configurado con el nombre del archivo de oscam que quieres que te arranque cada vez que se cierre o bloquee oscam.
 

saulcont

Usuario
Amigo OpenSPA
7 Nov 2012
35
3
0
y ahora que lo pienso, esto no deja ningun log no? En plan... ayer estaba frito y lo levante...
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
si deseas crear un log de registro, puedes añadirle antes o despues de la linea de reinicio del oscam, esta linea:

echo "Reiniciando $camd : $date" >> /var/log/chequear_oscam.log
 

oskarius

Usuario Destacado
Vip OpenSPA
8 Dic 2011
532
31
0
Gacias al aporte de qsilver83 http://www.openspa.info/threads/curl-en-spark.25039/, ya tenemos el curl para sh4.

Y debido a que el wget, no trabaja con el password de las paginas web, y además si realizamos una prueba de su funcionamiento cuando el proceso de Oscam aparece en la lista de procesos activos pero detenido ó bloqueado (probar: kill -STOP número_proceso ) el wget se queda enganchado reintentando el acceso y de ahí no sale, por lo que no identifica que el Oscam está realmente bloqueado (lo que si podemos configurar con el curl para que aborte despues de unos segundos de reintentos sin conseguirlo).

Es por lo que en estos casos es mejor utilizar el curl en vez del wget.

Este seria el scrip que he adaptado utilizando el curl.
#!/bin/sh
####################################################################################################################
# Script para chequear que Oscam no está caido, comprobando que está operativa con acceso la Web Interfaz de Oscam #
# y en caso de el proceso de Oscam esté cerrado ó detenido en memoria, se cierra el proceso detenido y se inicia #
# de nuevo la camd de Oscam con el nombre que indiquemos en la variable camd="xxxxxxxx". #
# Este plugin necesita encontrar en la carpeta /var/bin/ el programa curl para sh4, que se instala con este plugin.#
####################################################################################################################
FOO="/tmp/_tmp"
LOGIN="root"
PW="root"
IP="127.0.0.1"
PORT="8888"
STR="TITLE>"
camd="oscam"
tiempo=20
#
while true
do
printf "Checking Webif of Oscam for ERRORS ...\n";
/var/sbin/curl -y 3 -s --digest -o - -u $LOGIN:$PW "http://$IP:$PORT/status.html?hideidle=0" | grep "$STR" > $FOO
if [ -s $FOO ]; then
printf "\033[37;32mOscam working OK\033[37;40m\n";
else
printf "\033[37;31mOscam ERROR!\033[37;40m\n";
killall -9 $camd
/var/bin/$camd -b &
printf "\033[37;33mIniciando $camd\033[37;40m\n";
fi
rm -f $FOO
sleep $tiempo
done
Lo que indico en color rojo es lo que tienen que adaptar para vuestro acceso particular por web, conforme a vuestra configuración en el oscam.conf, y el nombre del archivo de la camd Oscam que quereis reiniciar en cada momento.

Gracias a todos los que colaboraron en este tema.

Saludos.
En este plugin cuando le das a editar, en la seccion IP, hay que dejar 127.0.0.1 o hay que poner la ip del deco.
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
le dejas la "127.0.0.1", que es la IP interna que tienen reservada todas las computadoras (en este caso el deco), tambien conocida como "localhost" (por lo que tambien puedes poner dicho nombre), y asi no tiene que interactuar con el router, que te puede dar problemas.

http://es.wikipedia.org/wiki/Localhost
 

oskarius

Usuario Destacado
Vip OpenSPA
8 Dic 2011
532
31
0
Gacias al aporte de qsilver83 http://www.openspa.info/threads/curl-en-spark.25039/, ya tenemos el curl para sh4.

Y debido a que el wget, no trabaja con el password de las paginas web, y además si realizamos una prueba de su funcionamiento cuando el proceso de Oscam aparece en la lista de procesos activos pero detenido ó bloqueado (probar: kill -STOP número_proceso ) el wget se queda enganchado reintentando el acceso y de ahí no sale, por lo que no identifica que el Oscam está realmente bloqueado (lo que si podemos configurar con el curl para que aborte despues de unos segundos de reintentos sin conseguirlo).

Es por lo que en estos casos es mejor utilizar el curl en vez del wget.

Este seria el scrip que he adaptado utilizando el curl.
#!/bin/sh
####################################################################################################################
# Script para chequear que Oscam no está caido, comprobando que está operativa con acceso la Web Interfaz de Oscam #
# y en caso de el proceso de Oscam esté cerrado ó detenido en memoria, se cierra el proceso detenido y se inicia #
# de nuevo la camd de Oscam con el nombre que indiquemos en la variable camd="xxxxxxxx". #
# Este plugin necesita encontrar en la carpeta /var/bin/ el programa curl para sh4, que se instala con este plugin.#
####################################################################################################################
FOO="/tmp/_tmp"
LOGIN="root"
PW="root"
IP="127.0.0.1"
PORT="8888"
STR="TITLE>"
camd="oscam"
tiempo=20
#
while true
do
printf "Checking Webif of Oscam for ERRORS ...\n";
/var/sbin/curl -y 3 -s --digest -o - -u $LOGIN:$PW "http://$IP:$PORT/status.html?hideidle=0" | grep "$STR" > $FOO
if [ -s $FOO ]; then
printf "\033[37;32mOscam working OK\033[37;40m\n";
else
printf "\033[37;31mOscam ERROR!\033[37;40m\n";
killall -9 $camd
/var/bin/$camd -b &
printf "\033[37;33mIniciando $camd\033[37;40m\n";
fi
rm -f $FOO
sleep $tiempo
done
Lo que indico en color rojo es lo que tienen que adaptar para vuestro acceso particular por web, conforme a vuestra configuración en el oscam.conf, y el nombre del archivo de la camd Oscam que quereis reiniciar en cada momento.

Gracias a todos los que colaboraron en este tema.

Saludos.
el puerto ha de estar abierto en el ruter?
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
En el router solo se abren puertos cuando se accede a tu red particular desde el exterior de tu vivienda, cuando se accede desde la misma red de tu casa de un aparato a otro no tienes que abrir ningun puerto en el router.

Con este script, no estas accediendo ni siquiera a la red de tu casa, ya que el script se ejecuta dentro del mismo decodificador y por eso utiliza la IP interna del deco que es la misma que se reserva en todas las computadoras (127.0.0.1 ó "localhost"). La dirección del "localhost" se usa para probar el funcionamiento del software asociado al protocolo web TCP/IP, es como si accedieras desde fuera del deco pero sin utilizar ni siquiera la tarjerta de red.

Saludos.
 

oskarius

Usuario Destacado
Vip OpenSPA
8 Dic 2011
532
31
0
En el router solo se abren puertos cuando se accede a tu red particular desde el exterior de tu vivienda, cuando se accede desde la misma red de tu casa de un aparato a otro no tienes que abrir ningun puerto en el router.

Con este script, no estas accediendo ni siquiera a la red de tu casa, ya que el script se ejecuta dentro del mismo decodificador y por eso utiliza la IP interna del deco que es la misma que se reserva en todas las computadoras (127.0.0.1 ó "localhost"). La dirección del "localhost" se usa para probar el funcionamiento del software asociado al protocolo web TCP/IP, es como si accedieras desde fuera del deco pero sin utilizar ni siquiera la tarjerta de red.

Saludos.
es que a mi no me termina de funcionar bien este script. Utilizo oscam 1.10 stable pero hay veces que el oscam se cae y tengo que reiniciarlo yo mismo.
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
luego hago unas pruebas con esa versión de oscam y te comento resultados.
 

rahuherri

Usuario
Amigo OpenSPA
2 Dic 2011
21
3
0
¡no leistes en mi post, lo indicado en rojo!
tienes que editar el plugin (chequear_oscam.sh), y poner el nombre del archivo de tu versión de oscam que quieres que te arranque, asi como el puerto, user y password que tengas configurado en la sección [webif] del oscam.conf

oscam.conf

[webif]
httpport = 8888
httpuser = root
httppwd = root


LOGIN="root" # aqui el user configurado en el httpuser del webif
PW="root" # aqui el password configurado en el httppwd del webif
IP="127.0.0.1"
PORT="8888" # aqui el puerto configurado en el httpport del webif
STR="TITLE>"
camd="oscam-stable-1.10" # aqui el nombre de tu archivo ejecutable de oscam, por ejemplo "oscam-stable-1.10"

P.D. Tambien, recordar que para este plugin tenemos que tener una version de oscam, que esté compilada con el webif integrado (que es lo habitual), pero si tenemos un oscam sin webif, estara reiniciando el oscam cada 20 segundos.

una pregunta, si yo tengo oscam-1.10rc-svn-sh4-linux puesto en la carpeta bin ke nombre ejecutable tendria ke poner en camd gracias .
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
siempre el nombre del archivo binario de oscam que tu quieras iniciar y comprobar, para que lo pueda encontrar tanto en su ruta como en ejecución en la memoria, por ejemplo en tu caso si el archivo se llama "oscam-1.10rc-svn-sh4-linux", pues le pondrias ese mismo nombre.