Soru Apache'yi çalışan yapılandırmasını bellekten gösterecek bir komut var mı?


Apache web sunucusunun mevcut çalışan yapılandırmasını bellekten, yani yapılandırma dizinlerindeki dosyaları ayrıştırmadan göstermesi için herhangi bir yolu var mı?

Ben sadece yanlışlıkla bir sunucu üzerinde vhost yapılandırması üzerine yazmayı başardı (evet, biliyorum, bir yedek olmalı!) Ve oldukça kolay bir şekilde yeniden inşa ederken (çok yeni sunucu, çok basit bir yapılandırma ve dolayısıyla yedekleme yok) henüz - bu yarının göreviydi), genel olarak Apache'yi, sadece dosyaları ayrıştırmak yerine (httpd-S gibi görünüyor), canlı çalışan yapılandırmasını göstermenin herhangi bir yolu olup olmadığını merak ediyordu.

Googling'i denediniz ve burada ServerFault'da arama yaptınız, ancak hiçbir şey bulamadınız. Bunun birkaç insanın pastırmasını zamanla kurtarabilir hayal edebiliyorum. :)


5
2017-11-04 19:50


Menşei




Cevaplar:


Apache2 yapılandırmasını bellekten nasıl kurtarabilirsiniz:


  1. Bu serverfault iş parçacığı üzerinde belirtilen dump-all-memory-of-pid.sh komutunu yakala.

Bir linux sürecinin belleğini dosyaya dök

#!/bin/bash
grep rw-p /proc/$1/maps | sed -n 's/^\([0-9a-f]*\)-\([0-9a-f]*\) .*$/\1 \2/p' | while read start stop; do gdb --batch --pid $1 -ex "dump memory $1-$start-$stop.dump 0x$start 0x$stop"; done
  • bunu bir dosyaya koyun (örn. "dump-all-memory-of-pid.sh") ve çalıştırılabilir hale getirin
  • kullanımı: ./dump-all-memory-of-pid.sh [pid]
  • Çıkış isimlere sahip dosyalara yazdırılır: pid-startaddress-stopaddress.dump
  • Bağımlılıklar: gdb

  1. apache sürecinin pidini al

    pgrep -uroot apache2
    

  1. sürecin belleğini boşaltmak

    mkdir /tmp/apache_dump && cd /tmp/apache_dump
    sh /path/to/dump-all-memory-of-pid.sh <PID>
    

  1. Apache yapılandırma dosyasında olmasını beklediğiniz bir şey için tüm döküm dosyalarını grep.

    grep DocumentRoot *
    

  1. vim dosyasında eşlenmiş dosya (ları) açın ve dizeyi arayın.

    vim 24374-7f159d56c000-7f159d72c000.dump
    

"/" Yazarak, örneğin "/ DocumentRoot" ile arama yapın, sonra istediğiniz metni kopyalayın.


kaynak : http://forums.whirlpool.net.au/archive/2189742


6
2017-12-16 13:40



Harika çalışıyor, teşekkürler! ... CentOS'ta kullandım pgrep -uroot apache2 - Alien Life Form
Jun 2017'de ne düşündüğümden emin değilim, ama yeni kullandım pgrep -uroot httpd CentOS'ta ... önceki beni görmezden gel. - Alien Life Form