разделение httpd в меньших файлах

Привет я должен извлечь каждый VirtualHosts из своего httpd.conf для разделения файлов для более легкого управления.

Исходный httpd.conf.

..
<VirtualHost *:XXXX>
  SuexecUserGroup user1 groupX
  ...
</VirtualHost>
<VirtualHost *:XXXY>
  SuexecUserGroup user2 groupY
  ...
</VirtualHost>
<VirtualHost *:XXYY>
  SuexecUserGroup user3 groupZ
  ...
</VirtualHost>
...

И я хотел бы иметь файлы как: - XXXX_user1.conf, содержащий:

Listen XXXX
<VirtualHost *:XXXX>
  SuexecUserGroup user1 groupX
  ...
</VirtualHost>

- XXXY_user2.conf, содержащий:

Listen XXXY
<VirtualHost *:XXXY>
  SuexecUserGroup user2 groupY
  ...
</VirtualHost>

Звуки немного усложнили, но я имею как 500, чтобы сделать вручную ;(

Большое спасибо за ответы

2
задан 28.02.2016, 03:17

2 ответа

Дайте этому попытку:

#!/usr/bin/gawk -f
BEGIN {
    RS = "</VirtualHost>\n"
}
{
    prefix = gensub("*:([^>]*)>", "\\1", "1", $2)
    filename = prefix "_" $4 ".conf"
    print "Listen " prefix "\n" $0 "\n" RS > filename
}

Сохраните его в названном файле, возможно, "httpdsplit" и сделайте:

$ chmod u+x httpdsplit
$ ./httpdsplit httpd.conf
1
ответ дан 12.12.2019, 00:23

Хотя Вы не упоминали это, это похоже на апачский httpd.conf. Хотя я рекомендую существующий ответ, который разделяет файлы, существует другая опция.

Если апачский сервер создается с mod_perl и если Вы знаете (или готовы учиться), Perl, помните это mod_perl связывает со всеми аспектами апача, включая конфигурацию. Вы могли записать конфигурацию со строкой файла конфигурации Perl и генерировать конфигурацию VirtualHost в самом жемчуге.

0
ответ дан 12.12.2019, 00:23

Теги

Похожие вопросы