Obtenir tous les domaines configurés sur un serveur

Voici une petite astuce pour récupérer tous les domaines configurés sur un serveur apache :

[bash]root@borsalino ~> for vhost in /etc/httpd/users/*; do cat "$vhost" | grep '\(ServerName\|ServerAlias\)'; done;

Cela dépend bien sur de la façon dont vos vhost sont configurés. S'ils sont tous dans le fichier httpd.conf :

[bash]root@borsalino ~> cat /etc/httpd/conf/httpd.conf | grep '\(ServerName\|ServerAlias\)'

2 réactions

  • De TitaX De TitaX - 13/02/2007, 21:38 #1

    Bonne astuce !

  • De Damien De Damien - 13/02/2007, 23:42 #2

    Pourquoi faire simple, quand on peut faire compliquer (mais sans les ServerTruc commentés) :

    find /etc/httpd/ -type f -exec egrep "^[ \t]*[^#][ \t]*Server(Alias|Name)" {} \;

    Et même si tu as beaucoup de sites et que tu veux faire une jolie liste en CSV pour mettre dans Excel OpenOffice :

    find /etc/httpd/ -type f -exec egrep "^[ \t]*[^#][ \t]*Server(Alias|Name)" {} \; | sed -e 's/^.*Server\(Name\|Alias\)[ \t]\+\(.*\)$/\1;\2/g'

    oui c'est indigeste (surtout la deuxième), mais c'est ça qui est drôle :)

Attribution - Partage dans les Mêmes Conditions 4.0 International