Monitoramento de processos (Shoutcast e AutoDJ)

1. Monitoramento de processos (Shoutcast e AutoDJ)

Diego Macêdo
ThOhT

(usa CentOS)

Enviado em 24/08/2009 - 00:51h

Um amigo meu fez um scriptzinhu pra mim e funcionou perfeitamente para rodar as rádios!

Veja o script:
[radio.sh]
------------------------------------------------------------------
#!/bin/sh

PORTAS="8110 8112 8114"

# nao alterar a partir daqui
for PORTA in $PORTAS
do
VAR=`ps aux | grep "sc_serv $PORTA.conf" | wc -l`

echo -n "Shoutcast na $PORTA: "
if [ $VAR -eq 2 ]; then
echo "OK"
else
echo "OFF"
date
echo "- Colocando para rodar..."
cd /home/shoutcast/
./sc_serv $PORTA.conf > /var/log/shoutcast.log &
fi
echo ""
done
------------------------------------------------------------------


Copiei o mesmo código e só modifiquei o comando e estou tendo problemas com uma multiplicação dos processos.
Ele roda vários processos iguais "./sc_autodj 8110.adj" e tbm com os outros de portas diferentes.

[autodj.sh]
------------------------------------------------------------------
#!/bin/sh

PORTAS="8110 8112"

# nao alterar a partir daqui
for PORTA in $PORTAS
do
VAR=`ps aux | grep "sc_autodj $PORTA.adj" | wc -l`

echo -n "Auto-DJ na porta $PORTA: "
if [ $VAR -eq 2 ]; then
echo "OK"
else
echo "OFF"
date
echo "- Colocando para rodar..."
cd /home/shoutcast/
./sc_autodj $PORTA.adj > /var/log/shoutcast.log &
fi
echo ""
done
------------------------------------------------------------------



Ele roda os 2 script a cada 20 minutos, para que eles verifiquem se as rádios e autodjs estão funcionando perfeitamente. Se não estiverem, ele executa novamente:
------------------------------------------------------------------
0,20,40 * * * * /home/shoutcast/radio.sh > /dev/null 2>&1
0,20,40 * * * * /home/shoutcast/autodj.sh > /dev/null 2>&1
------------------------------------------------------------------

Por algum motivo ele ta executando os "autodj" novamente, mesmo eles funcionando.
Se eu rodar o comando manualmente, ele não executa esses vários processos.

Alguém saberia me dizer o que poderia ser?


  


2. Re: Monitoramento de processos (Shoutcast e AutoDJ)

thiago
tamigo

(usa CentOS)

Enviado em 13/09/2009 - 10:31h

usei o mesmo exemplo e funcionou:

#!/bin/sh

PORTAS="8000"

for PORTA in $PORTAS
do
VAR=`ps aux | grep "sc_serv $PORTA.conf" | wc -l`
VAR="http://www.criawebs.com.br"
echo -n "Shoutcast na $PORTA: "
if [ $VAR -eq 2 ]; then
echo "Deu"
else
echo "Nao deu"
date
echo "- Colocando para rodar..."
cd /home/~criawebs/shoutcast/
./sc_serv $PORTA.conf > /var/log/shoutcast.log &
fi
echo ""
done


3. Re: Monitoramento de processos (Shoutcast e AutoDJ)

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 15/09/2009 - 13:28h

Cara, a primeira coisa que eu tentaria é salvar o valor do $VAR para ver o que está saindo, pois a lógica me parece certa. Assim, tentei reproduzir seu problema e não consegui, mas uma dica é, mudar de "-eq" pra "-ge".


4. Re: Monitoramento de processos (Shoutcast e AutoDJ)

dfn
IDFNI

(usa Debian)

Enviado em 15/11/2011 - 03:00h

Bom estava testando esse script no Debian 4 sem sucesso pois quando ele chegava na parte da variável:
VAR=`ps aux | grep "sc_serv $PORTA.conf" | wc -l` 

ele não apresenta o resultado "2" mas sim o "1" (por via das duvidas sempre veja a saída da variável $VAR para corrigir a linha a baixo quando necessário )
então modifiquei a linha:
if [ $VAR -eq 2 ]; then  

para:
 if [ $VAR -eq 1 ]; then  

e apaguei a linha:
 VAR="http://www.criawebs.com.br"  

pois ela estava dando conflito com o resultado do $VAR
ai funcionou perfeitamente
ahhhh
eu testei no ubuntu e não foi necessário nenhuma modificação apenas apaguei a linha:
 VAR="http://www.criawebs.com.br"  

e deu tudo certo!!

tamigo escreveu:

usei o mesmo exemplo e funcionou:

#!/bin/sh

PORTAS="8000"

for PORTA in $PORTAS
do
VAR=`ps aux | grep "sc_serv $PORTA.conf" | wc -l`
VAR="http://www.criawebs.com.br"
echo -n "Shoutcast na $PORTA: "
if [ $VAR -eq 2 ]; then
echo "Deu"
else
echo "Nao deu"
date
echo "- Colocando para rodar..."
cd /home/~criawebs/shoutcast/
./sc_serv $PORTA.conf > /var/log/shoutcast.log &
fi
echo ""
done










Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts