Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



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

    Veja o script:
    radio.sh
    Código :
    #!/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
    Código :
    #!/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:
    Código :
    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. Na linha:

    Código :
    if [ $VAR -eq 2 ]; then

    Tente trocar o 2 por 1 e veja se resolve o problema.

    Até!



  3. Se eu alterar o 2 pelo 1, vai mudar a ordem da lógica do IF. Deveria ficar assim então né?

    Código :
    #!/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 1 ]; then
                    echo "OFF"
                    date
                    echo "- Colocando para rodar..."
                    cd /home/shoutcast/
                    ./sc_autodj $PORTA.adj > /var/log/shoutcast.log &
            else
                    echo "OK"
            fi
            echo ""
    done

    Gostaria que o crontab executasse isso a cada 5 min, ficaria assim? :
    Código :
    0-59/5 * * * * sh /home/shoutcast/autodj.sh > /dev/null 2>&1

    Abraços e obg pela atenção!

  4. Geralmente, esses problemas estão relacionados com a variável PATH. Quando você roda o comando manualmente, o script recebe a variável do ambiente. Já no caso do cron, ele não possui a variável PATH definida. O que deve estar acontecendo é que os comando "ps", "grep" e "wc" não estão sendo encontrados, e VAR está recebendo um valor arbitrário diferente de 2, ocasionando que ele sempre entrará na clausula else. Tende trocar as chamadas relativas aos comando por chamadas a endereços absolutos. Ex: "ps" por "/usr/bin/ps". Acho que deve resolver.



  5. Vamos fazer o seguinte... é difícil fazer alteração em um script sem saber o que o script espera encontrar. Tenha certeza de que os dois scripts estão rodando e manda o resultado dos seguintes comandos:

    Código :
    # ps -aux | egrep "(sc_autodj|sc_serv)"

    Código :
    # pidof sc_autodj
    # pidof sc_serv

    Até!






Tópicos Similares

  1. Indicação de consultor para o processo de SCM.
    Por MaxAdriano no fórum Redes
    Respostas: 16
    Último Post: 09-09-2013, 22:05
  2. Respostas: 6
    Último Post: 13-12-2010, 19:22
  3. Respostas: 1
    Último Post: 03-04-2009, 10:20
  4. Quotas de espaço e de Processos
    Por les4do no fórum Servidores de Rede
    Respostas: 3
    Último Post: 19-01-2005, 14:38
  5. Duplicação de CD
    Por no fórum Servidores de Rede
    Respostas: 0
    Último Post: 19-01-2004, 12:07

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L