Home

Script check bloqueo OSCam

AsTuRkInG

Usuario
Amigo OpenSPA
7 Nov 2012
46
6
0
39
Como solución a los problemas que estoy teniendo con oscam que parece que se congela el funcionamiento y el webinf pero no el proceso he hecho un script basándome en los que hay por ahí.

Código:
#!/bin/sh
#
LOGIN="root"  #usuario de acceso a la web de oscam
PW="pass"    #contraseña de acceso a la web de oscam
IP="localhost" #host donde comprueba el funcionamiento de oscam, por lo general es aquí
PORT="8888"    #puerto de acceso a la interfaz web
#
while sleep 10 #tiempo que queda en espera hasta que se ejecuta de nuevo
do
  if wget --user $LOGIN http://$IP:$PORT/status.html
then
#va bien
rm status.html;
 
  else
#va mal
killall oscam.sh4
/var/bin/oscam.sh4 -b;
  fi
done

No tiene mucho que explicar, pero bueno, básicamente lo que hace es intentar descargar la pagina status.html de oscam con los datos de acceso configurados al inicio cada 10 segundos en este caso.

Si va bien tan solo borra lo que descargo y si el script detecta que la web no responde porque no se ha podido conectar lo que hace es matar los procesos que hayan quedado pillados y lo vuelve a arrancar.

Para hacerlo funcionar lo que hay que hacer es crear este fichero con nuestros datos y con el nombre "testoscam.sh" (por ejemplo) y subirlo por ftp a la ruta /var/bin.

Tras esto hay que darle permisos de ejecución así que si nuestro cliente de ftp nos lo permite lo haremos desde allí y sino desde telnet/ssh. Reiniciar el decodificador y una vez esté todo completado podremos arrancar nuestro plugin desde el propio menú del decodificador.

Hay una cosa que no he conseguido, usar el login completo de la web, o sea, usuario y contraseña. Por alguna extraña razón el comando wget incorporado en el busybox no tiene todos los mods que están presentes en linux de ahí que las etiquetas -http-user y -http-password no funcionan correctamente. La única opcion que he conseguido es ésta, no utilizar la contraseña para acceder a la pagina web.

Agradezco correcciones y si fuera de uso para alguien mas que para mi espero que este agradecido
 
  • Me gusta
Reactions: Mecha

macmanolo

Usuario Destacado
Vip OpenSPA
19 Mar 2007
1.136
262
0
Podrias probar con este:
Código:
#!/bin/sh
 
# Script para chequeo de OSCam que comprueba cada 10 segundos, si aún esta funcionando y si no es así lo arranca.
# Se registrara cuantas Veces es consultado, y cuantas veces hubo que arrancarlo de nuevo.
# El Plugin fue creado en principio para el oscam-ymod v18t33 para Receptores-Spark
# pero se puede adaptar a cualquier otra versión cambiando el nombre del oscam
# http://www.hdfreaks.cc/index.php?page=Thread&threadID=8322
#
# Autor: DrStoned
# Versión: 0.1
 
while sleep 10 # Aquí cambiar el tiempo si 10 segundos no vienen bien !!!
do
    if ps w | grep -v grep | grep -w -c "/var/bin/oscam" # Aquí poner el nombre del archivo oscam
        then
        echo""
        echo `date` "Oscam funcionando" >> /tmp/check_oscam.log # Si no se quiere el registro, comentar la línea con # !!!
    else
        killall oscam # Nombre del oscam
        sleep 1
        echo `date` "Reinicio de Oscam..." >> /tmp/oscam-crash.log # Si no se quiere el registro, comentar la línea con # !!!
        /var/bin/oscam -b -c /var/tuxbox/config/ &
    fi
done

Y aquí el archivo para que arranquecomo plugin:

plugin.xml
Código:
<?xml version="1.0"?><BOOT_CAMID
CURRENT_CAMID="oscam" /><BOOT_CAMID
CURRENT_CAMID="oscam_watchdog" />

ya me diras...

Saludos
 

qsilver83

Usuario Destacado
Amigo OpenSPA
10 Ene 2013
723
56
0
Pero no hace falta poner el xml para arrancar como plugin, con tenerlo en la carpeta plugin
 

AsTuRkInG

Usuario
Amigo OpenSPA
7 Nov 2012
46
6
0
39
Para dejar limpio el hilo y que todo el mundo pueda ver la solución a primera vista edito este post para que quede la duda inicial aquí

Bueno, estoy teniendo unos pequeños problemas técnicos. Hay veces que oscam se le va la pinza y deja de funcionar, lo se porque no descodifica los canales y la web no funciona.

Había pensado en meter un script de chequeo pero los que he visto tan solo comprueban si el proceso sigue corriendo y en mi caso si que lo hace por lo que cuando paso el check que hay por ahi me da que funciona y no lo esta haciendo de verdad.

