Home

Script check bloqueo OSCam

saulcont

Usuario
Amigo OpenSPA
7 Nov 2012
35
3
0
A mi con el wget me sale esto..

Petición HTTP enviada, esperando respuesta... 401 Unauthorized
Falló la autorización.
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
tienes que dejar el webif sin contraseña, el wget tiene un bug para accesos con las contraseñas
 

qsilver83

Usuario Destacado
Amigo OpenSPA
10 Ene 2013
723
56
0
Claro el wget solo piedes poner el usuario, wget -u, lo del bug no lo sabia, pero el curl no se puede compilar para sh4
 

saulcont

Usuario
Amigo OpenSPA
7 Nov 2012
35
3
0
visto y considerando que el script no funciona con el nuevo firmware... ni aun sin contraseña... alguien tiene alguna solucion? o tengo que seguir utilizando un script desde el pc...
 

qsilver83

Usuario Destacado
Amigo OpenSPA
10 Ene 2013
723
56
0
De momento no, pero no se como se puede saber que el oscam esta bloqueado, hay algun flag cuando haces un ps que te indique el estado?
 

saulcont

Usuario
Amigo OpenSPA
7 Nov 2012
35
3
0
Bueno, les cuento como lo hago yo. Tengo este script en el PC, en un crontab (ubuntu)
Código:
#!/bin/sh
#
LOGIN="usuario"
IP="192.168.X.XX"
PORT="16001"
#
while sleep 10
do 
  if wget --user $LOGIN http://$IP:$PORT/status.html
then
#va bien
rm status.html;
 
  else
#va mal
/home/usuario/telnet.sh;
  fi 
done

Y el script telnet, hace esto...

Código:
#!/usr/bin/expect -f
spawn telnet "192.168.X.XX"
expect "login:"
send "root\r"
expect "Password:"
send "root\r"
expect ">"
send "killall oscam.sh4\r"
expect ">"
send "/var/bin/oscam.sh4 -b -c\r"
expect ">"
exit

De esta forma, el PC sabe si se queda pillado, ya que esto lo deberia saber el propio deco, peeeero... asi que de esta forma, cuando no recibe el status.html, se mete en el deco, mata al Oscam y lo relanza.... opiniones y correcciones, bienvenidas seran...
 
  • Me gusta
Reactions: Mecha

qsilver83

Usuario Destacado
Amigo OpenSPA
10 Ene 2013
723
56
0
No se me ocurre como saber si el proceso esta bloqueado, como no sea configurando el oscam.log para que te devuelva el estado cada minuto, lero no se si se puede
 

kako121

Asimilando La Red
Vip OpenSPA
10 Dic 2011
625
151
0
Yo puse este Oscam hace unos días y parece que no se cae, se pierde poco por probar ;)

Suerte!
 

Adjuntos

  • oscam-1.zip
    426 KB · Visitas: 31
  • Me gusta
Reactions: Mecha

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
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.
 

Adjuntos

  • plugin_Spark_chequear_oscam.zip
    81,6 KB · Visitas: 47

HSA2000

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

Al ejecutar el cursl me dice "Segmentation fault"...

Salu2...
 

qsilver83

Usuario Destacado
Amigo OpenSPA
10 Ene 2013
723
56
0
Siento que no funcione, deberia de probar antes de decir las caqsl haber si me pongo otra vez y empiezo avanzar

Gracias a todos vosotros por aportar lo que sabeis
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
Hola...

Al ejecutar el cursl me dice "Segmentation fault"...

Salu2...
yo lo he probado en el triplex con firmware de spark 1.2.61, y no tengo problemas.
instala el plugin que he puesto, por el metodo automático desde USB.

¿ese error te sale al ejecutar el plugin, o con algún comando en concreto al ejecutar curl ?

imagen001ps.png
 

oskarius

Usuario Destacado
Vip OpenSPA
8 Dic 2011
532
31
0
Hola...

Al ejecutar el cursl me dice "Segmentation fault"...

Salu2...
yo lo he probado en el triplex con firmware de spark 1.2.61, y no tengo problemas.
instala el plugin que he puesto, por el metodo automático desde USB.

¿ese error te sale al ejecutar el plugin, o con algún comando en concreto al ejecutar curl ?

imagen001ps.png
yo instalo el plugin por usb y por telnet me da error. Lo instalo por ftp y cuando activo el plugin en el menu de plugins del deco se me activa bien y no me da ningun fallo.
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
ejecutandolo desde el menu de plugins del deco, puede que no te de el mensaje de error.

ejecutandolo por telnet ¿que fallo te da?
 

oskarius

Usuario Destacado
Vip OpenSPA
8 Dic 2011
532
31
0
ejecutandolo desde el menu de plugins del deco, puede que no te de el mensaje de error.

ejecutandolo por telnet ¿que fallo te da?
Exacto, cuando lo ejecuto desde el menu de plugins del deco no me da ningun fallo, esta activado correctamente, ahora, no se si hace algo o no hace nada.
Cuando lo ejecuto por telnet me da este fallo:

Cheking Webif of oscam for errors....
OSCAM ERROR!
killall: oscam:no process killed
iniciando oscam
chequear_oscam.sh: line 31: /var/bin/oscam: nor found
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
¡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.
 

oskarius

Usuario Destacado
Vip OpenSPA
8 Dic 2011
532
31
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.
ok mecha ahora si, no me habia dado cuenta.
 

HSA2000

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

Tengo el script copiado, desde el shell sale esto:
Código:
[root@stlinux]#./chequear_oscam.sh
Checking Webif of Oscam for ERRORS ...
Segmentation fault  <--- Aqui el error...
Oscam ERROR!
Iniciando oscam-1.10rc-svn-sh4-linux

El oscam estaba arrancado y funcionando, tengo Spark 1.2.61, bueno tenia el HDMU_10630_E2_spark7162_211_git_5282_nodebug_nolcd_Diff0_gst_Flash y luego instale desde el Spark Online el firmware 1.2.61...

Salu2...
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
He probado con la misma versión de oscam que tienes, y no me reproduce ese error, por lo que problema con la interfaz web del oscam no es, y la libreria del curl (libcurl.so.4.2.0) tambien la tienes en el sistema porque si no el mensaje seria de libreria no encontrada.

Buscado el error en google, Segmentation fault, parece que se produce por una violación del programa curl de acceso a la memoria, a alguna dirección que no existe (fallo en la compilación del programa, que es raro porque a mi no me falla en el mismo sistema de spark que tu usas) o que esté siendo utilizada dicha dirección de memoria por otro programa.

Prueba por telnet, a liberar memoria, con los siguientes comandos:
free
sync
echo 3 > /proc/sys/vm/drop_caches
free
utiliza los comandos en dicho orden para ver la cantidad de memoria libre disponible y la liberada posteriormente.
Si luego se reproduce igualmente el error se segmentation, prueba a reiniciar el deco, para reiniciar los programas cargados en la memoria.
Tambien ejecuta este plugin antes que otros, a ver si es incompatibilidad con algun otro plugin que tengas.

Tambien puedes probar con otra versión de la libreria "libcurl.so.4.2.0" distinta a la que tienes en el sistema, por si fuese una posible causa, te pongo aqui la que viene en el paquete de stlinux24-sh4-curl-7.20.0-8.sh4.rpm y que para usarla tienes que reemplazar la existente en la ruta /root/spark/lib/sclib/libcurl.so.4.2.0
(guardate primero la que existe en dicha ruta, por si quieres volver a reponerla).
 

Adjuntos

  • libcurl.so.4.2.0.zip
    168,1 KB · Visitas: 3