Crear logs de un proceso [Solucionado]
Publicado: 10 Mayo, 2010 - 15:15 Crear logs de un proceso [Solucionado]
Hola a todos, estos dias estoy probando con CCcam, es un server para gestionar ECM y EMM (para television de pago).
El tema es que tengo el binario en /usr/local/bin/CCcam.x86 y si lo ejecuto tengo este output:
# /usr/local/bin/CCcam.x86 -d
16:07:59.236 CCcam: ======================================================================
16:07:59.237 CCcam: starting CCcam 2.1.4 compiled on Jan 30 2010@17:00:48
16:07:59.237 CCcam: ======================================================================
16:07:59.237 CCcam: online using nodeId xxxxxxxxxxxxxxxxxxx
16:07:59.238 CCcam: read config: cannot open /var/tuxbox/config/newcamd.conf or not found
16:07:59.239 CCcam: create 1 cam device(s)
16:07:59.260 CCcam: readKeyfile: cannot open /var/keys/SoftCam.Key or not found
16:07:59.260 CCcam: readKeyfile: cannot open /var/keys/AutoRoll.Key or not found
16:07:59.260 CCcam: static cw not found or bad
16:07:59.260 CCcam: parsed 0 entries from /var/etc/CCcam.prio
16:07:59.266 CCcam: added 1327 provider names from /var/etc/CCcam.providers
16:07:59.406 CCcam: added 10081 channel names from /var/etc/CCcam.channelinfo
16:07:59.406 CCcam: server started on port 15000
16:07:59.409 CCcam: newcamd server 127.0.0.1:18000 user: userx
16:07:59.415 CCcam: newcamd caid 0100 providers 1 userid: 0
16:07:59.415 CCcam: newcamd card serial: 00000000
16:07:59.415 CCcam: newcamd prov 00 004106 00000000
16:08:02.152 CCcam: login from xxxx.xx.xx
16:08:02.321 CCcam: login from xx.xx.xx.xx
16:08:02.438 CCcam: user userx login attempt from xx.xx.xx.xx
16:08:02.581 CCcam: user userx login attempt from xx.xx.xx.xx
16:08:02.582 CCcam: client userx@xxxxxxxxxxxxxxxx, running CCcam 2.1.4
16:08:02.714 CCcam: client userx@xxxxxxxxxxxxxxxx, running CCcam 2.1.2
...Lo ejecuto con el parametro "-d" para que se ejecute en foreground:
# /usr/local/bin/CCcam.x86 -h
usage: CCcam [-d] [-C <configfile>]
-d run in the foreground (implies -v and -q)
-v be verbose
-q don't use syslog (use on old systems)
-C <configfile> use <configfile> instead of default (/var/etc/CCcam.cfg)
-f filter on specific demux data (saves some CPU,
but some platforms might not handle this very well)
-n show network packets
-s disable server
-t show timing
-l disable self-learning capabilitiesLo que me interesa es que con la salida crear un log en /var/log, si ejecuto de esta manera no pasa nada al fichero log:
# /usr/local/bin/CCcam.x86 -d > /var/log/CCcam.log El log esta vacio:
# cat /var/log/CCcam.log No me explico que puede pasar, he cambiado los permisos, borrar el log, volver a crearlo, pero nada.
¿Alguien me puede ayudar con esto?
Muchas gracias y saludos.
- Inicie sesión o regístrese para enviar comentarios
- 1264 lecturas


