저는 쉘 스크립팅에서 새롭고 아마 을 완성하기가 가장 쉬운 임무는 아닙니다."경우에 선택하십시오."와 관련된 문제
XML-conf 파일 (server.xml)을 편집하고, 필요한 디렉토리를 만들고, 파일을 복사하고 이름을 바꾸는 Bash 스크립트를 작성하고 싶습니다. 여기까지 모든 것이 잘 작동하는 것처럼 보였습니다.
이제이 스크립트를 확장하여 다른 파일 (httpd.conf)도 편집하지만 어떤 것이 올바르게 작동하지 않습니다.
스크립트를 실행할 때마다 스크립트의 마지막 부분을 httpd.conf에 삽입하고 이유를 이해하지 못합니다.
나는 당신을 도와 주셔서 기쁘게 생각합니다.
고맙습니다. 코드의 가난한 형식을 기반으로 말할
감사
토마스
#!/bin/bash
sed '/<\/Engine>/d' ~/server.xml > ~/server.xml.bak
sed '/<\/Service>/d' ~/server.xml.bak > ~/server.xml
sed '/<\/Server>/d' ~/server.xml > ~/server.xml.bak
mv -f ~/server.xml.bak ~/server.xml
read -p "Enter the new vHost name: " hstn
mv ~/*.war ~/$hstn.war
mv ~/*.war ~/test
chown -R tomcat ~/test
chgrp -R tomcat ~/test
mkdir ~/var/www/$hstn
cat >> ~/server.xml <<EOF
<Host name="$hstn" appBase="webapps/$hstn"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
EOF
echo "Would you like to add an Alias for this vHost? (Select 1 or 2 and confirm with ENTER) "
select yn in "Yes" "No"; do
case $yn in
Yes) read -p "Enter the desired Alias: " aliasname; cat >> ~/server.xml <<EOF
<Alias>$aliasname</Alias>
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" resolveHosts="false"/>
</Host>
</Engine>
</Service>
</Server>EOF
echo "The new vHost has been created with an Alias!"
cat >> ~/httpd.conf <<EOF
<VirtualHost $hstn>
ServerName $hstn
DocumentRoot /var/www/$hstn
<IfModule mod_jk.c>
JkMount/default
JkMount /* default
</IfModule>
</VirtualHost>
EOF; break;;
No) cat >> ~/server.xml <<EOF
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" resolveHosts="false"/>
</Host>
</Engine>
</Service>
</Server>
EOF
echo "The new vHost has been created without Alias!"; exit;;
esac
done
exit 0
Skynet은 코드 자체 복제 기능을 제공합니다. – Trinidad