142 lines
3.1 KiB
Bash
Executable File
142 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
SO_PATH="/home/smart/SmartOrganizer"
|
|
. ${SO_PATH}/lib.conf
|
|
|
|
SmartTMS_BASE_PATH="/home/smart/.tms3/repo"
|
|
SmartTMS_CONFIG_FILE="${SmartTMS_BASE_PATH}/SmartTMS_Upgrade.conf"
|
|
SmartTMS_VERSION_PATH="${SmartTMS_BASE_PATH}/versions"
|
|
SmartTMS_BACKUP_PATH="${SmartTMS_BASE_PATH}/backup"
|
|
|
|
CURRENT_VERSION=${1}
|
|
TARGET_VERSION=${2}
|
|
DB_NAME="tms_db_s3"
|
|
DB_PASSWORD="PythA90ra5"
|
|
VERSION_PATH="${SmartTMS_VERSION_PATH}/${TARGET_VERSION}"
|
|
BACKUP_PATH="${SmartTMS_BACKUP_PATH}/${CURRENT_VERSION}"
|
|
TOMCAT_HOME="/home/smart/.tms3/apache-tomcat-*"
|
|
|
|
stop_tomcat()
|
|
{
|
|
pid=`netstat -lntp | grep :8080 | awk '{print $7}' |cut -d'/' -f1`
|
|
if [[ ! -z ${pid} ]]; then
|
|
kill ${pid}
|
|
echo "TOMCAT Stopped!"
|
|
fi
|
|
}
|
|
|
|
backup_db()
|
|
{
|
|
if [[ ! -d ${BACKUP_PATH} ]]; then
|
|
mkdir -p ${BACKUP_PATH}
|
|
fi
|
|
BACKUP_SQL_FILE=${BACKUP_PATH}/${DB_NAME}"_"${CURRENT_VERSION}"_"`date -d today +"%Y%m%d%H%M"`.sql
|
|
mysqldump -uroot -p${DB_PASSWORD} --default-character-set=utf8 ${DB_NAME} > ${BACKUP_SQL_FILE}
|
|
echo "Backup database to [ ${BACKUP_SQL_FILE} ]"
|
|
}
|
|
|
|
backup_war()
|
|
{
|
|
if [[ ! -d ${BACKUP_PATH} ]]; then
|
|
mkdir -p ${BACKUP_PATH}
|
|
fi
|
|
\cp ${TOMCAT_HOME}/webapps/*.war ${BACKUP_PATH}/
|
|
echo "Backup war ... completed!"
|
|
rm -rf ${TOMCAT_HOME}/webapps/SmartTMS*
|
|
echo "Remove old version"
|
|
}
|
|
|
|
excute_sql()
|
|
{
|
|
sqls=$(ls ${VERSION_PATH}/sql)
|
|
arr=($(get_version_range "${sqls}"))
|
|
|
|
for version in ${arr[@]}
|
|
do
|
|
sql=${VERSION_PATH}/sql/${version}/$(ls ${VERSION_PATH}/sql/${version} | grep sql)
|
|
if [[ -f ${sql} ]]; then
|
|
echo ">> Execute SQL ${version} ${sql}"
|
|
mysql -uroot -p${DB_PASSWORD} ${DB_NAME} -f -s -N < ${sql}
|
|
fi
|
|
done
|
|
}
|
|
|
|
get_version_range()
|
|
{
|
|
# filter
|
|
source=($1)
|
|
result=()
|
|
for version in ${source[@]}; do
|
|
if [[ `version_compare ${version} ${CURRENT_VERSION}` == 1 ]]; then
|
|
result+=("${version}")
|
|
fi
|
|
done
|
|
|
|
# sort
|
|
for (( i=0; i<${#result[@]}; i++ )); do
|
|
for (( j=${#result[@]}-1; j>i; j-- )); do
|
|
if [[ `version_compare ${result[j]} ${result[j-1]}` == -1 ]]; then
|
|
t=${result[j]}
|
|
result[j]=${result[j-1]}
|
|
result[j-1]=${t}
|
|
fi
|
|
done
|
|
done
|
|
|
|
echo ${result[@]}
|
|
}
|
|
|
|
update_war()
|
|
{
|
|
cp ${VERSION_PATH}/*.war ${TOMCAT_HOME}/webapps/
|
|
echo "Copy new version to web directory"
|
|
}
|
|
|
|
start_tomcat()
|
|
{
|
|
sh ${TOMCAT_HOME}/bin/startup.sh
|
|
# echo "TOMCAT Started!"
|
|
}
|
|
|
|
if [[ -z ${CURRENT_VERSION} || -z ${TARGET_VERSION} ]]; then
|
|
echo "Usage: CURRENT_VERSION and TARGET_VERSION is necessary!"
|
|
exit 2
|
|
fi
|
|
|
|
if [[ $(version_compare ${CURRENT_VERSION} ${TARGET_VERSION}) != -1 ]]; then
|
|
echo "No upgrade required!"
|
|
exit 2
|
|
fi
|
|
|
|
if [[ ! -f ${VERSION_PATH}/SmartTMS_S3.war ]]; then
|
|
rm -rf ${VERSION_PATH}
|
|
echo "Has some problem of package file! EXIT!"
|
|
exit 2
|
|
fi
|
|
|
|
#version_compare 3.0.12 3.1.12
|
|
|
|
#kill tomcat
|
|
stop_tomcat
|
|
sleep 10
|
|
|
|
#back db
|
|
backup_db
|
|
sleep 2
|
|
|
|
#excute sql file
|
|
excute_sql
|
|
sleep 2
|
|
|
|
#back war
|
|
backup_war
|
|
sleep 2
|
|
|
|
#update war
|
|
update_war
|
|
sleep 4
|
|
|
|
#start tomcat
|
|
start_tomcat
|
|
|
|
echo "Done!" |