He encontrado un check que lo que hace es un intento de conexión via web pero ... necesita tener instalado curl para concatenar y comprobar si el webinf funciona correctamente

El script que habia encontrado es este
Código:
#!/bin/sh
#
FOO="/tmp/_tmp"
LOGIN="root"
PW="dreambox"
IP="192.168.1.155"
PORT="16002"
STR="TITLE>"
#
  curl -s --digest -o - -u $LOGIN:$PW "http://$IP:$PORT/status.html?hideidle=0" | grep "$STR" > $FOO
      printf "Checking for ERRORS ...\n";
  if [ -s $FOO ]; then
    printf "\033[37;32mOscam working OK\033[37;40m\n";
else
      printf "\033[37;31mOscam ERROR!\033[37;40m\n";
    /usr/local/bin/oscam -b > /dev/null
fi
rm -f $FOO
exit 0

en teoria lo que hace es buscar el title del webinf. si lo recibe nada, si no lo recibe ... lo arranca. Claro está que hay que configurarlo para nuestro caso, tanto los datos de conexion como la ruta de la cam.

La cosa es ... curl en spark? o sino ... alguna solucion a mi problemilla? la version de oscam que uso ahora mismo es el ymodv18-t35

la solucion de mcmanolo no me valdría porque el proceso sigue ejecutándose. como digo es como si se quedara pillado.

la verdad que la opción del wget podría funcionar, tan solo habría que hacer un wget del status.html y si lo recibe ... bien, sino ... a reiniciar el oscam.

voy a intentar hacer un script para eso a ver que tal me queda
 

AsTuRkInG

Usuario
Amigo OpenSPA
7 Nov 2012
46
6
0
39
bueno, ya me lo he solucionado. cogiendo ideas de un sitio y de otro he creado este pequeño script

Código:
#!/bin/sh
#
LOGIN="root"
PW="pass"
IP="localhost"
PORT="8888"
#
while sleep 10
do  
  if wget --user $LOGIN http://$IP:$PORT/status.html 
 then
 #va bien
 rm status.html;
 
  else
 #va mal
 /var/bin/oscam.sh4 -b;
  fi   
done

no he podido adivinar como usar el mod de la contraseña en el wget de spark. ahora otra cosa que me quedaria por hacer sería que arrancara con el sistema y así si spark no arranca mi oscam lo arranca mi script
 

HSA2000

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

Este comando no me funciona:
Código:
wget --user $LOGIN http://$IP:$PORT/status.html

Me explico mejor:
  1. Entro en la consola por ssh...
  2. Ejecuto
    Código:
    wget --user root http://127.0.0.1:990/status.html
  3. Recibo esto:
    Código:
    Connecting to 127.0.0.1:990 (127.0.0.1:990)
    wget: server returned error: HTTP/1.0 403 Forbidden
Es decir no me conecta, da el error de acceso prohibido, no se le envia la clave en ningún momento por lo que es normal de que el error si tienes usuario y clave de conexión. Estoy mirando como mandarle la clave al comando wget pero no doy con ello, en linux se ejecutaria este comando:
Código:
wget -http-user=root -http-password=root http://127.0.0.1:990/status.html

Salu2...
 

AsTuRkInG

Usuario
Amigo OpenSPA
7 Nov 2012
46
6
0
39
el $LOGIN es el login que tenga el webinf de oscam, no el de telnet/ssh y a mi me funciona correctamente.

el resultado es este

Código:
Connecting to localhost:7777 (127.0.0.1:7777)
status.html          100% |*******************************| 43680  --:--:-- ETA

el tema de la contraseña no lo entiendo muy bien, debe de ser la version del wget incluida en el BusyBox v1.18.2.

y ... alguna ayuda para poner este script al arranque del deco siempre?


mirando los changelogs del busybox veo que en la version 1.20 han cambiado una cosa

wget: URL-decode user:password before base64-encoding it into auth hdr. Closes 3625

he probado tambien a ver si la opcion fuera poner la sintaxis como dicen ahí pero no he conseguido nada
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
AsTuRkinG, si pones el script en /var/bin, lo ejecutas con el menu de plugins y lo dejas activado en verde, y en cada arranque del sistema, lo volvera a ejecutar.
 

AsTuRkInG

Usuario
Amigo OpenSPA
7 Nov 2012
46
6
0
39
AsTuRkinG, si pones el script en /var/bin, lo ejecutas con el menu de plugins y lo dejas activado en verde, y en cada arranque del sistema, lo volvera a ejecutar.

acabo de ponerlo y me pone que arranque fallido, me imagino que tendre que editar el plugins.xml no?
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
¿tiene permisos 755?

¿que versión de firmware tienes ?

el archivo plugins.xml se actualiza solo, conforme a los plugins que inicies.
 

