bash 스크립트의 if
문이 와일드 카드를 기반으로 현재 폴더를 확인할 수 있습니까?bash 스크립트가 와일드 카드로 올바른 폴더에 있는지 확인 하시겠습니까?
Drupal 사이트를 유지 관리 모드로 신속하게 지정하는 스크립트를 만들고 .htaccess 파일을 유지할지, 사이트 폴더와 .htaccess 파일 (요청 된 경우)을 유지할지, 모듈과 데이터베이스를 업데이트 할 것인지 묻습니다. 사이트를 유지 관리 모드에서 제거하십시오. 위의 작업을 완료했지만 쉽게 사용할 수 있도록 모든 사이트 폴더에 대해 중앙 위치에 저장된 하나의 마스터 스크립트를 갖고 싶습니다.
#/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을 기반으로하지만, 어떤 시점에서는 데비안 기반 컴퓨터에서 사용해야 할 수도 있습니다. 변경해야 할 사항이 있으면 알려주십시오.
감사합니다. 완벽하게 작동했습니다. –