Boas
a necessidade assim o pediu...
de vez em quando o meu oscam deixava de ler o cartão, não sei porquê...
resolvi fazer um script para verificar se o oscam estava a ler o cartão.
no oscam.conf além das configurações habituais é necessário meter estas duas
com estas linhas o oscam gera um ficheiro de log em /tmp/oscam.log
quando esse ficheiro tem mais de 10k de tamanho é renomeado para /tmp/oscam.log-prev
oscam.server
o script
/var/bin/teste_oscam.sh >> chmod 755
para fazer o teste se está tudo Ok:
entrar na box por telnet
> /var/bin/teste_oscam.sh
> cat /tmp/oscam.teste
deve aparecer umas quantas linha, se não aparecer algo está mal
> cat /tmp/oscam_cron.log
deve aparecer o que está no echo do script
depois dos teste
activar o crontab, e meter esta linha:
no meu caso o ficheiro oscam está em /var/bin alterar ao "gosto" no script
depois dos testes remover os # de killall -9 oscam do sleep 2 e do /var/bin/oscam
isto pode não estar bem explicado, mas eu e os manuais não somos grandes amigo
bons teste
a necessidade assim o pediu...
de vez em quando o meu oscam deixava de ler o cartão, não sei porquê...
resolvi fazer um script para verificar se o oscam estava a ler o cartão.
no oscam.conf além das configurações habituais é necessário meter estas duas
Código:
[global]
logfile = /tmp/oscam.log
maxlogsize = 10
...
com estas linhas o oscam gera um ficheiro de log em /tmp/oscam.log
quando esse ficheiro tem mais de 10k de tamanho é renomeado para /tmp/oscam.log-prev
oscam.server
Código:
[reader]
label = card # é este nome que se vai meter no script em READER="card"
...
/var/bin/teste_oscam.sh >> chmod 755
Código:
#!/bin/sh
READER="card"
TODAY=$(date +%R-%d/%m/%Y)
sed -n "/found.*$READER/p" /tmp/oscam.log-prev > /tmp/oscam.teste
CONTALINHAS=`cat /tmp/oscam.teste | wc -l`
if [ $CONTALINHAS -ne 0 ]; then
echo " $TODAY - Sao $CONTALINHAS linhas, Oscam a ler o card muito bem" >> /tmp/oscam_cron.log
else
echo " $TODAY - Oscam nao le o card muito bem" >> /tmp/oscam_cron.log
#killall -9 oscam
#sleep 2
#/var/bin/oscam -b &
fi
exit 0
entrar na box por telnet
> /var/bin/teste_oscam.sh
> cat /tmp/oscam.teste
deve aparecer umas quantas linha, se não aparecer algo está mal
> cat /tmp/oscam_cron.log
deve aparecer o que está no echo do script
depois dos teste
activar o crontab, e meter esta linha:
Código:
0-59/5 * * * * /var/bin/teste_oscam.sh
no meu caso o ficheiro oscam está em /var/bin alterar ao "gosto" no script
depois dos testes remover os # de killall -9 oscam do sleep 2 e do /var/bin/oscam
isto pode não estar bem explicado, mas eu e os manuais não somos grandes amigo
bons teste