自动下载源码_并编译_打包_部署_重启服务的Shell脚本
来源:互联网 发布:淘宝网店注册流程 编辑:程序博客网 时间:2024/05/14 18:53
完整版见https://jadyer.github.io/2015/06/03/linux-shell-deploy/
#!/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}downloadAndCompileSourceCodeshutdowndeploystartup
上面的脚本在执行的过程中,若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
0 0
- 自动下载源码_并编译_打包_部署_重启服务的Shell脚本
- shell脚本_自动安装mysql
- FreeMarker_模板引擎_代码自动生成器_源码下载
- FreeMarker_模板引擎_代码自动生成器_源码下载
- 03_源码编译
- ^_^
- ^_^
- ^_^
- ^_^
- *_&
- ...!@~....!@#....+_#%.
- ^_^
- ^_^
- ^_^
- ^_^
- *_*
- ^_^
- ^_^
- OC学习笔记(1) - block
- xi and bo (并查集问题)
- win8.1分区
- 黑马程序员——C语言基础——结构体以及结构体指针实战
- 事件机制 2015.6.3
- 自动下载源码_并编译_打包_部署_重启服务的Shell脚本
- GDB调试器使用总结
- POJ 2376 Cleaning Shifts
- javaWeb学习笔记3
- LINQ :First、FirstOrDefault使用;Max、Min使用
- 真的手机吸费 揭秘吸费电话 轻松赚钱
- 四方定理
- 12个有趣的C语言面试题
- opencv中矩阵的操作(两种程序)