
私のスクリプトは両方の条件をチェックし、条件の1つまたは両方が満たされたら、サーバーを一度再起動する必要があります。しかし、どうすればいいのかわかりません。代わりに、サーバーを2回再起動するスクリプトを作成しました。実際、スクリプトは両方のファイルまたは1つ以上のファイルにコンテンツを追加した後にサーバーを再起動する必要があります。このスクリプトを完了するのに役立ちます。
#!/bin/bash
grep -q -F 'grant codeBase "file:/var/appdynamics/AppServerAgent/-"' /var/TomCat/tomcat/conf/catalina.policy
if [ $? -ne 0 ]; then
echo '// AppDynamics permissions
grant codeBase "file:/var/appdynamics/AppServerAgent/-" {
permission java.security.AllPermission;
permission java.lang.RuntimePermission "getClassLoader";
};
' >> /var/TomCat/tomcat/conf/catalina.policy
echo "Appdynamics code is successfully added to catalina.policy file"
/var/TomCat/tomcat/bin/shutdown.sh ; sleep 10 ; /var/TomCat/tomcat/bin/startup.sh
else
echo "Appdynamics code is already added on catalina.policy file"
fi
grep -q -F 'javaagent:/var/appdynamics/AppServerAgent/javaagent.jar' /var/TomCat/tomcat/bin/setenv.sh
if [ $? -ne 0 ]; then
echo "export CATALINA_OPTS="$CATALINA_OPTS -javaagent:/var/appdynamics/AppServerAgent/javaagent.jar -Dappdynamics.agent.applicationName=YOUR_APPNAME -Dappdynamics.agent.tierName=YOUR_TIERNAME -Dappdynamics.agent.nodeName=`hostname`""
read -p "Enter the value for Dappdynamics.agent.applicationName : " n1
read -p "Enter the value for Dappdynamics.agent.tierName= : " n2
appname=$n1
tiername=$n2
echo 'export CATALINA_OPTS="$CATALINA_OPTS -javaagent:/var/appdynamics/AppServerAgent/javaagent.jar -Dappdynamics.agent.applicationName='$appname' -Dappdynamics.agent.tierName='$tiername' -Dappdynamics.agent.nodeName=`hostname`"' >> /var/TomCat/tomcat/bin/setenv.sh
/var/TomCat/tomcat/bin/shutdown.sh ; sleep 10 ; /var/TomCat/tomcat/bin/startup.sh
else
echo "AppDynamics Environment variable is already set on setenv.sh"
fi
答え1
フラグ変数を使用して、再起動が必要かどうかを確認できます。スクリプトの先頭で変数値を0に設定します。
restartFlag=0
次にif
、ステートメントで条件が true と評価された場合、値を 1 に設定します。
if ...
restartFlag=1
また、これら2つのステートメントから終了/開始コマンドを削除する必要がありますif
。
スクリプトの最後でフラグ変数の値を再確認し、再起動をトリガーします。
if [ $restartFlag -ne 0 ]; then
/var/TomCat/tomcat/bin/shutdown.sh ; sleep 10 ; /var/TomCat/tomcat/bin/startup.sh
fi