AsTuRkInG

Usuario
Amigo OpenSPA
7 Nov 2012
46
6
0
39
permisos sobre el test.s puestos a 755
Código:
[root@stlinux]#ls -la
drwxr-xr-x    1 root    root          2048 Jan 27 14:38 .
drwxr-xr-x    1 root    root          2048 Jan  1  2000 ..
-rw-r--r--    1 root    root          236 Jan 20 20:39 .crossepg_config.xml
-rwxr-xr-x    1 root    root        903844 Jan 20 20:28 crossepg
-rwxr-xr-x    1 root    root        765724 Jan 20 13:58 oscam.sh4
-rwxr-xr-x    1 root    root      1033348 Jan 19 12:10 oscam4spark_tools.s
-rw-r--r--    1 root    root            61 Jan  1  2000 plugin.xml
-rwxr-xr-x    1 root    root      1050228 Jan  2 19:28 plugin_installer.s
-rwxr-xr-x    1 root    root          243 Jan 26 01:20 test.s

firm 1.2.61 oficial

....

edit.

acabo de reiniciar el deco y ya arrancó perfectamente como plugin, ahora ... a observarlo. lo chulo chulo sería que con este script me apareciera el plugin de oscam arrancado como plugin, pero bueno, mientras funcione casi que me da igual

Voy a editar el primer post para poner el script bueno y con lo que hay que hacer para que se pueda arrancar automaticamente y demas

Espero que a alguien mas le sirva ya que es bien sencillo.
 

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
para comprobar que el plugin está funcionando, activa solo en verde este plugin, y no actives la camd oscam.
si despues del reinicio, tienes los canales descodificados es que el plugin está funcionando y se ha encargado de iniciar oscam al encontrarlo detenido.
 

HSA2000

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

He actualizado al OS Spark 1.2.61 oficial, al entrar con el ssh me dice esto:
Código:
Welcome to STMicroelectronics Base Distribution.
 
 
 
BusyBox v1.18.2 (2011-07-13 20:52:52 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

El comando wget sigue sin funcionarme:
Código:
[root@stlinux]#wget --user root http://127.0.0.1:990/status.html
Connecting to 127.0.0.1:990 (127.0.0.1:990)
wget: server returned error: HTTP/1.0 403 Forbidden
[root@stlinux]#

El usuario de la webif de oscam es root por eso le pongo ese usuario...

Salu2...
 

AsTuRkInG

Usuario
Amigo OpenSPA
7 Nov 2012
46
6
0
39
como comenté con el problema de comando para la contraseña ... en el webinf de oscam tienes contraseña? porque de momento, para que funcione el script, lo que hay que hacer es dejar sin contraseña el acceso web. ojo, al menos tiene usuario
 

HSA2000

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

Exactamente AsTuRkInG tengo clave en el webinf, lo de dejarlo sin contraseña ya lo suponía, el problema es que en el wget del OS Spark Triplex no tiene como enviar la clave, ni la pide por consola...

Salu2...
 

AsTuRkInG

Usuario
Amigo OpenSPA
7 Nov 2012
46
6
0
39
si, ahi esta el problema y el unico inconveniente que le veo yo al wget o al menos en este metodo
 

qsilver83

Usuario Destacado
Amigo OpenSPA
10 Ene 2013
723
56
0
A lo mejor se puede sustituir ese wget por uno mas avanzado que permita eso o insertar la herramienta curl, compilando y demas, a dia de hoy no he probado a compilar nada
 

saulcont

Usuario
Amigo OpenSPA
7 Nov 2012
35
3
0
y este no les sirve?

Código:
#!/bin/sh
 
OSCAM_BIN_NAME=oscam
CONFIG_DIRECTORY=/var/etc/emud/cs/oscam 
save=/tmp/oscam-crash.log       
wait=5                           
while sleep $wait
do
  if ps | grep -v grep | grep -c $OSCAM_BIN_NAME >/dev/null
  then
    echo "$OSCAM_BIN_NAME already running"
  else
    echo ""
    date >> /tmp/oscam-crash.log
    echo "$OSCAM_BIN_NAME not start running now!" >> $save
    killall oscam
    sleep 1
  $CONFIG_DIRECTORY/oscam -c $CONFIG_DIRECTORY/conf &
  fi
done
 
  • Me gusta
Reactions: Mecha

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
saulcont, ese script vale para cuando el proceso de oscam se ha cerrado por algun motivo o fallo, pero a AsTuRkInG, resulta que el oscam aparecia en el ps, pero se encontraba por algun extraño motivo bloqueado y al estar bloqueado normalmente no se puede acceder por la webif, y es por eso que quiere crear un scrip que verifique si el webif está bloqueado y en caso afirmativo cerrar el proceso y reiniciar oscam de nuevo.