项目自动部署脚本

简介:

#!/bin/bash

# Description: Restart tomcat and refresh log

# Author     : xzy

# Date       : 2014.05.15

#

#-----------------------------------------Reputation variables---------------------------------------------

port=7070

directory=/opt/tomcat7.0.40

ID_directory=/opt/tomcat7.0.40/bin/pid.txt

svn_directory=http://192.168.1.191:8008/svn/development/branches/

svn_download_directory=/opt/webapps

svn_user=xinzhiyu

svn_passwd=xinsir521

Project_directory=/opt/tomcat7.0.40/webapps

#------------------------------------------------stop tomcat------------------------------------------------

echo "程序进程端口是"$port

ps -ef | grep java | grep $directory | awk -F " " '{print $2}' > $ID_directory

PID=`ps -ef | grep java | grep $directory | awk -F " " '{print $2}'`

if [ -s $ID_directory ];then

kill -9 $PID




ps -ef | grep java | grep $directory | awk -F " " '{print $2}' > $ID_directory

PID2=`ps -ef | grep java | grep $directory | awk -F " " '{print $2}'`

if [ ! -s $ID_directory ];then

echo "程序进程杀死"

   else

    echo "程序进程依旧存在,进行第二次尝试"

 kill -9 $PID2

 ps -ef | grep java | grep $directory | awk -F " " '{print $2}' > $ID_directory

 if [  ! -s $directory ];then

echo "程序进程杀死"

  else

    echo "进程杀死失败,请手动尝试"

 fi


fi

#-----------------------------------------------Delete source files-----------------------------------------

#echo "开始删除远程工程代码"

#rm -rf $directory/webapps/*

echo "开始删除原有svn程序"

rm -rf $svn_download_directory

echo "开始更新svn程序"

svn co $svn_directory $svn_download_directory --username=$svn_user --password=$svn_passwd

cd $svn_download_directory

echo "开始对程序进行打包"

mvn clean install

echo "转移新程序至工程目录"

mv $svn_download_directory/target/crm-erp-web.war $Project_directory

cd $Project_directory

echo "开始解压新程序包"

unzip crm-erp-web.war

echo "更改目录权限"

chmod -R 777 /opt/tomcat7.0.40/webapps

echo "删除新程序war包"

rm -rf crm-erp-web.war

echo "开始启动tomcat容器"

 /opt/tomcat7.0.40/bin/startup.sh && tail -f /opt/tomcat7.0.40/logs/catalina.out

 

 

 

 

 

 else

 echo "tomcat没有启动,直接启动"

#-----------------------------------------------Delete source files-----------------------------------------

#echo "开始删除远程工程代码"

#rm -rf $directory/webapps/*

echo "开始删除原有svn程序" 

rm -rf $svn_download_directory

echo "开始更新svn程序"

svn co $svn_directory $svn_download_directory --username=$svn_user --password=$svn_passwd

svn co $svn_directory $svn_download_directory --username=$svn_user --password=$svn_passwd

cd $svn_download_directory

echo "开始对程序进行打包"

mvn clean install 

echo "转移新程序至工程目录"

mv $svn_download_directory/crm-erp-web/target/crm-erp-web.war $Project_directory

cd $Project_directory

echo "开始解压新程序包"

unzip crm-erp-web.war

echo "更改目录权限"

chmod -R 777 /opt/tomcat7.0.40/webapps

echo "删除新程序war包"

rm -rf crm-erp-web.war

#---------------------------------------------------start tomcat--------------------------------------------

echo "开始启动tomcat容器"

 /opt/tomcat7.0.40/bin/startup.sh && tail -f /opt/tomcat7.0.40/logs/catalina.out

 fi










本文转自 xinsir999 51CTO博客,原文链接:http://blog.51cto.com/xinsir/1582383,如需转载请自行联系原作者
目录
相关文章
|
安全
SCP文件上传中断的问题
SCP文件上传中断的问题
2140 1
|
8月前
|
JSON API 网络架构
HTTP常见的请求方法、响应状态码、接口规范介绍
本文详细介绍了HTTP常见的请求方法、响应状态码和接口规范。通过理解和掌握这些内容,开发者可以更好地设计和实现W
1353 83
|
8月前
|
SQL 存储 缓存
【赵渝强老师】达梦数据库的内存结构
本文介绍了达梦数据库管理系统的内存结构,包括内存池、缓冲区、排序区和哈希区。内存池分为共享内存池和运行时内存池,能够提高内存申请与释放效率,并便于监控内存使用情况。缓冲区涵盖数据缓冲区、日志缓冲区、字典缓冲区和SQL缓冲区,用于优化数据读写和查询性能。排序区和哈希区分别提供排序和哈希连接所需的内存空间,通过合理配置参数可提升系统效率。文内附有具体配置示例及视频讲解,帮助用户深入理解达梦数据库的内存管理机制。
262 0
51单片机矩阵键盘超详解!(内含LCD1602代码)
51单片机矩阵键盘超详解!(内含LCD1602代码)
|
缓存 算法 安全
被追着问UUID和自增ID做主键哪个好,为什么?
讨论了UUID和自增ID作为数据库主键的优缺点。UUID全局唯一,适合分布式系统,但存储空间大,不适合范围查询。自增ID存储空间节省,查询效率高,但分库分表困难,可预测性高。UUID版本包括基于时间戳(V1)、随机数(V4)以及基于名称空间的MD5(V3)和SHA1(V5)散列。
1185 1
被追着问UUID和自增ID做主键哪个好,为什么?
Java Map.Entry接口详解
Java Map.Entry接口详解
|
存储 关系型数据库 MySQL
在MySQL中, 自增主键和UUID作为主键有什么区别?
自增主键和UUID在MySQL中各有优缺点,选择哪种方式作为主键取决于具体的应用场景和需求。例如,在需要高性能插入和查询的场景下,自增主键可能更合适;而在需要保证主键全局唯一性和不可预测性的场景下,UUID可能更合适。
274 0
|
并行计算 Java 测试技术
一次性能优化引发的线上xgboost事故
线上风控模型服务因活动流量增加出现超时,初步通过增加节点缓解,但仍有超时问题。分析发现,服务使用Python Flask和XGBoost,原启动方式(flask manager的run方法)不适合生产环境,应改用uwsgi。集成uwsgi后,线上出现概率值异常,所有用户得分相同。回滚线上环境,问题依旧存在,怀疑是uwsgi的多线程问题。通过日志追踪,发现在转换为xgboost矩阵时,特征值变为0,导致相同概率。
|
负载均衡 监控 应用服务中间件
Nginx极简入门(十)配置Nginx双机热备份,实现系统高可用解决方案!
之前讲了Nginx 如何实现负载均衡,以及如何实现动静分离。但是还确少Nginx 高可用的部分。因为Nginx 处于整个系统非常重要的位置,Nginx的高可用影响到整个系统的稳定性。如果nginx服务器宕机后端web服务将无法提供服务,影响严重。所以,接下来就来介绍Nginx + keepalived 实现高可用的方案。
Nginx极简入门(十)配置Nginx双机热备份,实现系统高可用解决方案!
|
机器学习/深度学习 存储 编解码
效率新秀 | 详细解读:如何让EfficientNet更加高效、速度更快(一)
效率新秀 | 详细解读:如何让EfficientNet更加高效、速度更快(一)
876 0
效率新秀 | 详细解读:如何让EfficientNet更加高效、速度更快(一)