本帖最后由 sea_tar 于 2016-07-27 17:29 编辑
今天看到别人的脚本里有BASE_DIR=这样的赋值写法,这个basedir是如何取值的呢?请教大神下面是完整脚本
DATE_TIME=`date +%Y%m%d_%H%M%S`
BASE_DIR=
PUPPET_DIR=
WEB_DIR=
BACKUP_FILE=/newwap.$DATE_TIME.tar.gz
WAR_FILE=$PUPPET_DIR/newwap.war
INSTANCES=()
PREFIX=$BASE_DIR/project
ERROR_COUNT_START=0
ROUND=10
LENGTH=${#INSTANCES[@]}
# backup project
backup(){
echo "1) Backup files."
cd $WEB_DIR
tar -czf $BACKUP_FILE *
}
# stop tomcat instances
stop(){
echo "2) Stop tomcat instances."
for i in ${INSTANCES[@]}
do
$PREFIX/$i/tomcat.sh stop &
sleep 5
done
sleep 5
for ((n=1;n<=$ROUND;n++));do
c=0
for i in ${INSTANCES[@]};do
PID=`ps -ef | grep $PREFIX/$i | grep -v grep | awk '{print $2}'`
if [ -z $PID ];then
c=`expr $c + 1`
fi
done
if [ $c -eq $LENGTH ];then
echo "All tomcat instances stop successful."
break
else
if [ $n -eq $ROUND ];then
for i in ${INSTANCES[@]};do
PID=`ps -ef | grep $PREFIX/$i | grep -v grep | awk '{print $2}'`
if [ -n "${PID}" ];then
echo "Tomcat instance ${i}(pid=${PID}) still alive, try to kill."
kill -9 $PID
fi
done
fi
sleep 3
fi
done
}
# redeploy
redeploy(){
echo "3) Deploy new project and clean old files."
rm -rf $WEB_DIR/*
unzip -oq $WAR_FILE -d $WEB_DIR
echo "Deploy new project successful."
for i in ${INSTANCES[@]}
do
rm -rf $PREFIX/$i/work/*
mv $PREFIX/$i/logs/catalina.out $PREFIX/$i/logs/catalina.out.$DATE_TIME
echo "Clean tomcat instance ${i}'s temp files successful."
done
}
# start tomcat instances
start(){
echo "4) Start tomcat instances and check start info."
for i in ${INSTANCES[@]}
do
$PREFIX/$i/tomcat.sh start &
done
sleep 60
for i in ${INSTANCES[@]}
do
if [ `grep "ERROR" $PREFIX/$i/logs/catalina.out | wc -l` != 0 ];then
echo "ERROR: tomcat instance ${i} starts with errors!"
ERROR_COUNT_START=`expr $ERROR_COUNT_START + 1`
else
echo "Start tomcat instance ${i} successful."
fi
done
}
echo "There are 4 steps."
source /home/java/.bash_profile
export LANG=
export JAVA_OPTS="$JAVA_OPTS -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8"
backup
stop
redeploy
start
if [ $ERROR_COUNT_START != 0 ];then
echo "Some tomcats start with errors!"
exit 1
fi
echo "Finish All Steps!"
exit 0