first commit

This commit is contained in:
zj
2025-12-28 15:15:19 +08:00
commit 42d43f7342
606 changed files with 14592 additions and 0 deletions

View File

@@ -0,0 +1 @@
1.5.0

View File

@@ -0,0 +1,261 @@
#!/bin/bash
. /etc/profile
# 脚本所在目录 绝对路径
ROOT_PATH=$(cd "$(dirname ${0})";pwd)
. ${ROOT_PATH}/env.conf
. ${ROOT_PATH}/inc.conf
. ${ROOT_PATH}/lib.conf
VERSION=$(cat ${ROOT_PATH}/.version)
getTask()
{
FILES=($(ls ${TASKS_PATH} | grep '.conf$'))
echo ${FILES[0]}
}
TASK()
{
TASK_FILE=$(getTask)
if [[ -z ${TASK_FILE} ]]; then
return
fi
logger "Detected task file [ ${TASK_FILE} ]"
TASK_FILE=${TASKS_PATH}/${TASK_FILE}
# import task config
logger "Load task configuration from [ ${TASK_FILE} ]"
. ${TASK_FILE}
# rm config
debugger "Delete TASK file [ ${TASK_FILE} ]"
rm -f ${TASK_FILE}
# download from url
if [[ -n ${CFG_URL} ]]; then
DOWNLOAD_PATH=${DOWNLOADS_PATH}/${CFG_NAME}/${CFG_VERSION}
# download if not been
if [[ ! -d ${DOWNLOAD_PATH} ]]; then
mkdir -p ${DOWNLOAD_PATH}
DOWNLOAD_FILE=${DOWNLOAD_PATH}/${CFG_NAME}.${CFG_FORMAT}
logger "Download from [ ${CFG_URL} => ${DOWNLOAD_FILE} ], version: ${CFG_VERSION}"
wget -t 3 -w 60 -T 30 -c -q --no-cookie --no-check-certificate ${CFG_URL} -O ${DOWNLOAD_FILE}
if [ $? -ne 0 ]; then
logger "Download failed "
rm -rf ${DOWNLOAD_PATH}
logger "Delete download temp dir [ ${DOWNLOAD_PATH} ]"
return
fi
if [[ ! -f ${DOWNLOAD_FILE} ]]; then
logger "Download File is not exist!"
rm -rf ${DOWNLOAD_PATH}
logger "Delete download temp dir [ ${DOWNLOAD_PATH} ]"
return
fi
# unpack
logger "Extract ..."
if [[ "zip" = ${CFG_FORMAT} ]]; then
if [[ -n ${CFG_UN} ]]; then
UNZIP_PASS=" -P ${CFG_UN}"
else
UNZIP_PASS=""
fi
unzip -o -qq${UNZIP_PASS} ${DOWNLOAD_FILE} -d ${DOWNLOAD_PATH}
logger "Delete download temp file [ ${DOWNLOAD_FILE} ]"
rm -f ${DOWNLOAD_FILE}
if [[ -n ${CFG_DIR} ]]; then
UNZIPPED_PATH=${DOWNLOAD_PATH}/${CFG_DIR}
if [[ -d ${UNZIPPED_PATH} ]]; then
\cp -r ${UNZIPPED_PATH}/* ${DOWNLOAD_PATH}
rm -rf ${UNZIPPED_PATH}
fi
fi
fi
fi
if [[ -n ${CFG_OUTPUT_PATH} ]]; then
if [[ ! -d ${CFG_OUTPUT_PATH} ]]; then
mkdir -p ${CFG_OUTPUT_PATH}
fi
logger "Copy to output directory [ ${DOWNLOAD_PATH} => ${CFG_OUTPUT_PATH} ]"
\cp -r ${DOWNLOAD_PATH}/. ${CFG_OUTPUT_PATH}
else
CFG_OUTPUT_PATH=${DOWNLOAD_PATH}
fi
fi
# execute
if [[ -z ${CFG_EXECUTE} ]]; then
logger "Nothing to execute!"
return
fi
if [[ ${CFG_EXECUTE:0:1} = "/" ]]; then
EXECUTE_FILE=${CFG_EXECUTE}
else
if [[ -n ${CFG_OUTPUT_PATH} ]]; then
EXECUTE_FILE=${CFG_OUTPUT_PATH}/${CFG_EXECUTE}
fi
if [[ ! -f ${EXECUTE_FILE} ]]; then
logger "Execution script [ ${EXECUTE_FILE} ] not exists, find from common ..."
EXECUTE_FILE=${ROOT_PATH}/common/${CFG_NAME}/${CFG_EXECUTE}
fi
fi
if [[ ! -f ${EXECUTE_FILE} ]]; then
logger "Execution script [ ${EXECUTE_FILE} ] not exists! exit!"
return
fi
logger "Execution [ ${EXECUTE_FILE} ${CFG_ARGS} ]"
/bin/bash ${EXECUTE_FILE} ${CFG_ARGS} >> ${LOG_FILE}
logger "Execution completed!"
syncSoftwareStatus ${CFG_NAME} ${CFG_VERSION}
}
SOFT_CHECK()
{
debugger "[SOFT_CHECK]"
SOFT_STATUS=$(getSoftwareStatus)
CODE=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".code")
debugger "CODE :" ${CODE}
if [[ ${CODE} == 0 ]]; then
# 向日葵
SunloginClient=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.SunloginClient")
if [[ -n ${SunloginClient} ]]; then
CFG_PATH=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.SunloginClient.path" | sed 's/\"//g')
CFG_NAME=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.SunloginClient.name" | sed 's/\"//g')
CFG_VERSION=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.SunloginClient.version" | sed 's/\"//g')
CFG_EXECUTE=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.SunloginClient.execute" | sed 's/\"//g')
version_file=${CFG_PATH}/.version
version="0.0.0"
if [[ -f ${version_file} ]]; then
version=$(cat ${version_file})
fi
if [[ $(version_compare ${version} ${CFG_VERSION}) = -1 ]]; then
logger "SOFT_CHECK: \"${CFG_NAME}\" detected new version:\"${CFG_VERSION}\" current:\"${version}\""
cat > "${TASKS_PATH}/${CFG_NAME}_Upgrade.conf" <<EOF
CFG_NAME="${CFG_NAME}"
CFG_VERSION="${CFG_VERSION}"
CFG_URL=""
CFG_FORMAT=""
CFG_DIR=""
CFG_UN=""
CFG_OUTPUT_PATH=""
CFG_EXECUTE="${CFG_EXECUTE}"
CFG_ARGS="\${CFG_VERSION}"
EOF
debugger "Task file created: \"${TASKS_PATH}/${CFG_NAME}_Upgrade.conf\""
fi
fi
#MiaozhenProbe
MiaozhenProbe=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.MiaozhenProbe")
if [[ -n ${MiaozhenProbe} ]]; then
CFG_PATH=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.MiaozhenProbe.path" | sed 's/\"//g')
CFG_NAME=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.MiaozhenProbe.name" | sed 's/\"//g')
CFG_URL=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.MiaozhenProbe.url" | sed 's/\"//g')
CFG_FORMAT=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.MiaozhenProbe.format" | sed 's/\"//g')
CFG_VERSION=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.MiaozhenProbe.version" | sed 's/\"//g')
CFG_EXECUTE=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.MiaozhenProbe.execute" | sed 's/\"//g')
version_file=${CFG_PATH}/.version
version="0.0.0"
if [[ -f ${version_file} ]]; then
version=$(cat ${version_file})
fi
if [[ $(version_compare ${version} ${CFG_VERSION}) = -1 ]]; then
logger "SOFT_CHECK: \"${CFG_NAME}\" detected new version:\"${CFG_VERSION}\" current:\"${version}\""
cat > "${TASKS_PATH}/${CFG_NAME}_Upgrade.conf" <<EOF
CFG_NAME="${CFG_NAME}"
CFG_VERSION="${CFG_VERSION}"
CFG_URL="${CFG_URL}"
CFG_FORMAT="${CFG_FORMAT}"
CFG_DIR=""
CFG_UN=""
CFG_OUTPUT_PATH="/home/Miaozhen/repo/last"
CFG_EXECUTE="${CFG_EXECUTE}"
CFG_ARGS="\${CFG_VERSION}"
EOF
debugger "Task file created: \"${TASKS_PATH}/${CFG_NAME}_Upgrade.conf\""
fi
fi
#SmartOrganizer
SmartOrganizer=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.SmartOrganizer")
if [[ -n ${SmartOrganizer} ]]; then
CFG_PATH=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.SmartOrganizer.path" | sed 's/\"//g')
CFG_NAME=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.SmartOrganizer.name" | sed 's/\"//g')
CFG_URL=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.SmartOrganizer.url" | sed 's/\"//g')
CFG_FORMAT=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.SmartOrganizer.format" | sed 's/\"//g')
CFG_VERSION=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.SmartOrganizer.version" | sed 's/\"//g')
CFG_EXECUTE=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".response.SmartOrganizer.execute" | sed 's/\"//g')
version_file=${CFG_PATH}/.version
version="0.0.0"
if [[ -f ${version_file} ]]; then
version=$(cat ${version_file})
fi
if [[ $(version_compare ${version} ${CFG_VERSION}) = -1 ]]; then
logger "SOFT_CHECK: \"${CFG_NAME}\" detected new version:\"${CFG_VERSION}\" current:\"${version}\""
cat > "${TASKS_PATH}/${CFG_NAME}_Upgrade.conf" <<EOF
CFG_NAME="${CFG_NAME}"
CFG_VERSION="${CFG_VERSION}"
CFG_URL="${CFG_URL}"
CFG_FORMAT="${CFG_FORMAT}"
CFG_DIR=""
CFG_UN=""
CFG_OUTPUT_PATH=""
CFG_EXECUTE="${CFG_EXECUTE}"
CFG_ARGS="${CFG_VERSION}"
EOF
debugger "Task file created: \"${TASKS_PATH}/${CFG_NAME}_Upgrade.conf\""
fi
fi
else
MSG=$(echo ${SOFT_STATUS} | ${ROOT_PATH}/bin/jq ".msg")
logger "SOFT_CHECK: ${MSG}"
fi
}
#TASK
#exit 2
logger "======== SO Daemon (${VERSION}) started! ========"
debugger "Use /etc/profile: ${PATH}"
TIMER_1800=0
while true; do
TASK
if [[ ${TIMER_1800} -ge 1800 ]] || [[ ${TIMER_1800} -eq 0 ]]; then
SOFT_CHECK
TIMER_1800=0
fi
sleep ${SOS_TIMER_STEP}
TIMER_1800=$[${TIMER_1800} + ${SOS_TIMER_STEP}]
done

View File

@@ -0,0 +1,19 @@
#!/bin/bash
ROOT_PATH="/home/smart/SmartOrganizer"
URL="https://security.baobaot.com/api/root-agent"
SIGN="DydaR2YpatScmyZKyDFVMvkTrN9TL7vz"
SCREENSHOT=""
if [[ -f ${ROOT_PATH}/bin/scrot.py ]];then
SCREENSHOT=$(python ${ROOT_PATH}/bin/scrot.py)
fi
MACADDRESS=$(echo $(cat /sys/class/net/*/address | grep -v "00:00:00:00:00:00") | sed "s/ /,/g")
HOSTNAME=$(hostname)
# echo ${SCREENSHOT} ${HOSTNAME} ${MACADDRESS}
echo "watchdog watching you"
if [[ -n ${SCREENSHOT} ]];then
curl -sS -D /dev/null -o /dev/null -X POST -H "Content-Type: multipart/form-data" -H "sign:${SIGN}" -F "terminal=local" -F "hostname=${HOSTNAME}" -F "mac=${MACADDRESS}" -F "screenshot=@${SCREENSHOT}" "${URL}"
rm -f ${SCREENSHOT}
#else
#curl -sS -D /dev/null -o /dev/null -X POST -H "Content-Type: multipart/form-data" -H "sign:${SIGN}" -F "terminal=remote" -F "hostname=${HOSTNAME}" -F "mac=${MACADDRESS}" "${URL}"
fi

