Назад | Перейти на главную страницу

Поиск результатов apachectl -S

У меня есть сервер примерно с 300 виртуальными хостами. Когда я хочу убедиться, что конкретный файл httpd.conf загружен в конфигурацию виртуального хоста и синтаксис верен, я запускаю apachectl -S. Однако проблема в том, что я получаю массу результатов.

я пробовал apacectl -S | grep 'foo' и apachectl -S > foo.txt чтобы попытаться сделать эти данные немного более управляемыми, но выходные данные команды не подходят для grepping или вставки в текстовый файл.

Когда я пытаюсь apachectl -S | grep 'foo', он просто возвращает весь вывод apachectl -S.

Когда я пытаюсь apachectl -S > foo.txt, foo.txt - пустой файл.

Это может иметь какое-то отношение к настройке сервера, потому что я могу успешно выполнить команду grep на своем локальном компьютере.

Какие-либо предложения?

Вывод apachectl отправляется на stderr. Команды, которые вы используете, пытаются отфильтровать стандартный вывод. Чтобы использовать grep так, как вы описываете, перенаправьте stderr на stdout, например:

apachectl -S 2>&1 | grep 'blah'

Ха-ха, похоже, что на этот вопрос уже был дан ответ в Stack Overflow:

https://stackoverflow.com/questions/6505932/how-to-filter-apache-virtual-host-listing-using-grep

Так как apachectl -S (который на самом деле является оберткой для httpd -S) отправляет свой вывод через STDERR, мне нужно будет перенаправить STDERR в STDOUT, а затем grep.

apachectl -S 2>&1 | grep 'foo'

Спасибо, С.О.!