+ Responder ao Tópico



  1. #1

    Padrão Continuar o script depois do Tail -f

    Boa Tarde comunidade.

    Seguinte estou com um script que em determinado momento eu sou obrigado mostrar um log (através do comando tail -f xxx), só que como fica em loop eterno e preciso utilizar o CTRL + C para sair, com isso saio do script também.

    como posso resolver isso, pois após o tail tenho que voltar para umsa espécie de menu.


    Agradeço a ajuda.

    =====================================================================

    Bom consegui usando o comando trap continue 2 3, porém o que ocorre, nesta parte do script eu chamo um outro script que levanta um determinado serviço e através do tail -f eu observo se o mesmo está rodando...se estiver eu saio usando o Ctrl + C, que com o trap ele não sai do script, porem ele está matando meu serviço. como posso resolver meu problema?1



    Agradeço a ajuda.
    Última edição por Raphael_suporte; 27-10-2008 às 17:31. Razão: Solução

  2. #2

    Padrão

    por que precisa do "tail -f" ?

    o comando com esse parâmetro fica indeterminadamente até pressionar ctrl+c, você pode usá-lo sem o "-f".

  3. #3

    Padrão

    não posso tirar o "-f" por causa que é um log, em quanto o mesmo não "acusa" que o serviço foi levantado eu não posso fecha-lo

  4. #4

    Padrão

    Citação Postado originalmente por Raphael_suporte Ver Post
    não posso tirar o "-f" por causa que é um log, em quanto o mesmo não "acusa" que o serviço foi levantado eu não posso fecha-lo

    Tem outras maneiras de saber se um serviço está rodando... Se vc estivar em um red hat pode usar o comando 'service nome_do_servico status'...

    Se quiser realmente utilizar o arquivo. Sugiro fazer um loop dar um cat no arquivo usando | grep e uma string que identifique o serviço. Ao capturar algo vc sai do loop...

    qualquer coisa posta ai...

  5. #5

    Padrão

    pois é já estava estudando está alternativa...
    mudando o comando para

    tail arquivo > temp_file
    sleep xx
    grep 'log' temp_file

    acho que assim irá funcionar do jeito que preciso.

    na verdade estou usando uma maquina com o SUN_OS

    =================================================

    Bom funcionou bem do jeito que eu queria, muito obrigado pela atenção.
    Última edição por Raphael_suporte; 28-10-2008 às 13:26. Razão: Resolvido

  6. #6

    Padrão

    Citação Postado originalmente por Raphael_suporte Ver Post
    pois é já estava estudando está alternativa...
    mudando o comando para

    tail arquivo > temp_file
    sleep xx
    grep 'log' temp_file

    acho que assim irá funcionar do jeito que preciso.

    na verdade estou usando uma maquina com o SUN_OS

    =================================================

    Bom funcionou bem do jeito que eu queria, muito obrigado pela atenção.
    Você pode combinar os dois comandos...
    tail arquivo | grep 'log'

  7. #7

    Padrão

    Obrigado pela intenção Magnun, mas no meu caso eu não posso usar juntos por causa do comando sleep entre os dois, eu sou obrigado a usar o sleep, para que dê tempo do log "pegar" o processo rodando...

  8. #8

    Padrão

    cara...

    se você explicar o que está tentando fazer talvez alguém consiga te ajudar, mas com informações limitadas você quer que as pessoas adivinhem?

  9. #9

    Padrão

    Citação Postado originalmente por Raphael_suporte Ver Post
    Obrigado pela intenção Magnun, mas no meu caso eu não posso usar juntos por causa do comando sleep entre os dois, eu sou obrigado a usar o sleep, para que dê tempo do log "pegar" o processo rodando...
    se o sleep é pra dar tempo do serviço subir o tail tem que estar depois do sleep...

  10. #10

    Padrão

    Luciano?? não entendi seu post, o problema já foi resolvido.. junto a solução que postei e Magnun é verdade no script está assim mesmo


    Código :
    Sleep 30
    tail arquivo > tempfile
    teste $(grep 'processo' tempfile)
    if [ -n $teste ]; then
        echo "$teste" 
    else
         echo "Não foi possivel iniciar o Serviço"
    fi
    read

  11. #11

    Padrão

    é que se desde o começo você tivesse dado detalhes do que queria fazer teria sido mais fácil.