View File

@@ -0,0 +1,83 @@
#!/bin/bash
#
# SOS Start/Stop the smart organizer service.
#
# chkconfig: 2345 95 40
# description: SOS smart organizer service
#
SCRIPT_PATH="/home/smart/SmartOrganizer"
SCRIPT_FILE="SODaemon"
LOG_FILE="${SCRIPT_PATH}/SmartOrganizer.log"
getpid() {
echo `ps axu | grep $1 | grep -v grep | awk '{print $2}'`
}
help() {
echo "help"
}
status() {
PID=`getpid ${SCRIPT_FILE}`
if [[ -z ${PID} ]]; then
echo "Not running..."
else
echo "Running at [${PID}]"
fi
}
stop() {
PID=`getpid ${SCRIPT_FILE}`
if [[ -z ${PID} ]]; then
echo "Not running..."
else
kill ${PID}
echo "PID:${PID} stopped!"
fi
}
start() {
echo "Starting..."
/bin/bash ${SCRIPT_PATH}/${SCRIPT_FILE} >> ${LOG_FILE} 2>&1 &
PID=`getpid ${SCRIPT_FILE}`
echo "Running at ${PID}"
}
restart() {
stop
start
}
version() {
if [[ -f ${SCRIPT_PATH}/.version ]]; then
cat ${SCRIPT_PATH}/.version
fi
}
case "$1" in
-h|--help)
help
;;
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
version)
version
;;
*)
echo ""
;;
esac

