#!/bin/sh [ -z $1 ] && (echo "Enter hostname"; exit 1) [ -z $2 ] && (echo "Enter IP"; exit 1) HTTPD=/etc/httpd/conf.d BASE=/home USER=www VHOST="$BASE/$USER/$1/htdocs" mkdir -p $VHOST chown -R $USER:$USER $BASE/$USER/$1 cat << EOF > $HTTPD/$1.conf <VirtualHost $2:80> ServerName $1 ServerAlias www.$1 DocumentRoot $VHOST ErrorLog /var/log/httpd/$1.error_log CustomLog /var/log/httpd/$1.log combined </VirtualHost> EOF service httpd reload
いつものように、スクリプトは#!/ Bin / shで始まりますが、...
- 最初の2行は「愚か者からの保護」であり、ホスト名(ドメイン)とそのIPの2つの引数を入力する必要があります
- 次の4行は、接続された構成のディレクトリの場所、ホームディレクトリの基本的な場所、およびユーザー名を示す変数です。 注-4行目では、VHOST変数は前の変数と最初の引数に基づいて生成されます
- 2行でコンテンツのディレクトリを作成し、所有権を割り当てます
- そして、ここで次はトリッキーです。 catコマンドは、EOFの組み合わせに遭遇するまですべてを読み取り、ファイルに発生するすべてを書き込みます。 読み取りは実際にはスクリプトの本体から行われるため、構成テンプレートをスクリプトに直接書き込むだけで、処理中にすべての変数が値に置き換えられ、既成の構成として書き込まれます。
- 最後の行-Apacheに設定を再読み込みさせます。
以上です。 シェルスクリプトはエレガントで美しいですか?