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

Есть ли в Apache аналог этого трюка с конфигурированием самбы?

При настройке самбы я использую этот метод, как это предлагается в официальных документах.

testparm -s smb.conf.master> smb.conf

Это означает, что я могу сохранить полностью прокомментированную версию (smb.conf.master), но я также получаю урезанную и легко разбираемую людьми и машинную версию в smb.conf

Есть ли эквивалентный метод для файла конфигурации apache?

Я делаю это часто:

grep -v '^#' apache.conf > apache-stripped.conf

Если вы хотите стать действительно агрессивным и удалить пустые строки:

egrep -v '^(#|$)' apache.conf > apache-stripped.conf

Я должен отметить, что единственная причина сделать это - облегчить вам чтение, если комментарии вас отвлекают. Apache, конечно, не против. Удаление комментариев из действующей конфигурации Apache не приводит к повышению производительности, за исключением, возможно, нескольких микросекунд, сохраненных при запуске.

Вы можете протестировать файл конфигурации с помощью apachectl configtest (обычно называется apache2ctl в системах Debian). Это ближайший эквивалент, который я могу придумать.

Не составит большого труда написать сценарий, который бы сочетал configtest с чем-то еще (grep, awk, sed и т. Д.), Чтобы дублировать то, что вы делаете с testparm.

Лично я бы нашел httpd.conf без комментариев, который труднее читать, чем тот, у которого есть несколько комментариев. Есть ли какая-то конкретная причина, по которой вы пытаетесь это сделать?

это действительно комментарий к ответу Insyte, но я не могу отформатировать его как комментарий. плюс это слишком долго для комментария :)

sed -e 's/^[[:space:]]\+\(#\|\$\)/#/'  apache.conf | grep -v '^#' | uniq

использование sed, как это, удалит пробелы перед комментариями на всю строку и перед всеми маркерами конца строки. при прохождении через uniq будут удалены все, кроме первой пустой строки, любой последовательности последовательных пустых строк (т.е. оставив одну пустую строку между «абзацами»). ИМО, это делает его более читабельным.

использование uniq здесь имеет небольшой риск того, что любые другие последовательные повторяющиеся строки будут удалены, но на практике это вряд ли станет проблемой.

также, чтобы ответить на ваш вопрос об удалении одинарных # комментариев, но не двойных ## комментариев ... сначала я упомяну, что двойные и тройные # комментарии в любом случае распространены в файлах конфигурации, поэтому вы, вероятно, захотите использовать что-то еще. '#:', например. затем используйте что-то вроде:

sed -e 's/^[[:space:]]\+\(#\|\$\)/#/'  apache.conf | egrep -v '^#[^:]|#$' | uniq