Есть ли способ перехватить журналы доступа Apache (1 или 2) к stdout без :
В настоящее время в моем конфигурационном файле apache указано «CustomLog / dev / null common». Система - это Debian Etch.
Заранее спасибо сообществу serverfault!
РЕДАКТИРОВАТЬ: Идея заключалась бы в том, чтобы делать то, что «strace -p» делает с процессами. Я надеялся, что apache2ctl или что-то еще будет иметь функцию "дамп текущего доступа": D
Возможно, вы захотите более подробно объяснить свои требования и ограничения, если ищете решение конкретной проблемы. Но в нынешнем виде просто:
Можете ли вы перехватить данные, идущие в
/dev/null
.
Нет.
Можете ли вы указать Apache регистрироваться в другом месте без изменения файлов конфигурации или перезапуска службы.
Нет.
Обновить:
Мне не приходило в голову использовать strace
. Но на самом деле вы можете использовать его для проверки write()
звонки.
strace -ewrite -s1000 -p<PID>
Вы столкнетесь с некоторыми трудностями при отслеживании процессов. Не думаю, что обнаружение вилки strace обязательно вам поможет. Это означает, что вы будете постоянно бегать, чтобы узнать, какой процесс обработал данный запрос.
Что касается такой возможности в Apache. Это ужасно и не существует. Я думаю, ты крайний случай;)
Я не совсем уверен, чего вы пытаетесь достичь, но если вы просто хотите посмотреть журналы по мере их обновления на stdout ... вы можете просматривать журналы доступа или ошибок Apache в реальном времени по мере их обновления, используя вариант "следовать" tail
Например
tail -f /var/log/apache2/access.log
Как насчет временного изменения файлов конфигурации и их перезагрузки? Вы просите переконфигурировать apache, просто и понятно. Есть функция «перезагрузки» Apache, которая будет использовать новую конфигурацию без разрыва активных соединений, если вас беспокоит доступность.
EDIT: это самая безумная вещь, которую я когда-либо видел: fdmess
Это небольшая утилита для перенаправления файловых дескрипторов запущенных процессов и их настройки. Он работает, подключаясь с помощью ptrace к существующему процессу и заставляя его выполнить некоторый системный вызов. Таким образом, вы можете заставить процесс сбросить привилегии, чтобы перенаправить дескриптор файла в файл или соединение tcp / ip, чтобы подключить дескриптор к дескриптору другого запущенного процесса с сокетом unix или установить дескриптор файла, равный дескриптору другого запущенного процесса (используется передача дескриптора файла unix). Поскольку хуки кода зависят от архитектуры, на данный момент поддерживаются только архитектуры linux-x86 и linux-x86_64. Патчи для других архитектур приветствуются.
Ребят, а как насчет использования urlsnarf ?