httpd in kleinere Dateien aufteilen

897
Warnaud

Hallo, ich muss jeden VirtualHosts aus meiner httpd.conf extrahieren, um die Dateien für eine einfachere Verwaltung zu trennen.

Ursprüngliche httpd.conf.

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

Und ich hätte gerne Dateien wie: - XXXX_user1.conf mit:

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

- XXXY_user2.conf mit:

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

Klingt ein bisschen kompliziert, aber ich habe gerne 500 von Hand zu tun; (

Vielen Dank für die Antworten

2

2 Antworten auf die Frage

1
Dennis Williamson

Probieren Sie es aus:

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

Speichern Sie es in einer Datei mit dem Namen "httpdsplit" und führen Sie folgende Schritte aus:

$ chmod u+x httpdsplit $ ./httpdsplit httpd.conf 
Genial!! Vielen, vielen Dank! Warnaud vor 13 Jahren 0
Ich habe das Skript ein bisschen angepasst, so dass am Anfang auch Listen XXXX hinzugefügt wird:. #! / usr / bin / gawk -f BEGIN Warnaud vor 13 Jahren 0
@Warnaud: Hoppla, Entschuldigung, ich habe vergessen, diesen Teil hinzuzufügen. Ich werde meine Antwort bearbeiten. Vergessen Sie nicht, es als akzeptiert zu kennzeichnen, wenn es Ihre Anforderungen erfüllt. Dennis Williamson vor 13 Jahren 0
Ich möchte wirklich gerne, da es genau das ist, wonach ich gesucht habe, aber ... wie geht das :(? Die Seite ist großartig, aber die Syntax und diese Art von Optionen sind ziemlich unsichtbar. Warnaud vor 13 Jahren 0
Ich habe es herausgefunden ;-) Nochmals vielen Dank Warnaud vor 13 Jahren 0
0
Rich Homolka

Obwohl Sie es nicht erwähnt haben, sieht es aus wie Apache httpd.conf. Obwohl ich die vorhandene Antwort empfehle, die die Dateien aufteilt, gibt es eine andere Option.

Wenn der Apache - Server ist integriert mit mod_perlund wenn Sie wissen (oder bereit sind, zu lernen) Perl, denken Sie daran, dass mod_perlmit allen Aspekten der Apache bindet, einschließlich Konfig. Sie können die Konfiguration mit einer Perl-Zeilengruppe schreiben und die VirtualHost-Konfiguration in Perl selbst generieren.