Потребовалось внести изменения в большое количество виртуальных хостов, нашел удобный скрипт для вывода информации(https://gist.github.com/jakubjedelsky/3142806):
#!/usr/bin/env python
#
# simle'n'stupid vhost "parser"
#
# Usage: ./vhosts-reader.py FILE
# FILE is a apache config file
import re
import sys
import os.path
if len(sys.argv) != 2:
sys.exit('Usage: %s FILE' % sys.argv[0])
FILE = sys.argv[1]
if not os.path.isfile(FILE):
sys.exit('Unknown file %s' % FILE)
f = open(FILE, 'r')
data_all = f.readlines()
f.close()
data = filter( lambda i: re.search('^((?!#).)*$', i), data_all)
ID = 0
enable = False
result = {}
vhost = []
while len(data) > 0:
out = data.pop(0)
# start of VirtualHost
if "', '')
vhost.append(ip)
vhost.append(port)
enable = True
continue
if "" in out:
result[ID] = vhost
ID+=1
enable = False
vhost = []
continue
if enable:
vhost.append(out)
continue
for i in result:
# result[i][0] is an IP
# result[i][1] is a port
# another list items are lines in vhost, grep them all
for line in result[i]:
if "ServerName" in line:
servername = line.split()[1]
continue
if "DocumentRoot" in line:
documentroot = line.split()[1]
continue
if "ServerAlias" in line:
serveralias = ','.join(str(n) for n in line.split()[1:])
continue
if "SuexecUserGroup" in line:
user = line.split()[1]
print "%s:%s:%s:%s" % (user, servername, serveralias, documentroot)
Скрипт выведет пользователя, имя сервера, алиасы и корневую директорию виртуального хоста.
я поправил вывод в конце на print documentroot. Например мне нужно вывести все директории содержащие директорию с именем example.com:
python2.7 myscript.py /etc/httd/httpd.conf |grep 'example.com$'
Тем самым я получу все директории, заканчивающиеся на example.com и могу делать дальнейшие операции.
Кстати пока не забыл я пользуюсь IP калькулятором для поиска маски подсети которая являются основым методом бесклассовой маршрутизации