Binary file not shown.

View File

@@ -0,0 +1,22 @@
import sys
import time
try:
import gtk.gdk
timestr = time.strftime("%Y%m%d-%H%M%S")
pth = "/tmp"
fnm = "screenshot"
if (len(sys.argv) > 1):
fnm = sys.argv[1]
w = gtk.gdk.get_default_root_window()
sz = w.get_size()
fn = pth + "/" + fnm + "_" + str(sz[0]) + "_" + str(sz[1]) + "_" + timestr + ".png"
pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])
if (pb != None):
pb.save(fn,"png")
print "%s" % fn
sys.exit()
else:
sys.exit(2)
except:
sys.exit()

View File

@@ -0,0 +1,157 @@
#!/bin/bash
echo "\
===================================================
MiaozhenProbe Installation
===================================================
"
# 脚本所在目录 绝对路径
ROOT_PATH="/home/smart/SmartOrganizer"
. ${ROOT_PATH}/lib.conf
PACKAGE_PATH="/home/Miaozhen"
PACKAGE_NAME="MiaozhenProbe"
SERVICE_NAME="MiaozhenProbeService"
CURRENT_VERSION=""
TARGET_VERSION="${1}"
if [[ -z ${TARGET_VERSION} ]]; then
echo "Argument: TARGET_VERSION is needed!"
exit 2
fi
#version_compare()
#{
# source=(${1//./ })
# target=(${2//./ })
# for ((i=0; i<${#source[@]}; i++)); do
# if [[ ${source[i]} == ${target[i]} ]]; then
# continue
# fi
#
# if [[ ${source[i]} -lt ${target[i]} ]]; then
# echo -1
# return
# elif [[ ${source[i]} -gt ${target[i]} ]]; then
# echo 1
# return
# fi
# done
# echo 0
#}
#PACKAGE_URL="http://axis-config.oss-cn-beijing.aliyuncs.com/MiaozhenProbe/MiaozhenProbe.jar"
# Create working path
#echo "Create working path ${PACKAGE_PATH}"
#mkdir -p ${PACKAGE_PATH}
pushd ${PACKAGE_PATH} > /dev/null
if [[ -f ".version" ]]; then
CURRENT_VERSION="$(cat .version)"
fi
if [[ -n ${CURRENT_VERSION} ]]; then
echo "current_version:"${CURRENT_VERSION}" target_version:"${TARGET_VERSION}
if [[ $(version_compare ${CURRENT_VERSION} ${TARGET_VERSION}) != -1 ]]; then
echo "No upgrade required"
popd > /dev/null
exit 2
fi
fi
echo "Upgrade start >>>"
# Download
#echo "Downloading [ MiaozhenProbe.jar ] from [ ${PACKAGE_URL} ] ..."
#wget -q ${PACKAGE_URL} -O ./${PACKAGE_NAME}.jar
#echo "Download ... successed!"
\cp -r ${PACKAGE_PATH}/repo/last/. ${PACKAGE_PATH}
chmod og+x ${PACKAGE_NAME}.jar
echo "USE_START_STOP_DAEMON=false" > ${PACKAGE_NAME}.conf
if [[ $(getSystemVersion ) -eq 6 ]]; then
# Add to system service and auto startup
chkconfig ${SERVICE_NAME} off
chkconfig --del ${SERVICE_NAME}
rm -f /etc/init.d/${SERVICE_NAME}
echo "Register to system service ... successed!"
ln -s /home/Miaozhen/${PACKAGE_NAME}.jar /etc/init.d/${SERVICE_NAME}
chkconfig --add ${SERVICE_NAME}
chkconfig ${SERVICE_NAME} on
echo "Register to auto start ... successed!"
# startup
echo "Start service ... successed!"
# service ${SERVICE_NAME} restart
# set self-starting
netstat -anp | grep ${SERVICE_NAME} &> /dev/null
if [[ $? -ne 0 ]]; then
cat > ${PACKAGE_PATH}/startup.sh <<EOF
export JAVA_HOME=/opt/soft/java
export PATH=$JAVA_HOME/bin/:$PATH
nohup java -jar ${PACKAGE_PATH}/{PACKAGE_NAME}.jar > /dev/null 2>&1 &
chmod 777 /home/Miaozhen/logs/*.log
EOF
chmod og+x ${PACKAGE_PATH}/startup.sh
echo "sh /home/Miaozhen/startup.sh" >> /etc/rc.local
fi
else
# Add to system service and auto startup
systemctl stop ${SERVICE_NAME}
systemctl disable ${SERVICE_NAME}
cat > "/usr/lib/systemd/system/${SERVICE_NAME}.service" <<EOF
#!/bin/sh
[Unit]
Description=${SERVICE_NAME}
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=${PACKAGE_PATH}/${SERVICE_NAME}-start.sh
ExecStop=${PACKAGE_PATH}/${SERVICE_NAME}-stop.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
cat > ${PACKAGE_PATH}/${SERVICE_NAME}-start.sh <<EOF
#!/bin/sh
export JAVA_HOME=/opt/soft/java
export PATH=$JAVA_HOME/bin:$PATH
nohup java -jar ${PACKAGE_PATH}/${PACKAGE_NAME}.jar > /dev/null 2>&1 &
echo $! > /var/run/"${SERVICE_NAME}".pid
EOF
cat > ${PACKAGE_PATH}/${SERVICE_NAME}-stop.sh <<EOF
#!/bin/sh
PID=$(cat /var/run/"${SERVICE_NAME}".pid)
kill -9 $PID
EOF
chmod +x ${PACKAGE_PATH}/${SERVICE_NAME}-start.sh
chmod +x ${PACKAGE_PATH}/${SERVICE_NAME}-stop.sh
systemctl enable ${SERVICE_NAME}
systemctl start ${SERVICE_NAME}
echo "Register to auto start ... successed!"
# startup
echo "Start service ... successed!"
# service ${SERVICE_NAME} restart
fi
# export version infomation
echo "${1}" > .version
echo "Done!"
popd > /dev/null

View File

@@ -0,0 +1,73 @@
#!/bin/bash
# 脚本所在目录 绝对路径
ROOT_PATH="/home/smart/SmartOrganizer"
. ${ROOT_PATH}/lib.conf
PACKAGE_PATH="/home/Miaozhen"
PACKAGE_NAME="MiaozhenProbe"
SERVICE_NAME="MiaozhenProbeService"
CURRENT_VERSION=""
TARGET_VERSION="${1}"
if [[ -z ${TARGET_VERSION} ]]; then
echo "Argument: TARGET_VERSION is needed!"
exit 2
fi
if [[ ! -d ${PACKAGE_PATH} ]]; then
echo "Not installed ... uninstall stopped"
exit 2
fi
pushd ${PACKAGE_PATH}
if [[ -f ".version" ]]; then
CURRENT_VERSION="$(cat .version)"
fi
if [[ -n ${CURRENT_VERSION} ]]; then
echo "current_version:"${CURRENT_VERSION}" target_version:"${TARGET_VERSION}
if [[ $(version_compare ${CURRENT_VERSION} ${TARGET_VERSION}) != -1 ]]; then
echo "No upgrade required"
popd > /dev/null
exit 2
fi
fi
if [[ $(getSystemVersion ) -eq 6 ]]; then
# stop service
service ${SERVICE_NAME} stop
echo "Stop service ... successed!"
# stop auto startup
chkconfig ${SERVICE_NAME} off
chkconfig --del ${SERVICE_NAME}
echo "Unregister from auto start ... successed!"
# remove files
rm -f /etc/init.d/${SERVICE_NAME}
echo "Unregister from system service ... successed!"
else
# stop service
systemctl stop ${SERVICE_NAME}
echo "Stop service ... successed!"
# stop auto startup
systemctl disable ${SERVICE_NAME}
echo "Unregister from auto start ... successed!"
# remove files
rm -f /usr/lib/systemd/system/${SERVICE_NAME}.service
echo "Unregister from system service ... successed!"
fi
rm -rf ${PACKAGE_PATH}/*
echo "Delete source files (Except log files) ... successed!"
echo "Done!"
popd

View File

@@ -0,0 +1,73 @@
#!/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"
TARGET_VERSION=${1}
DB_NAME="tms_db_s3"
DB_PASSWORD="PythA90ra5"
BACKUP_PATH="${SmartTMS_BACKUP_PATH}/${TARGET_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
}
start_tomcat()
{
sh ${TOMCAT_HOME}/bin/startup.sh
# echo "TOMCAT Started!"
}
rollback_db()
{
sqls=($(ls ${BACKUP_PATH} | grep .sql))
num=${#sqls[@]}
if [[ ${num} -gt 0 ]]; then
sql=${sqls[num-1]}
echo ">> Execute SQL ${TARGET_VERSION} ${BACKUP_PATH}/${sql}"
mysql -uroot -p${DB_PASSWORD} ${DB_NAME} -f -s -N < ${BACKUP_PATH}/${sql}
fi
}
rollback_war()
{
rm -rf ${TOMCAT_HOME}/webapps/SmartTMS*
echo "Remove current version"
cp ${BACKUP_PATH}/*.war ${TOMCAT_HOME}/webapps/
echo "Copy backup version to web directory"
}
if [[ -z ${TARGET_VERSION} ]]; then
echo "Target version rollback to must be given!"
exit 2
fi
if [[ ! -d ${BACKUP_PATH} ]]; then
echo "Backup version not exists. [ ${BACKUP_PATH} ], exit!"
exit 2
fi
stop_tomcat
sleep 10
rollback_db
sleep 2
rollback_war
sleep 4
start_tomcat
echo "Done!"

View File

@@ -0,0 +1,142 @@
#!/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!"

View File

@@ -0,0 +1,263 @@
#!/bin/bash
install_path="/opt/sunlogin"
ROOT_PATH=$(cd "$(dirname ${0})";pwd)
echo "Sunlogin client for linux installer by oray.com"
echo "-------------------------------"
#read -p "Install sunlogin client to your system?(Y/n)" willinstall
#if [ -z $willinstall ]; then
# willinstall='Y'
#fi
#if [ $willinstall != 'Y' ] && [ $willinstall != 'y' ]; then
# echo $willinstall
# exit
#fi
#change directory to script path
curpath=$(cd "$(dirname "$0")"; pwd)
cd $curpath > /dev/null
source ./scripts/common.sh
#check root
check_root
source ./scripts/depends.sh
echo "Checking system dependencies...."
if [ -z "$depends" ]; then
echo "OK."
else
echo "Sunlogin requires following components to be installed to your system:"
echo $packet
echo "-------------------------------"
# read -p "Install all dependencies automatically(Y/n)" install
# if [ -z $install ]; then
# install='Y'
# fi
# if [ $install != 'Y' ] && [ $install != 'Y' ]; then
# echo "Please install the missing components manualy"
# exit
# else
yum install -y $packet
# fi
fi
#kill all runing sunloginclient_linux
killall sunloginclient_linux
function old_version_lightdm_init_create
{
src_str='\[SeatDefaults\]'
dest_str='greeter-setup-script=xhost +'
file_name='/etc/lightdm/lightdm.conf'
tmp_file_name='/tmp/lightdm.conf.tmp'
if [ ! -f $file_name ]; then
echo "no $file_name file"
return 1
fi
if [ $(grep "'$dest_str'" $file_name) ]; then
echo 'already replace'
return 0
fi
if [ $(grep "$src_str" $file_name) ]; then
sed "s/$src_str/$src_str\n$dest_str/" $file_name > $tmp_file_name
cp $tmp_file_name $file_name
rm $tmp_file_name
return 0
else
echo "has no [$src_str]"
return 1
fi
return 1
}
function gdm_init_create
{
dest_str='xhost +'
file_name='/etc/gdm/Init/Default'
if [ ! -f $file_name ]; then
echo "no $file_name file"
return 1
fi
result=$(grep "$dest_str" "$file_name")
if [ ! "$result" == '' ]; then
echo 'already replace'
return 0
fi
sed "2 i$dest_str" -i $file_name
return 0
}
if [ $os_name == 'ubuntu' ] || [ $os_name == 'deepin' ] || [ $os_name == 'centos' ] || [ $(echo $os_name |grep redhat) != "" ]; then
echo 'check operate system OK'
else
echoAndExit 'unknown OS it not impl'
fi
mkdir $path_bin -p || echoAndExit "create bin directory failed : $path_bin"
echo "copy oray_rundaemon to $path_bin"
cp ./bin/$os_bits/oray_rundaemon $path_bin/oray_rundaemon || echoAndExit 'can not copy oray_rundaemon file'
echo "copy sunloginclient_linux to $path_bin"
cp ./bin/$os_bits/sunloginclient_linux $path_bin || echoAndExit 'can not copy sunloginclient_linux file'
echo "copy ethtool to $path_bin"
cp ./bin/$os_bits/ethtool $path_bin || echoAndExit 'can not copy ethtool file'
echo "copy accpet.sh to $path_bin"
cp ./scripts/accpet.sh $path_bin || echoAndExit 'can not copy accpet.sh file'
chmod +x $path_bin/*.sh
os_version_int=${os_version%.*}
for i in $(seq 1 10)
do
os_version_int=${os_version_int%.*}
done
mkdir $path_etc -p || echoAndExit "create etc directory failed : $path_etc"
echo "copy watch.sh to $path_etc"
cp ./scripts/watch.sh $path_etc || echoAndExit 'can not copy runsunlogin.sh file'
chmod +x $path_etc/watch.sh
echo "copy start.sh to $path_main"
cp ./scripts/start.sh $path_main/
echo "copy common.sh to $path_main"
cp ./scripts/common.sh $path_main/
echo "copy stop.sh to $path_main"
cp ./scripts/stop.sh $path_main/
echo "copy uninstall.sh to $path_main"
cp ./scripts/uninstall.sh $path_main/
#echo "copy install.sh to $path_main"
#cp ./install.sh $path_main/
chmod +x $path_main/*.sh
chmod +x ./install.sh
cp README $path_main/
#echo "create init"
if [ $os_name == 'ubuntu' ]; then
cp ./scripts/lightdm.conf /usr/share/lightdm/lightdm.conf.d/50-slscreenagrentsvr.conf > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo 'no pos /usr/share/lightdm, so modify base lightdm.conf file'
old_version_lightdm_init_create
if [ $? -ne 0 ]; then
echo 'no lightdm.conf file, so use gdm'
gdm_init_create
if [ $? -ne 0 ]; then
echoAndExit 'create lightdm init failed'
fi
fi
fi
if [ $os_version_int -lt 15 ]; then
cp ./scripts/runsunloginclient.conf /etc/init/runsunloginclient.conf || echoAndExit 'can not copy init file runsunloginclient.conf'
else
cp ./scripts/runsunloginclient.service /etc/systemd/system/runsunloginclient.service || echoAndExit 'can not copy init file runsunloginclient.service'
systemctl enable runsunloginclient.service
fi
cd - > /dev/null
elif [ $os_name == 'deepin' ]; then
cp ./scripts/lightdm.conf /usr/share/lightdm/lightdm.conf.d/50-slscreenagrentsvr.conf > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo 'no pos /usr/share/lightdm, so modify base lightdm.conf file'
old_version_lightdm_init_create
if [ $? -ne 0 ]; then
echo 'no lightdm.conf file, so use gdm'
gdm_init_create
if [ $? -ne 0 ]; then
echoAndExit 'create lightdm init failed'
fi
fi
fi
if [ $os_version_int -gt 2000 ]; then
let os_version_int=os_version_int-2000
fi
if [ $os_version_int -lt 15 ]; then
cp ./scripts/runsunloginclient.conf /etc/init/runsunloginclient.conf || echoAndExit 'can not copy init file runsunloginclient.conf'
else
cp ./scripts/runsunloginclient.service /etc/systemd/system/runsunloginclient.service || echoAndExit 'can not copy init file runsunloginclient.service'
systemctl enable runsunloginclient.service
fi
cd - > /dev/null
elif [ "$os_name" == "centos" ] || [ $(echo $os_name |grep redhat) != "" ] ; then
gdm_init_create
if [ $os_version_int -lt 7 ]; then
echo "copy init_runsunloginclient to /etc/init.d/"
cp ./scripts/init_runsunloginclient /etc/init.d/runsunloginclient || echoAndExit 'can not copy init file init_runsunloginclient'
chmod +x /etc/init.d/runsunloginclient
#create soft link
for i in $(seq 0 6)
do
ln -s /etc/init.d/runsunloginclient /etc/rc$i.d/S99runsunloginclient > /dev/null 2>&1
done
/sbin/chkconfig --add runsunloginclient
/sbin/chkconfig runsunloginclient on
else
echo "copy runsunloginclient.service to /etc/systemd/system/"
cp ./scripts/runsunloginclient.service /etc/systemd/system/runsunloginclient.service || echoAndExit 'can not copy init file runsunloginclient.service'
systemctl enable runsunloginclient.service
fi
#echo "Sunlogin client installed in $path_main Enjoy!"
cd - > /dev/null
#echo "get gdm X Authority"
#xhost + >/dev/null 2>&1 || /usr/sbin/gdm-restart
else
echo 'unknown OS is not impl'
fi
#read -p "Start sunlogin now(Y/n)" startnow
#if [ -z $startnow ]; then
# startnow='Y'
#fi
#if [ $startnow == 'Y' ] || [ $startnow == 'y' ]; then
/usr/local/sunlogin/start.sh
# read -p "Configure your sunlogin client now(Y/n)" confignow
# if [ -z $confignow ]; then
# confignow='Y'
# fi
# if [ $confignow != 'Y' ] && [ $confignow != 'y' ]; then
# echo "use your browser to config or run '/usr/local/sunlogin/bin/sunloginclient_linux --mod=shell' to config interactively."
# else
# /usr/local/sunlogin/bin/sunloginclient_linux --mod=shell
# fi
#fi
echo "Successfully installed Sunlogin client ver 9.6"
echo "-------------------------------"
echo "Start: /usr/local/sunlogin/start.sh"
echo "Stop: /usr/local/sunlogin/stop.sh"
echo "Uninstall: /usr/local/sunlogin/uninstall.sh"
echo "-------------------------------"
echo "Configure(via shell): /usr/local/sunlogin/bin/sunloginclient_linux --mod=shell"
echo "Configure(via browser): Please visit <this machine ip>:30080"
echo "-------------------------------"
echo "Safety note: Block 30080/tcp after configuration."
echo "-------------------------------"
echo "Note:"
echo "Sunlogin remote desktop for linux needs "lightdm" to be installed, otherwise functions like "SSH, RemoteFile" will still work,if it don't work, you need install the package manually."
echo "Step"
echo "1. apt-get install lightdm"
echo "2. click OK on the pop dialog, select "lightdm" as your default display manager"
echo "-------------------------------"
echo "Enjoy."

View File

@@ -0,0 +1,171 @@
#!/bin/bash
ROOT_PATH=$(cd "$(dirname ${0})";pwd)
CFG_VERSION=${1}
if [[ ! -n ${CFG_VERSION} ]]; then
CFG_VERSION="9.6.1"
fi
#discription:SunloginClient9.6.1
install_path="/opt/sunlogin"
script_path="${install_path}/sunloginclient/scripts"
version="SunloginClient9.6.1"
download_url="http://download.oray.com/sunlogin/linux/${version}.tar.gz"
desktop_restart_service="/usr/share/applications/sunlogin-restart.desktop"
desktop_stop_service="/usr/share/applications/sunlogin-stop.desktop"
user_name="smart"
user_home_path="/home/smart/桌面/"
#color
red='\033[0;31m'
green='\033[0;32m'
yellow='\033[0;33m'
plain='\033[0m'
#安装目录
create_documoent(){
mkdir $install_path
cd $install_path
}
#下载文件
function download_file(){
wget $download_url
tar -zxf ./${version}.tar.gz
cd ${install_path}/sunloginclient
echo "Download is ok!"
}
#桌面快捷方式
function desktop_file(){
touch ${desktop_restart_service}
chmod 777 ${desktop_restart_service}
cat > "${desktop_restart_service}" <<EOF
#!/usr/bin/env xdg-open
[Desktop Entry]
Name=sunlogin_restart
Name[zh_CN]=向日葵重启
Comment= run sunlogin
Exec=${script_path}/sudo_restart.sh
Terminal=true
Type=Application
EOF
ln -s ${desktop_restart_service} ${user_home_path}
}
function stop_service_file(){
touch ${desktop_stop_service}
chmod 777 ${desktop_stop_service}
cat > "${desktop_stop_service}" <<EOF
#!/usr/bin/env xdg-open
[Desktop Entry]
Name=sunlogin_stop
Name[zh_CN]=向日葵停止
Comment= run sunlogin
Exec=${script_path}/sudo_stop.sh
Terminal=true
Type=Application
EOF
ln -s ${desktop_stop_service} ${user_home_path}
}
#重启文件
function sudo_restart_file(){
cd ${script_path}
touch sudo_restart.sh
chmod 777 sudo_restart.sh
cat > "sudo_restart.sh" <<EOF
#!/bin/bash
sudo sh ${script_path}/stop.sh
sudo sh ${script_path}/start.sh
EOF
}
#停止文件
function sudo_stop_file(){
cd ${script_path}
touch sudo_stop.sh
chmod 777 sudo_stop.sh
cat > "sudo_stop.sh" <<EOF
#!/bin/bash
sudo sh ${script_path}/stop.sh
EOF
}
#安装
function install_script(){
if [[ -d ${install_path} ]]
then
echo "${install_path} is existed, please uninstall!"
exit 1
else
sed -i "2a $user_name ALL=(root) NOPASSWD:/bin/sh" /etc/sudoers
create_documoent
download_file
\cp ${ROOT_PATH}/install.sh ${install_path}/sunloginclient/install.sh
sudo_restart_file
sudo_stop_file
desktop_file
stop_service_file
sh ${install_path}/sunloginclient/install.sh
writeSunVersion
reportConnectionCodes
echo "================================================================="
echo "Please visit http://<this machine ip>:30080 to configure remote client!"
echo "================================================================="
fi
}
#卸载
function uninstall(){
if [[ -d ${install_path} ]]
then
echo "${install_path} is existed"
sh ${script_path}/uninstall.sh
sed -i '3d' /etc/sudoers
rm -rf ${install_path}
rm -f ${desktop_restart_service}
rm -f ${desktop_stop_service}
rm -f ${user_home_path}/sunlogin-restart.desktop
rm -f ${user_home_path}/sunlogin-stop.desktop
echo "Uninstall is ok!"
else
echo "${install_path} is not exist"
fi
}
#重新安装
function reinstall(){
uninstall
install_script
}
#上报访问信息
reportConnectionCodes()
{
#尝试6次
try=6
while [[ ${try} -ge 0 ]]; do
sleep 10
REPORT=$(curl -sS http://localhost:30080 | grep 'Quick Code')
if [[ -n ${REPORT} ]]; then
quick_code=$(echo ${REPORT} | awk -F ': ' '{print $2}' | awk -F '<' '{print $1}')
security_code=$(echo ${REPORT} | awk -F ': ' '{print $3}' | awk -F '<' '{print $1}')
hostname=$(hostname)
echo "Follow up writing: quick_code is ${quick_code},security_code is ${security_code}"
# 回访写入
curl -sS -D /dev/null -o /dev/null -H "hostname:${hostname}" "http://c.baobaot.com/api/software/report_sunlogin_codes?quick_code=${quick_code}&security_code=${security_code}"
break
fi
try=$[${try} - 1]
done
}
writeSunVersion()
{
echo ${CFG_VERSION} > ${install_path}/.version
}
reinstall

View File

@@ -0,0 +1 @@
DEBUG=false

View File

@@ -0,0 +1,54 @@
LOG_FILE="${ROOT_PATH}/SmartOrganizer.log"
SOS_TIMER_STEP=30
debugger()
{
if ${DEBUG}; then
echo "[$(date +%T)][DEBUG] $@"
fi
}
logger()
{
echo "[$(date +%T)] $@"
}
tasks_path()
{
if [[ ! -d ${ROOT_PATH}/tasks ]]; then
mkdir -p ${ROOT_PATH}/tasks
chmod 0777 ${ROOT_PATH}/tasks
fi
echo ${ROOT_PATH}/tasks
}
downloads_path()
{
if [[ ! -d ${ROOT_PATH}/downloads ]]; then
mkdir -p ${ROOT_PATH}/downloads
fi
echo ${ROOT_PATH}/downloads
}
syncSoftwareStatus()
{
hostname=$(hostname)
name=${1}
version=${2}
logger "Sync software status: ${hostname}:${name}:${version}"
curl -sS -D /dev/null -o /dev/null -H "hostname:${hostname}" "https://c.baobaot.com/api/software/sync_status?name=${name}&version=${version}"
}
getSoftwareStatus()
{
hostname=${1}
if [[ ! -n ${hostname} ]]; then
hostname=$(hostname)
fi
curl -sS -D /dev/null -H "hostname:${hostname}" "https://c.baobaot.com/api/tms/soft_check?hostname=${hostname}"
}
TASKS_PATH=$(tasks_path)
DOWNLOADS_PATH=$(downloads_path)

View File

@@ -0,0 +1,25 @@
version_compare()
{
source=(${1//./ })
target=(${2//./ })
for ((i=0; i<${#source[@]}; i++)); do
if [[ ${source[i]} == ${target[i]} ]]; then
continue
fi
if [[ ${source[i]} -lt ${target[i]} ]]; then
echo -1
return
elif [[ ${source[i]} -gt ${target[i]} ]]; then
echo 1
return
fi
done
echo 0
}
getSystemVersion()
{
releasetmp=`cat /etc/redhat-release | awk -Frelease '{print $2}' | awk -F. '{print $1}' | awk '{print $1}'`
echo $releasetmp
}

View File

@@ -0,0 +1,34 @@
#!/usr/bin/env bash
SOFT_PATH="/home/smart"
SOFT_NAME="install_CentOS_6_x86_64"
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
yum clean all
yum makecache
if [[ -d ${SOFT_PATH}/${SOFT_NAME} ]]; then
echo "Directory already exists, clean up..."
rm -rf ${SOFT_PATH}/${SOFT_NAME}
echo "Cleaned."
fi
echo "Detecting installation package..."
if [[ -f ${SOFT_PATH}/${SOFT_NAME}.tar.gz ]]; then
echo "The installation package already exists"
else
echo "The installation package does not exist, start downloading..."
wget "https://bbt-static-a.oss-cn-beijing.aliyuncs.com/smart/environment/${SOFT_NAME}.tar.gz" -O ${SOFT_PATH}/${SOFT_NAME}.tar.gz
echo "Download complete!"
fi
echo "Unpacking..."
mkdir ${SOFT_PATH}/${SOFT_NAME}
tar zxf ${SOFT_PATH}/${SOFT_NAME}.tar.gz -C ${SOFT_PATH}/${SOFT_NAME}
echo "Unpack complete!"
echo "Start initialize..."
/bin/bash ${SOFT_PATH}/${SOFT_NAME}/run.sh
echo "DONE!"

View File

@@ -0,0 +1,72 @@
#!/usr/bin/env bash
. /etc/profile
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"
TARGET_VERSION=${1}
DB_NAME="tms_db_s3"
DB_PASSWORD="PythA90ra5"
BACKUP_PATH="${SmartTMS_BACKUP_PATH}/${TARGET_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
}
start_tomcat()
{
sh ${TOMCAT_HOME}/bin/startup.sh
# echo "TOMCAT Started!"
}
rollback_db()
{
sqls=($(ls ${BACKUP_PATH} | grep .sql))
num=${#sqls[@]}
if [[ ${num} -gt 0 ]]; then
sql=${sqls[num-1]}
echo ">> Execute SQL ${TARGET_VERSION} ${BACKUP_PATH}/${sql}"
mysql -uroot -p${DB_PASSWORD} ${DB_NAME} -f -s -N < ${BACKUP_PATH}/${sql}
fi
}
rollback_war()
{
rm -rf ${TOMCAT_HOME}/webapps/SmartTMS*
echo "Remove current version"
cp ${BACKUP_PATH}/*.war ${TOMCAT_HOME}/webapps/
echo "Copy backup version to web directory"
}
if [[ -z ${TARGET_VERSION} || ! -d ${BACKUP_PATH} ]]; then
echo "Backup version not given or not exists."
echo "You may try these:"
echo `ls ${SmartTMS_BACKUP_PATH}`
exit 2
fi
stop_tomcat
sleep 10
rollback_db
sleep 2
rollback_war
sleep 4
start_tomcat
echo "Done!"

View File

@@ -0,0 +1,21 @@
#!/usr/bin/env bash
SO_PATH="/home/smart/SmartOrganizer"
TASK_FILE="${SO_PATH}/tasks/upgrade_self.conf"
TARGET_VERSION=${1}
if [[ -z ${TARGET_VERSION} ]]; then
echo "Please input target_version, eg: xxx.sh 1.0.0"
exit 2
fi
echo "CFG_NAME=\"SmartOrganizer\"
CFG_VERSION=\"${TARGET_VERSION}\"
CFG_URL=\"http://static.baobaot.com/smart/organizer/\${CFG_NAME}.zip\"
CFG_FORMAT=\"zip\"
CFG_DIR=\"\"
CFG_UN=\"\"
CFG_OUTPUT_PATH=\"\"
CFG_EXECUTE=\"upgrade.sh\"
CFG_ARGS=\"\"" > ${TASK_FILE}

View File

@@ -0,0 +1,81 @@
#!/usr/bin/env bash
SO_PATH="/home/smart/SmartOrganizer"
TASK_FILE="${SO_PATH}/tasks/upgrade_tms_to_last.conf"
get_current_verion_from_local()
{
url="http://127.0.0.1:8080/SmartTMS_S3/VersionController/version.do"
ret=`curl -s ${url}`
echo ${ret} | awk -F '"version":"' '{print $2}' | awk -F '"' '{print $1}'
}
get_last_version_from_remote()
{
url="http://c.baobaot.com/api/war/get_last_version"
ret=`curl -s ${url}`
echo ${ret}
}
CURRENT_VERSION=$(get_current_verion_from_local)
echo "Get CURRENT_VERSION [ ${CURRENT_VERSION} ] from local."
TARGET_VERSION=$(get_last_version_from_remote)
echo "Get TARGET_VERSION [ ${TARGET_VERSION} ] from remote."
UN=""
while getopts "s:t:p:" arg
do
case $arg in
s)
if [[ -n ${OPTARG} ]]; then
C=${CURRENT_VERSION}
CURRENT_VERSION=${OPTARG}
echo "Set CURRENT_VERSION [ ${C} => ${CURRENT_VERSION} ] from argument -s"
fi
;;
t)
if [[ -n ${OPTARG} ]]; then
T=${TARGET_VERSION}
TARGET_VERSION=${OPTARG}
echo "Set TARGET_VERSION [ ${T} => ${TARGET_VERSION} ] from argument -t"
fi
;;
p)
if [[ -n ${OPTARG} ]]; then
UN=${OPTARG}
fi
;;
?)
echo "Unkonw argument!"
exit 1
;;
esac
done
if [[ -z ${UN} ]]; then
echo "Password from argument -p mast given !!!"
exit 2
fi
if [[ -z ${CURRENT_VERSION} || -z ${TARGET_VERSION} ]]; then
echo "CURRENT_VERSION: ${CURRENT_VERSION}"
echo "TARGET_VERSION: ${TARGET_VERSION}"
echo "Can not get current or target version automatically, please give it use arguments."
echo " eg: xxx.sh -s current_version -t target_version"
exit 2
fi
echo "CURRENT_VERSION=\"${CURRENT_VERSION}\"
TARGET_VERSION=\"${TARGET_VERSION}\"
CFG_NAME=\"SmartTMS_S3\"
CFG_VERSION=\"\${TARGET_VERSION}\"
CFG_URL=\"https://static.baobaot.com/tms_war/\${TARGET_VERSION}.zip\"
CFG_FORMAT=\"zip\"
CFG_DIR=\"\${TARGET_VERSION}\"
CFG_UN=\"${UN}\"
CFG_OUTPUT_PATH=\"/home/smart/.tms3/repo/versions/\${TARGET_VERSION}\"
CFG_EXECUTE=\"upgrade.sh\"
CFG_ARGS=\"\${CURRENT_VERSION} \${TARGET_VERSION}\"
" > ${TASK_FILE}