dinohills Postado Maio 4, 2012 Denunciar Share Postado Maio 4, 2012 (editado) Bom dia, seguinte eu montei 2 funções em php para ler a quantidade de linhas do final de um arquivo txt. Vou usar isso para ficar monitorando em tempo real o log do squid e ver o que o pessoal esta acessando.Bom mas o que vem ao caso é. Eu fiz ela de 2 jeitos uma usando somente php e outra usando o exec com o comando tail do linux.Gostaria de saber qual vocês acham melhor. Ambas estão funcionando perfeitamente.função 1<?php function ultimas_linhas($arquivo, $qtd_linhas) { $arq = file($arquivo); $tot_linha = count($arq) - 1; $ultimas_linhas = $tot_linha - $qtd_linhas; for ($i = $tot_linha; $i > $ultimas_linhas; $i--) { echo $arq[$i]."<br/>"; } } ultimas_linhas('access.log', 50); ?> função 2 <?php function ultimas_linhas2($arquivo,$qtd_linhas){ exec("tail -n $qtd_linhas $arquivo",$saida); for($i=count($saida);$i >= 0;$i--){ echo $saida[$i]."<br/>"; } } ultimas_linhas2('access.log', 50); ?>Qual dessas vocês usariam ? Editado Maio 4, 2012 por dinohills Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 4, 2012 Denunciar Share Postado Maio 4, 2012 Bem eu usaria a Primeira tendo em vista que é tudo em PHP, então seria o que eu conseguiria fazer.. no seu caso eu te indico a segunda função pois esta com varias linha a menos de código o que ajuda no processamento da função apesar que a diferença é minuscula ... porem é bem visivel que com a função toda em PHP ele tem um trabalho a mais que é ler todo o arquivo conta todas a linhas para chegar ao final o que deve dar algum atraso de resposta o que na função 2 é diferente já que ele trabalha diretamente com o comando do linux, o que seria decerta forma proprio para esse tipo de caso... como não entendo muito ou melhor nada de linux em questões de comandos e etc, eu ficaria com a primeira função por entender 100% do código escrito. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Maio 4, 2012 Denunciar Share Postado Maio 4, 2012 então... eu ficaria com a segunda pelo fato do próprio Linux fazer o gerenciamento...eu trabalhei uns tempos atrás em uma empresa que desenvolvia sistemas de CallCenter... então como o fluxo de ligação era grande, tinha várias telas de monitoramento e muitas usavam tail e outros comandos pra fazer a leitura de logs e tal...porque usando o código PHP, você carrega o arquivo "todo" como um array (na memória) pra fazer a leitura dos 50 últimos registros... o tail -n abre o arquivo a partir da linha especificada e como é externo faz o trabalho de limpar da memória... coisa que o PHP só vai fazer quando você sair da página...minha opinião rsabrs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dinohills Postado Maio 4, 2012 Autor Denunciar Share Postado Maio 4, 2012 (editado) Tarde,então estive pensando aqui e acho que vou acaba usando a segunda mesmo.Porque alem do fato de ler somente as ultimas linhas do arquivo sem precisar ler o arquivo todo eu vou usar também egrep e awk para filtrar os ip's caso eu queira monitorar um ip a parte e também com awk eu já pego os campos que me interessa no log.Mas no fim das contas eu vo incrementa as duas. Nunca se sabe quando uma pode ser mais util que a outra né. Editado Maio 4, 2012 por dinohills Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 4, 2012 Denunciar Share Postado Maio 4, 2012 Pois é Churc, sabendo que a 2 é melhor em desempenho e processamento que a 1 também fico com ela.. .mas como eu disse sabemos que as 2 funciona e paa que serve, mas por questão de conhecimento do que se esta fazendo com certeza ainda seria a Função 1 ... hoje eu sei que se eu der um tail vou abrir o arquivo do log nas ultimas linhas mas se eu tivess que fazer isso ontem com certeza cabaria saindo a primeira função asuhshauhsua.mesmo assim achei muito interessante já tinha visto outras coisas do Linux e PHP trabalhando Junto e isso é algo muito bacana .. essa união com certeza gerar um bom ambiente de trabalho final para um cliente.. já que facilita bastante é inumeras questões =]...mt bom dino. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willian Gustavo Veiga Postado Maio 5, 2012 Denunciar Share Postado Maio 5, 2012 Confesso que quando li o título do seu tópico pensei na hora sobre o comando tail :)Eu ficaria com a implementação em PHP, por funcionar em qualquer SO que roda o PHP. Mas já que você quer monitorar logs do squid, talvez seja melhor usar a segunda implementação. Sem contar que, como os amigos acima disseram, ela é mais performática.Um abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
dinohills
Bom dia,
seguinte eu montei 2 funções em php para ler a quantidade de linhas do final de um arquivo txt.
Vou usar isso para ficar monitorando em tempo real o log do squid e ver o que o pessoal esta acessando.
Bom mas o que vem ao caso é. Eu fiz ela de 2 jeitos uma usando somente php e outra usando o exec com o comando tail do linux.
Gostaria de saber qual vocês acham melhor.
Ambas estão funcionando perfeitamente.
função 1
função 2Qual dessas vocês usariam ?
Editado por dinohillsLink para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.