dividir httpd em arquivos menores

dividir httpd em arquivos menores

Olá, preciso extrair cada VirtualHosts do meu httpd.conf para separar arquivos para facilitar o gerenciamento.

httpd.conf original.

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

E eu gostaria de ter arquivos como: - XXXX_user1.conf contendo:

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

- XXXY_user2.conf contendo:

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

Parece um pouco complicado, mas tenho cerca de 500 para fazer manualmente ;(

Muito obrigado pelas respostas

Responder1

Experimente:

#!/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
}

Salve-o em um arquivo chamado, talvez, "httpdsplit" e faça:

$ chmod u+x httpdsplit
$ ./httpdsplit httpd.conf

Responder2

Embora você não tenha mencionado isso, parece o Apache httpd.conf. Embora eu recomende a resposta existente que divide os arquivos, há outra opção.

Seo servidor apache é construído com mod_perlesevocê conhece (ou está disposto a aprender) Perl, lembre-se de que ele mod_perlse liga a todos os aspectos do Apache, incluindo configuração. Você poderia escrever a configuração com uma estrofe Perl e gerar a configuração do VirtualHost dentro do próprio Perl.

informação relacionada