Existe um comando para obter o Apache para exibir sua configuração em execução da memória?

5

Existe alguma maneira de fazer com que o servidor web Apache exiba sua configuração atual, a partir da memória, ou seja, não analisando os arquivos nos diretórios config?

Eu apenas consegui sobrescrever acidentalmente a configuração do vhost em um servidor (sim, eu sei, deveria ter tido um backup!), e enquanto eu posso reconstruí-lo com bastante facilidade (servidor muito novo, configuração simples e portanto, nenhum backup ainda - essa era a tarefa de amanhã), estava se perguntando se, em geral, havia alguma maneira de fazer com que o Apache exibisse sua configuração em execução, em vez de apenas analisar os arquivos (como o httpd -S parece fazer).

Já pesquisou pesquisando e pesquisando aqui no ServerFault, mas não encontrou nada. Eu posso imaginar que isso pode salvar o bacon de algumas pessoas ao longo do tempo. :)

    
por Pyromancer 04.11.2015 / 20:50

1 resposta

6

Isto é como recuperar a configuração do Apache2 da memória:

  1. pegue o script dump-all-memory-of-pid.sh mencionado neste thread serverfault.

o Descarregue a memória de um processo linux para arquivar

#!/bin/bash
grep rw-p /proc/$1/maps | sed -n 's/^\([0-9a-f]*\)-\([0-9a-f]*\) .*$/ /p' | while read start stop; do gdb --batch --pid $1 -ex "dump memory $1-$start-$stop.dump 0x$start 0x$stop"; done
  • coloque isso em um arquivo (por exemplo, "dump-all-memory-of-pid.sh") e torne-o executável
  • uso: ./dump-all-memory-of-pid.sh [pid]
  • A saída é impressa em arquivos com os nomes: pid-startaddress-stopaddress.dump
  • Dependências: gdb
  1. obtenha o pid do seu processo do apache

    pgrep -uroot apache2
    
  1. despeja a memória do processo

    mkdir /tmp/apache_dump && cd /tmp/apache_dump
    sh /path/to/dump-all-memory-of-pid.sh <PID>
    
  1. grep todos os arquivos de despejo para algo que você espera estar no arquivo de configuração do apache.

    grep DocumentRoot *
    
  1. abra o (s) arquivo (s) de despejo correspondente no vim e procure pela string.

    vim 24374-7f159d56c000-7f159d72c000.dump
    

Pesquise digitando "/", por exemplo, "/ DocumentRoot", e copie o texto que você deseja.

fonte: link

    
por 16.12.2015 / 14:40