Posso extrair a linha de comando completa de um arquivo de dados 1.23 no topo?

6

Meus servidores de produção têm atop versão 1.23, e eu tenho um arquivo de dados escrito por ele do qual eu preciso extrair o linha de comando completa de um processo.

Infelizmente:

  • essa versão de atop não exibirá dados além da 80ª coluna da exibição
  • a rolagem horizontal foi introduzida apenas em 1,27
  • versões mais recentes se recusam a ler arquivos de dados gravados por versões mais antigas
  • o arquivo em si é compactado, portanto, uma pesquisa simples de strings não funcionará

Existe alguma maneira de recuperar a linha de comando completa do meu arquivo de dados?

    
por Flup 14.05.2013 / 12:54

2 respostas

8

Editar . Depois de verificar a página man, parece que você pode obter a linha de comando completa com:

atop -r /var/log/atop.log -P PRG

Alguma abordagem geral para extrair dados de arquivos compactados:

Eu posso extrair dados dos arquivos de log no topo com:

xxd -p < /var/log/atop.log |
  fold -w4 |
  awk -v cmd='xxd -r -p | zlib-flate -uncompress | strings' '
    /789c/{if (x) close(cmd); x=1}; x {print | cmd}' |
  grep your-command

A ideia é detectar o cabeçalho zlib (começando com 789c ) e passar isso para zlib-flate -uncompress . Não garantida à prova de balas e não a maneira mais eficiente de fazer isso, mas faz o truque para mim.

Alternativas para zlip-flate -uncompress (parte de qpdf ) incluem openssl zlib -d e pigz -zd .

    
por 14.05.2013 / 13:27
0

Na nova versão há comando-c interativo Mostra a linha de comando do processo (com args)

    
por 24.11.2018 / 12:29

Tags