1

ifbash スクリプトのステートメントで、ワイルドカードに基づいて現在のフォルダーを確認できますか?

drupal サイトをすばやくメンテナンス モードにするスクリプトを作成しています。.htaccess ファイルを保持するかどうかを尋ね、sites フォルダーと .htaccess ファイルを保持し (要求された場合)、モジュールとデータベースを更新してからサイトを削除します。メンテナンスモードの。上記は完了しましたが、使いやすさのために、すべてのサイト フォルダに対して 1 つのマスター スクリプトを 1 か所に保存したいと考えています。

設計どおりに動作するスクリプトは次のとおりです。

#/bin/bash
CWD=$(pwd)
cd $CWD
echo $CWD
if [ $CWD = "/var/www/vhosts/specific.site.folder" ]; then
    echo "Updating drupal core files"
    read -r -p "do you need to keep the .htaccess file? [y/N]" response

if [ $response = y ] 
then
    /usr/local/bin/drush vset maintenance_mode 1
    mv ./.htaccess ../.htaccess
    mv ./sites ../sites
    rm -rf *
    cp -R /sources/drupal/* ./
    mv ../sites ./sites
    mv ../.htaccess ./.htaccess
    chown -R httpd:httpd *
    /usr/local/bin/drush up && /usr/local/bin/drush updb
    /usr/local/bin/drush vset maintenance_mode 0

elif [ $response = n ] 
then
    /usr/local/bin/drush vset maintenance_mode 1
    mv ./sites ../sites
    rm -rf *
    cp -R /sources/drupal/* ./
    mv ../sites ./sites
    chown -R httpd:httpd *
    /usr/local/bin/drush up && /usr/local/bin/drush updb
    /usr/local/bin/drush vset maintenance_mode 0
else
    echo "Response must be either y or n"
fi
else
        echo "not in a web directory, exiting"
fi

私が望むのは同じスクリプトですが、次のようなものです:

if [ $CWD = "/var/www/vhosts/*" ]; then

これはうまくいきませんでした。同じスクリプトを任意のサイトで実行できるようにこれを機能させたいと思いますが、サイト フォルダー自体のサブディレクトリを含む他のディレクトリを安全に保ちます。

私が持っている何かを行うためのより良い方法がある場合は、それらを提案してください。

これが実行される予定のサーバーは centos 6 に基づいていますが、ある時点で debian ベースのマシンで使用する必要があるかもしれません。変更が必要な場合は、私にも知らせてください。

4

1 に答える 1