Captura a saída do log de rotação rápida

0

Eu estou lidando com um programa de terceiros com mau comportamento, o fornecedor do qual parece feliz em ajudar se eu puder fornecer-lhes o log de depuração. Eles me disseram como ativar e desativar o log de depuração, no entanto, em algum lugar dentro do programa, há um limite no arquivo de log de 65 KB - de acordo com o fornecedor, isso é codificado permanentemente. Assim que esse limite de log é atingido, o log inteiro é simplesmente excluído e um novo arquivo com o mesmo nome é criado. Como resultado, apenas cerca de 1 minuto do log de depuração é salvo antes que o log seja excluído e um novo seja criado. Tentando tail -fo log não ajuda como quando o novo é criado, não é o mesmo arquivo mais, então tailapenas pára.

A coisa toda se torna mais complicada pelo fato de que o programa está rodando em um linux embutido com suporte de ferramenta mínimo absoluto (não há ssh ou ftp nem telnet para se conectar a ele). Não há findcomando, não locateou slocatenem estou falando sobre os compiladores. Há shell lá - she ashisso é tudo. Eu estou realmente em uma perda de como capturar cerca de 20 minutos de log de depuração. Qualquer sugestão seria mais do que apreciada.

Aleks G
fonte
1
Se tail -Ffor suportado, use isso.
Yoonix
Você pode ver cron empregos? provavelmente o programa teria escrito cron job, tente editar o tempo dele, para que você possa escapar da exclusão
Saikrishna
@Sai A exclusão não ocorre por hora, mas pelo tamanho do arquivo de log. Assim que o arquivo de log atingir 65535 bytes, ele será excluído.
Aleks G
Você tem certeza de que a exclusão é feita por programa ou /etc/logrotate.d?
Saikrishna
@Sai não existe /etc/logrotate*. É uma versão muito reduzida do Linux incorporado.
Aleks G

Respostas:

0

Você pode tentar fazer um pequeno script que leia o arquivo de log e o acrescente a outro arquivo a cada 50 segundos aprox.

Se você tem gato ou eco, isso deve ser muito fácil.

Se você editar a pergunta para postar nomes de exemplo do arquivo de log, posso ajudar a corresponder isso em um script bash

Bruno9779
fonte
Sim, obrigado, essa é a única coisa em que consigo pensar. Claro, então terei que percorrer manualmente a saída resultante e excluir registros repetidos.
Aleks G