Intentalo agregando a ver que pasa
# /usr/local/bin/CCcam.x86 -d >> /var/log/CCcam.logEdito :¿Por que lo ejecutas como root?
probablemente lo consigas si rediriges stdin y stder al archivo log. Lee sobre redirección en Bash
/usr/local/bin/CCcam.x86 2> /var/log/CCcam.logHas probado a hacerlo así?
nohup /usr/local/bin/CCcam.x86 > /var/log/CCcam.log &
Un saludo ;-)
Hola, gracias por las respuestas, he probado todas las opciones, pero nada.
Para redirigir la salida stderr y stdout a un fichero he probado con esto:
/usr/local/bin/CCcam.x86 -d &> /var/log/CCcam.logPero nada, en /var/log/CCcam.log no aparece nada.
En cuanto a ejecutar como "root", lo hago porque en los tutoriales que he leido pone eso, pero me imagino que esto se podra cambiar. Primero quiero solucionar lo del log, que me tiene un poco mosca.
Lo de ">" y ">>" creo que es para borrar lo que habien en el fichero o añadir al final, ¿no?
Seguire con ello, gracias y saludos.
Por si alguien quiere probar os pongo el binario: http://dl.dropbox.com/u/1541853/CCcam.x86
Una pregunta, si usas -d para que se ejecute en segundo plano... ¿por qué terminas el comando con &?
Tal vez probando con otras opciones (como ...-v & >...).
Lo de ">" y ">>" creo que es para borrar lo que habien en el fichero o añadir al final, ¿no?
la primer opción ,redirije y sobrescribe lo que haya en el archivo ,la segunda opción agrega a continuación .
Se me ocurre ( por si las moscas ) que intentes escribirlo en otro directorio por ejemplo ~/log , a ver que ocurre. y/o tal cual dice blackhalo ,con otras opciones que no sea -d
Edito :¿Intentaste algo asi como ,?
# /usr/local/bin/aplicación -v > /home/usuario/log &A ver que pasa ,y te fijas si en tu /home , te ha creado el archivo
Estoy flipando, no se porque no redirige al fichero log. He probado todo lo que me habeis dicho y mas cosas. En otros foros he encontrado esto:
#!/bin/shprocess=`ps auxwww | grep CCcam.x86 | grep -v grep | awk '{print $1}'`
if [ -z "$process" ]; then
echo "Couldn't find CCcam.x86 running. Restarting server-binary" >> /var/log/cccam.check
nohup /var/bin/CCcam.x86 -d >> /var/log/CCcam.log &
else
echo "CCcam.x86 is still OK!" >> /var/log/cccam.check
fi
Utiliza el comando "nohup", no he entendido su funcion:
nohup - run a command immune to hangups, with output to a non-tty
He probado el script pero tampoco me funciona.
¿Se puede saber que "fd" abre cada proceso? Es lo malo de los binarios, que no tienes ni idea de lo que hacen...
Seguire con ello. Gracias y saludos.
Ya esta!!! Lo he hecho de otra forma, asi me ha servido para aprender sobre syslog.
Resolucion:
En la configuracion de CCcam se activa la opcion "DEBUG".
Se ejecuta el binario de esta forma:
/usr/local/bin/CCcam.x86 -v &Observamos que los logs se guardan en syslog:
cat /var/log/syslogCreamos los filtros para syslog:
nano /etc/rsyslog.conf#### Filtros para CCcamif $msg contains 'bad command' then /var/log/cccam-bad.command.log
if $msg contains 'illegal user' then /var/log/cccam-illegal.log
Y se reinicia syslog:
/etc/init.d/rsyslog restartY listo! Ya tenemos los logs que me interesan en /var/log/:
# cat /var/log/cccam-bad.command.logMay 11 11:12:42 server CCcam: kick xxx.xxx.xxx.xxx(userx), bad command
May 11 11:53:00 server CCcam: kick xx.xx.xx.xx(), bad command
May 11 11:58:17 server CCcam: kick xx.xx.xx.xx(), bad command
...
# cat /var/log/cccam-illegal.logMay 11 11:12:42 server CCcam: illegal user userx from xxx.xxx.xxx.xxx
May 11 11:12:52 server CCcam: illegal user userx from xxx.xxx.xxx.xxx
...
Ahora solo me falta activar el fail2ban para ese servicio, que anda mucho "piratilla" suelto!
Gracias a todos por vuestra ayuda, no es la forma que pensaba al principio, pero creo que es bastante eficiente y ademas he aprendido como configurar el syslog.
Saludos y hasta pronto.
fail2ban? Si esto es solo para tu casa!! ;)
fail2ban? Si esto es solo para tu casa!! ;)
No solo es para mi casa, cuando salgo fuera puedo ver GolTV en el portatil con un tunner TDT.
Saludos.