2016-08-08 4 views
1

나는이 같은 조금 보이는 아파치 가상 호스트 :아파치 가상 호스트

<VirtualHost *:80> 
ServerName aaaaaa.com 
ServerAlias www.aaaaaa.com upload.aaaaaa.com publisher.aaaaaa.com 
ServerAlias aaaaaa.no upload.aaaaaa.no www.aaaaaa.no publisher.aaaaaa.no 
ServerAlias bbbbbb.no www.bbbbbb.no upload.bbbbbb.no publisher.bbbbbb.no 
ServerAlias cccccc.live upload.cccccc.live www.cccccc.live publisher.cccccc.live 
ServerAlias dddddd.com *.dddddd.com 
ServerAlias aaaaaa.cccccc.live *.aaaaaa.cccccc.live 
ServerAlias eeeeee.com *.eeeeee.com 
ServerAlias ffffff.com *.ffffff.com 
ServerAlias aaaaaa-com.bbbbbb.no 

ServerAdmin [email protected] 

ErrorLog /var/log/apache2/aaaaaa.com-error.log 
CustomLog /var/log/apache2/aaaaaa.com-access.log combined 
ServerSignature Off 

<IfModule mod_php5.c> 
    AddType application/x-httpd-php .php .phtml .php3 
    AddType application/x-httpd-php-source .phps 
</IfModule> 

DocumentRoot /var/www/html/aaaaaa.com/current/www/ 
<Directory /var/www/html/aaaaaa.com/current> 
    AllowOverride all 
</Directory> 

Alias /oc-publisher-framework /var/www/releases/oc-publisher-framework-www/ 

    # Fake https to become on for Cloudflare special headers. 
    SetEnvIf X-Forwarded-Proto https HTTPS=on 
    SetEnvIf CF-Visitor {"scheme":"https"} HTTPS=on 
</VirtualHost> 

<IfModule mod_ssl.c> 
<VirtualHost _default_:443> 

ServerName aaaaaa.com 
ServerAlias aaaaaa.no 
ServerAlias www.aaaaaa.no 
ServerAlias bbbbbb.no 
ServerAlias www.bbbbbb.no 
ServerAlias cccccc.live 
ServerAlias www.cccccc.live publisher.cccccc.live 
ServerAlias dddddd.com 
ServerAlias www.dddddd.com 
ServerAlias www.aaaaaa.com 
ServerAlias gc-aaaaaa.aaaaaa.com 
ServerAlias www.gc-aaaaaa.aaaaaa.com 
ServerAlias aaaaaa.cccccc.live 
ServerAlias www.aaaaaa.cccccc.live 
ServerAlias eeeeee.com www.eeeeee.com 

    ServerAdmin [email protected] 

    ErrorLog /var/log/apache2/aaaaaa.com-error.log 
    CustomLog /var/log/apache2/aaaaaa.com-access.log combined 
    ServerSignature Off 

    <IfModule mod_php5.c> 
     AddType application/x-httpd-php .php .phtml .php3 
     AddType application/x-httpd-php-source .phps 
    </IfModule> 

    DocumentRoot /var/www/html/aaaaaa.com/current/www/ 
    <Directory /var/www/html/aaaaaa.com/current> 
     AllowOverride all 
    </Directory> 

    Alias /oc-publisher-framework /var/www/html/releases/oc-publisher-framework-www/ 

    SSLEngine on 
    SSLCertificateFile /etc/apache2/ssl/bbbbbb.no.crt 
    SSLCertificateKeyFile /etc/apache2/ssl/bbbbbb.no.key.txt 
    <FilesMatch "\.(cgi|shtml|phtml|php)$"> 
      SSLOptions +StdEnvVars 
    </FilesMatch> 
    <Directory /usr/lib/cgi-bin> 
      SSLOptions +StdEnvVars 
    </Directory> 
    BrowserMatch "MSIE [2-6]" \ 
      nokeepalive ssl-unclean-shutdown \ 
      downgrade-1.0 force-response-1.0 
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown 
</VirtualHost> 
</IfModule> 

내가 여기 이렇게에서 고유 한 도메인 이름과 문서 루트를 추출하고 싶습니다

/var/www/html/aaaaaa.com/current/www/ - aaaaaa.com www.aaaaaa.com upload.aaaaaa.com publisher.aaaaaa.com aaaaaa.no upload.aaaaaa.no www.aaaaaa.no publisher.aaaaaa.no bbbbbb.no www.bbbbbb.no upload.bbbbbb.no publisher.bbbbbb.no ... 

어떻게하면 AWK, BASH 또는 Python으로이 작업을 수행 할 수 있습니까?

+0

아무것도 시도? – anubhava

+0

예. 나는 그것을 BASH에서했으나 그것을 사용하기에는 너무 추했습니다. 그리고 본질적으로이 파일에 대해 여러 번 통과하고 있습니다. 나는 그것을 더 효율적으로하는 법을 배우기를 희망한다. – Bogdan

+0

게시 된 샘플 입력이 실제 입력과 같이 '약간 보인다'면 실제 입력을 파싱하는 데 도움이되는 방법이 많지 않습니다. –

답변

0

당신은 awk 사용할 수 있습니다

awk '$1 ~ /^(ServerName|ServerAlias)/ { 
    for (i=2; i<=NF; i++) 
     hosts[$i] 
} 
$1 == "DocumentRoot" { 
    dr = $2 
} 
END { 
    printf "%s -", dr 
    for (i in hosts) 
    printf " %s", i 
    print "" 
}' httpd.conf 

/var/www/html/aaaaaa.com/current/www/ - www.aaaaaa.cccccc.live dddddd.com www.cccccc.live www.eeeeee.com *.ffffff.com upload.cccccc.live www.bbbbbb.no bbbbbb.no ffffff.com eeeeee.com upload.aaaaaa.no gc-aaaaaa.aaaaaa.com publisher.aaaaaa.no publisher.cccccc.live upload.aaaaaa.com www.aaaaaa.com aaaaaa-com.bbbbbb.no www.gc-aaaaaa.aaaaaa.com aaaaaa.cccccc.live www.aaaaaa.no aaaaaa.no publisher.aaaaaa.com aaaaaa.com www.dddddd.com *.eeeeee.com *.aaaaaa.cccccc.live *.dddddd.com cccccc.live upload.bbbbbb.no publisher.bbbbbb.no 
관련 문제