내 스크립트는 두 가지 조건을 확인하고 조건 중 하나 또는 두 가지가 모두 충족되면 서버를 한 번 다시 시작해야 합니다. 하지만 어떻게 해야할지 모르겠습니다. 대신 서버를 두 번 다시 시작하는 스크립트를 작성했습니다. 실제로 스크립트는 두 파일 모두 또는 하나 이상의 파일에 콘텐츠를 추가한 후 서버를 다시 시작해야 합니다. 이 스크립트를 완료할 수 있도록 도와주세요.
#!/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
또한 이 두 명령문에서 종료/시작 명령을 제거해야 합니다 if
.
스크립트 끝에서 플래그 변수의 값을 다시 확인하고 다시 시작을 트리거합니다.
if [ $restartFlag -ne 0 ]; then
/var/TomCat/tomcat/bin/shutdown.sh ; sleep 10 ; /var/TomCat/tomcat/bin/startup.sh
fi