Ir para conteúdo
Fórum Script Brasil
  • 0

LER ARQUIVO LOG PYGTAIL PYTHON


theoscaargomes

Pergunta

Boa tarde!!

Preciso de um programa que leia o arquivo de LOG do SSH, exemplo:

Primeira leitura do arquivo, leio e exibo 10 linhas com as 10 conexões de SSH, certo? Na próxima leitura desse mesmo arquivo, por exemplo, no final da tarde.. devo exibir somente as linhas que ainda não foram exibidas, ex> da linha 11 a linha 50 por exemplo.

Pesquisando, encontrei algo chamado PYGTAIL, mas não entendi. Alguém pode me ajudar?

Não precisa necessariamente usar essa biblioteca...

Oscar Gomes.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Cara,

Eu estava procurando exatamente a mesma coisa e me deparei com seu post, já me ajudou muito!
Não sei se você já resolveu seu problema, mas eu dei uma testada na biblioteca e posso te ajudar. Caso já tenha encontrado a solução para seu problema é só desconsiderar minha resposta.

No exemplo abaixo eu fiz um teste bem simples. Veja que estou lendo um arquivo de log que se encontra no diretório /app/log/, como eu coloquei em um while True, ele sempre vai estar lendo esse arquivo. Enquanto o arquivo some.log está sendo lido, o arquivo some.offset está sendo alterado em outro diretório (/app/offset/), esse arquivo controla quais linhas já foram do arquivo de log já foram lidas.

Assim, você pode abrir uma conexão ssh e passar o arquivo para que seja lido. O offset pode ficar no mesmo diretório ou em outro que você quiser, caso você não insera um diretório para offset_file, ele vai criar o arquivo de offset no mesmo diretório do arquivo de log.

Se você executar o exemplo abaixo, você verá que, sempre que você atualizar o arquivo some.log, ele irá realizar o print apenas das novas linhas inseridas. Se você abrir o arquivo offset você verá que ele atualizou a linha que ele já leu. 

O arqui offset consiste em apenas duas linhas, a linha onde começou a leitura e a linha onde ele fez a última leitura.
 

if __name__ == '__main__':
    import sys
    from pygtail import Pygtail

    while True:
        for line in Pygtail("\app\log\some.log", offset_file="\app\offset\some.offset"):
            sys.stdout.write(line)

 

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...