博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己主动下载源代码_并编译_打包_部署_重新启动服务的Shell脚本
阅读量:6913 次
发布时间:2019-06-27

本文共 3284 字,大约阅读时间需要 10 分钟。

这里面Shell的各个操作含义,可參考我三年前的这篇文章:http://blog.csdn.net/jadyer/article/details/7960802

#!/bin/shAPP_NAME=engineAPP_WARS=JadyerEngine-web/targetAPP_PATH=/app/tomcat-6.0.43APP_CODE=sourcecodeSVN_URL=https://svn.sinaapp.com/jadyer/2/repository/JadyerEngineSVN_USER=jadyer@yeah.netSVN_PSWD=玄玉appPID=0getAppPID(){    pidInfo=`ps aux|grep java|grep $APP_PATH|grep -v grep`    if [ -n "$pidInfo" ]; then        appPID=`echo $pidInfo | awk '{print $2}'`    else        appPID=0    fi}downloadAndCompileSourceCode(){    cd $APP_PATH    mkdir $APP_CODE    svn --username $SVN_USER --password $SVN_PSWD checkout $SVN_URL $APP_CODE    cd $APP_CODE    mvn clean package -DskipTests}shutdown(){    getAppPID    echo "[玄玉] ========================================================================================================"    if [ $appPID -ne 0 ]; then        echo -n "[玄玉] Stopping $APP_PATH(PID=$appPID)..."        kill -9 $appPID        if [ $?

-eq 0 ]; then echo "[Success]" echo "[玄玉] ========================================================================================================" else echo "[Failed]" echo "[玄玉] ========================================================================================================" fi getAppPID if [ $appPID -ne 0 ]; then shutdown fi else echo "[玄玉] $APP_PATH is not running" echo "[玄玉] ========================================================================================================" fi } deploy(){ cd $APP_PATH/webapps/ rm -rf $APP_NAME rm -rf $APP_NAME.war cp $APP_PATH/$APP_CODE/$APP_WARS/*.war $APP_NAME.war cd $APP_PATH/logs/ rm -rf * cd $APP_PATH rm -rf $APP_CODE } startup(){ cd $APP_PATH/bin ./startup.sh tail -100f ../logs/catalina.out } downloadAndCompileSourceCode shutdown deploy startup

上面的脚本在运行的过程中。若Ctrl+C退出后,会导致应用部署失败,故编写了以下这个可在后台运行的脚本

不想用以下这个脚本也能够,仅仅是在运行上面的脚本时直接[nohup ./deploy-engine.sh &]即可了

即便如此。个人仍推荐仅仅用上面的脚本就够了(假设是你自己用的话)!

#!/bin/shAPP_LOGS=/app/tomcat-6.0.43/logsSHELL_NAME=bin/deploy-engine.shshellPID=0getShellPID(){    pidInfo=`ps aux|grep $SHELL_NAME|grep -v grep`    if [ -n "$pidInfo" ]; then        shellPID=`echo $pidInfo | awk '{print $2}'`    else        shellPID=0    fi}shutdown(){    getShellPID    echo "[玄玉] ========================================================================================================"    if [ $shellPID -ne 0 ]; then        echo -n "[玄玉] Stopping $SHELL_NAME(PID=$shellPID)..."        kill -9 $shellPID        if [ $? -eq 0 ]; then            echo "[Success]"            echo "[玄玉] ========================================================================================================"        else            echo "[Failed]"            echo "[玄玉] ========================================================================================================"        fi        getShellPID        if [ $shellPID -ne 0 ]; then            shutdown        fi    else        echo "[玄玉] $SHELL_NAME is not running"        echo "[玄玉] ========================================================================================================"    fi}#[2>&1]表示把标准错误(stderr)重定向到标准输出(stdout),否则会提示[nohup: redirecting stderr to stdout]startupByNohup(){    cd $APP_LOGS    rm -rf nohup.log    nohup ../$SHELL_NAME > nohup.log 2>&1 &    sleep 1    tail -100f nohup.log}shutdownstartupByNohup
你可能感兴趣的文章
python基础训练题1-列表操作
查看>>
编程学习资源
查看>>
selenium+python自动化95-弹出框死活定位不到
查看>>
[Asp.net core]使用Polly网络请求异常重试
查看>>
user-agent
查看>>
C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码
查看>>
java 正则例子
查看>>
SpringBoot乱码
查看>>
MySQL远程连接失败(错误码:2003)
查看>>
EMQ 注意事项
查看>>
安装SQL Server时,提示VS Shell 安装失败,退出代码为 1638。
查看>>
systemd实践: 依据情况自动重启服务【转】
查看>>
Spring Security教程(五):自定义过滤器从数据库从获取资源信息
查看>>
logstash配置
查看>>
cmp()
查看>>
Git系列四之在本地服务器搭建gitlab仓库管理
查看>>
【附6】hystrix metrics and monitor
查看>>
理解linux安装软件
查看>>
php把数组、字符串 生成文件
查看>>
ionic 布局
查看>>