批量运行 batchRun.sh
#!/bin/bash
curDir=`pwd`
appDir='/opt/app'
tomcatApps=(tomcat-opms tomcat-wechat-h5 tomcat-9.0.8-crm)
springApps=(app-business-api-1.0 crm-timed-task flow-server hs-gateway opms-server crm-server msg-distribute settle-server wechat-businessServer system-server staff-legal-bsp-1.1.jar)
action=$1
app_status() {
if [ ! -d "${appDir}/$1" ]; then
return 2
else
status=`ps -ef | grep $1 | grep -v grep`
if [ -n "$status" ]; then
return 0
else
return 1
fi
fi
}
run_status() {
echo -e "\033[33m 检查程序状态 \033[0m"
for app in `ls ${appDir}`
do
app_status $app
ret=$?
if [ $ret -eq 0 ]; then
echo -e "\033[32m 应用[$app]已启动!\033[0m"
elif [ $ret -eq 1 ]; then
echo -e "\033[33m[$app]已停止!\033[0m"
elif [ $ret -eq 2 ]; then
echo -e "\033[31m 应用[$app]不存在 \033[0m"
fi
done
cd ${curDir}
}
run_stop() {
echo -e "\033[33m 关闭tomcat服务 \033[0m"
for line in `ls ${appDir}`
do
if [ -f "${appDir}/${line}/bin/shutdown.sh" ]; then
echo -e "\033[33m 正在关闭服务${line} \033[0m"
cd ${appDir}/${line}/bin
./shutdown.sh
fi
done
echo -e "\033[33m 关闭spring服务 \033[0m"
for line in `ls ${appDir}`
do
if [ -f "${appDir}/${line}/bin/run.sh" ]; then
echo -e "\033[33m 正在关闭服务${line} \033[0m"
cd ${appDir}/${line}/bin
./run.sh stop
fi
done
echo -e "\033[32m 应用启动结束 \033[0m"
cd ${curDir}
}
run_start() {
echo -e "\033[33m 启动tomcat服务 \033[0m"
for line in `ls ${appDir}`
do
if [ -f "${appDir}/${line}/bin/startup.sh" ]; then
echo -e "\033[33m 正在启动服务${line} \033[0m"
cd ${appDir}/${line}/bin
./startup.sh
fi
done
echo -e "\033[33m 启动spring服务 \033[0m"
for line in `ls ${appDir}`
do
if [ -f "${appDir}/${line}/bin/run.sh" ]; then
echo -e "\033[33m 正在启动服务${line} \033[0m"
cd ${appDir}/${line}/bin
./run.sh start
fi
done
echo -e "\033[32m 应用启动结束 \033[0m"
cd ${curDir}
}
run_restart() {
run_stop
run_start
cd ${curDir}
}
run_serviceStart(){
echo -e "\033[33m 正在启动zookeeper \033[0m"
service zookeeper start
echo -e "\033[33m 正在启动redis \033[0m"
service redis start
}
case "$action" in
status|start|stop|restart)
run_$action
;;
*)
echo "Arguments error! [${action}]"
echo "Usage: `basename $0` [install|uninstall|status|start|stop|restart]"
;;
esac
运行全部runAll.sh
#!/bin/bash
curDir=`pwd`
appDir='/opt/app'
tomcatApps=(tomcat-crm tomcat-wechat-h5 tomcat-opms)
springApps=(asset-manage-bsp-1.0 staff-legal-bsp-2.0 fixed-income-bsp-1.0 app-business-api-1.0 crm-server crm-timed-task flow-server process-server mail-server opms-server wechat-tokenServer wechat-gateWay-inner hs-gateway wechat-businessServer msg-distribute system-server hr-server app-stock-analysis)
action=$1
app_status() {
if [ ! -d "${appDir}/$1" ]; then
return 2
else
status=`ps -ef | grep $1 | grep -v grep`
if [ -n "$status" ]; then
return 0
else
return 1
fi
fi
}
spring_app_uninstall() {
spring_app_stop $1
if [ -d "${appDir}/$1" ]; then
cd ${appDir}
rm -rf $1
echo "应用[$1]卸载成功"
else
echo "应用[$1]无需卸载"
fi
}
spring_app_install() {
if [ ! -f "${appDir}/$1.tar.gz" ]; then
echo "安装包[$1.tar.gz]不存在,已忽略"
return
fi
echo "1. 卸载旧的应用[$1]"
spring_app_uninstall $1
echo "2. 安装应用[$1]"
cd ${appDir}
tar -xf $1.tar.gz
rm -rf $1.tar.gz
echo "3. 应用[$1]安装完成"
}
tomcat_app_uninstall() {
tomcat_app_stop $1
if [ -d "${appDir}/$1/webapps" ]; then
cd ${appDir}/$1/webapps
if [ -f $1 ]; then
rm -rf $1
fi
if [ -f "$1.war" ]; then
rm -rf $1.war
fi
echo "应用[$1]卸载成功"
else
echo "应用[$1]无需卸载"
fi
}
tomcat_app_install() {
if [ ! -f "${appDir}/$1.war" ]; then
echo "安装包[$1.war]不存在,已忽略"
return
fi
echo "1. 卸载旧的应用[$1]"
tomcat_app_uninstall $1
echo "2. 安装应用[$1]"
cd ${appDir}
cp $1.war $1/webapps
rm -rf $1.war
echo "3. 应用[$1]安装完成"
}
spring_app_start() {
app_status $1
ret=$?
if [ $ret -eq 1 ]; then
echo "启动应用[$1]"
cd ${appDir}/$1/bin
./run.sh start
elif [ $ret -eq 0 ]; then
echo "应用[$1]已启动!"
elif [ $ret -eq 2 ]; then
echo "应用[$1]不存在"
fi
}
spring_app_stop() {
app_status $1
ret=$?
if [ $ret -eq 0 ]; then
echo "停止应用[$1]"
cd ${appDir}/$1/bin
./run.sh stop
echo "应用[$1]已停止!"
elif [ $ret -eq 1 ]; then
echo "应用[$1]已停止!"
elif [ $ret -eq 2 ]; then
echo "应用[$1]不存在"
fi
}
tomcat_app_start() {
app_status $1
ret=$?
if [ $ret -eq 1 ]; then
echo "启动应用[$1]"
cd ${appDir}/$1/bin
./startup.sh
elif [ $ret -eq 0 ]; then
echo "应用[$1]已启动!"
elif [ $ret -eq 2 ]; then
echo "应用[$1]不存在"
fi
}
tomcat_app_stop() {
app_status $1
ret=$?
if [ $ret -eq 0 ]; then
echo "停止应用[$1]..."
cd ${appDir}/$1/bin
./shutdown.sh
elif [ $ret -eq 1 ]; then
echo "应用[$1]已停止!"
elif [ $ret -eq 2 ]; then
echo "应用[$1]不存在"
fi
}
run_install() {
for app in ${springApps[*]}
do
spring_app_install $app
done
for app in ${tomcatApps[*]}
do
tomcat_app_install $app
done
cd ${curDir}
}
run_uninstall() {
for app in ${springApps[*]}
do
spring_app_uninstall $app
done
for app in ${tomcatApps[*]}
do
tomcat_app_uninstall $app
done
cd ${curDir}
}
run_status() {
for app in ${springApps[*]}
do
app_status $app
ret=$?
if [ $ret -eq 0 ]; then
echo "应用[$app]已启动!"
elif [ $ret -eq 1 ]; then
echo "应用[$app]已停止!"
elif [ $ret -eq 2 ]; then
echo "应用[$app]不存在"
fi
done
for app in ${tomcatApps[*]}
do
app_status $app
ret=$?
if [ $ret -eq 0 ]; then
echo "应用[$app]已启动!"
elif [ $ret -eq 1 ]; then
echo "应用[$app]已停止!"
elif [ $ret -eq 2 ]; then
echo "应用[$app]不存在"
fi
done
cd ${curDir}
}
run_stop() {
for app in ${springApps[*]}
do
spring_app_stop $app
done
for app in ${tomcatApps[*]}
do
tomcat_app_stop $app
done
cd ${curDir}
}
run_start() {
for app in ${springApps[*]}
do
spring_app_start $app
done
for app in ${tomcatApps[*]}
do
tomcat_app_start $app
done
cd ${curDir}
}
run_restart() {
for app in ${springApps[*]}
do
spring_app_stop $app
spring_app_start $app
done
for app in ${tomcatApps[*]}
do
tomcat_app_stop $app
tomcat_app_start $app
done
cd ${curDir}
}
case "$action" in
install|uninstall|status|start|stop|restart)
run_$action
;;
*)
echo "Arguments error! [${action}]"
echo "Usage: `basename $0` [install|uninstall|status|start|stop|restart]"
;;
esac
备份backup.sh
#!/bin/bash
curDir=`pwd`
appDir='/opt/commServer'
action=$1
run_unpack() {
echo -e "\033[33m 压缩服务 \033[0m"
for line in `ls ${appDir}`
do
echo -e "\033[33m 正在解压服务 ${line} \033[0m"
cd /opt/backup
cp ${line}.tar.gz ${appDir}/${line}.tar.gz
tar -xf ${appDir}/${line}.tar.gz
done
echo -e "\033[32m 应用解压结束 \033[0m"
cd ${curDir}
}
run_pack() {
if [ ! -d "/opt/backup" ];then
mkdir /opt/backup
else
rm -rf /opt/backup/*
fi
echo -e "\033[33m 压缩服务 \033[0m"
for line in `ls ${appDir}`
do
echo -e "\033[33m 正在压缩服务 ${line} \033[0m"
cd ${appDir}
tar -zcvf ${line}.tar.gz --exclude=${line}/logs --exclude=${line}/log ${line}
mv ${line}.tar.gz /opt/backup/${line}.tar.gz
done
echo -e "\033[32m 应用压缩结束 \033[0m"
}
case "$action" in
pack|unpack|installOpenSSL)
run_$action
;;
*)
echo "Arguments error! [${action}]"
echo "Usage: `basename $0` [pack|unpack]"
;;
esac
安装install.sh
#!/bin/bash
curDir=`pwd`
appDir='/opt/commServer'
action=$1
run_openssl() {
cd /opt/backup
tar xzvf ./openssl-1.1.1g.tar.gz
cd ./openssl-1.1.1g
./config --prefix=/usr/local/openssl
./config -t
make && make install
cd /usr/local
ldd /usr/local/openssl/bin/openssl
which openssl
openssl version -a
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
echo "openssl安装完成"
cd ${curDir}
}
run_nginx(){
cd /opt/backup
tar vzxf ./nginx-1.19.0.tar.gz
cd ./nginx-1.19.0
./configure --prefix=/opt/commServer/nginx-1.19.0 --with-openssl=/usr/local/openssl --with-http_ssl_module
make && make install
echo "nginx安装完成"
cd ${curDir}
}
case "$action" in
openssl|nginx)
run_$action
;;
*)
echo "Arguments error! [${action}]"
echo "Usage: `basename $0` [openssl|nginx]"
;;
esac
安装install-app.sh
#!/bin/bash
curDir=`pwd`
appDir='/opt/app'
action=$1
app_name=$2
app_uninstall() {
if [ -d "${appDir}/$1" ]; then
${appDir}/$1/bin/run.sh stop
cd ${appDir}
rm -rf $1
echo "应用[$1]卸载成功"
else
echo "应用[$1]无需卸载"
fi
}
app_install() {
if [ ! -f "${appDir}/$1.tar.gz" ]; then
echo "安装包[$1.tar.gz]不存在,已忽略"
return
fi
echo "1. 卸载旧的应用[$1]"
app_uninstall $1
echo "2. 安装应用[$1]"
cd ${appDir}
tar -xf $1.tar.gz
rm -rf $1.tar.gz
echo "3. 应用[$1]安装完成"
}
app_start() {
${appDir}/$1/bin/run.sh start
}
if [ $
echo "Arguments error!"
echo "Usage: `basename $0` [install|uninstall|status|start|stop|restart] [app_name]"
exit 1
fi
case "$action" in
install|uninstall|start)
app_$action $app_name
;;
*)
echo "Arguments error!"
echo "Usage: `basename $0` [install|uninstall|start|stop] [app_name]"
;;
esac
切换 switch.sh
#!/bin/bash
curDir=`pwd`
nginxConfDir='/opt/commServer/nginx-1.12.1/conf'
utilDir='/opt/sgUtils/sgzt'
action=$1
reConfigNginx() {
echo "重新配置nginx"
cd ${nginxConfDir}
if [ ! -d "${nginxConfDir}" ]; then
echo "没有安装nginx,已忽略"
exit -1
fi
if [ ! -d "vhosts_${action}" ]; then
echo "${nginxConfDir}中无目录vhosts_${action},稍后请手动替换"
exit -1
fi
service nginx stop
echo "替换配置文件..."
if [ ! -d "vhosts_${action}" ]; then
echo "替换配置文件失败:${nginxConfDir}无[vhosts_${action}],稍后请手动替换"
return
else
echo "替换配置文件成功"
fi
rm -rf vhosts
cp -r vhosts_${action} vhosts
echo "重启nginx..."
service nginx start
sleep 1s
status=`ps -ef | grep nginx | grep process | grep -v grep`
if [ -n "$status" ]; then
echo "nginx重启成功"
else
echo "nginx重启失败,请手动重启"
return
fi
}
switch() {
if [ ${action} == "master" ]; then
echo "使用[宁桥]申港中台服务群对外提供服务..."
elif [ "${action}" == "backup" ]; then
echo "使用[长泰]申港中台服务群对外提供服务..."
fi
reConfigNginx
cd ${utilDir}
if [ ${action} == "master" ]; then
./runAll.sh stop
elif [ ${action} == "backup" ]; then
./runAll.sh start
fi
cd ${curDir}
}
case "$action" in
master|backup)
switch
;;
*)
echo "Arguments error! [${action}]"
echo "Usage: `basename $0` [master|backup]"
;;
esac