Como despejar dados gravados no disco

2

Pergunta:

Como despejar dados (byte-stream) escritos de um aplicativo no sistema de arquivos? (algo como o tcpdump, mas para o arquivo IO / file).

O ideal é poder "anexar" e despejar o fluxo enquanto ele está sendo escrito, sem configuração específica do aplicativo.

Contexto:

Eu tenho um aplicativo Java que é implantado em alguns servidores. Este aplicativo está usando o JCL + Log4j para registrar todo tipo de material de tecnologia.

Em alguns deles, estou tendo um problema bastante ... incomum: frequentemente, arquivos de log são poluídos por dados binários.

Mesmo aplicativo, mesma configuração, mesmo hardware, mesmo sistema operacional ... comportamento diferente

Meus logs estão todos aqui: se eu processar o arquivo de log com "strings" tudo volta ao normal, mas como eu tenho, digamos 90% de lixo binário, o pré-processamento dos arquivos leva muito tempo.

Objetivo:

Beeing capaz de descobrir se o problema está dentro do aplicativo java / JVM ou no sistema operacional / hardware

    
por Cerber 05.02.2013 / 15:46

1 resposta

1

Use strace, como:

strace -p PID -e write -s 1024

ele descarregará as chamadas do sistema de gravação do processo. Com tamanho máximo de 1024 cordas.

    
por 05.02.2013 / 15:55