切换root用户

sudo su -

1.安装svn,mysql

yum install subversion

yum install mysql

2.安装 maven

下载:百度云盘地址为

http://pan.baidu.com/s/1nuKQGjv

解压

tar -zxvf apache-maven-3.0.5-bin.tar.gz -C /apps/svr/maven/apache-maven-3.0.5

3.配置maven环境变量

export MAVEN_HOME=/apps/svr/maven/apache-maven-3.0.5
export PATH=${MAVEN_HOME}/bin:${PATH}

4.checkout

svn checkout svn://url

5.启动脚本 publish.sh

#!/bin/sh
currentDay=`date +%Y%m%d`
currentTime=`date +%Y%m%d%H%M%S` tomcat1=/apps/tomcat/tomcat1/apache-tomcat-7.0.
tomcat2=/apps/tomcat/tomcat2/apache-tomcat-7.0.
confDir=/apps/conf
svnDir=/apps/svn echo ">>>>>>>>>>>>>>>>>>>>>>>>备份数据库"
sh /apps/sh/backup.sh
echo ">>>>>>>>>>>>>>>>>>>>>>>>更新代码"
cd $svnDir
svn up
echo ">>>>>>>>>>>>>>>>>>>>>>>>编译打包"
mvn -U clean install -DskipTests -X
sleep 120s
echo ">>>>>>>>>>>>>>>>>>>>>>>>备份版本"
mkdir -p /apps/war/$currentDay
cp $svnDir/efc.eac.war/target/efc.eac.war.war /apps/war/$currentDay/"efc.eac.war_$currentTime".war
echo ">>>>>>>>>>>>>>>>>>>>>>>>停止tomcat1"
#sh $tomcat1/bin/shutdown.sh
kill - `cat /apps/conf/pid/tomcat1.pid`
sleep 120s
echo ">>>>>>>>>>>>>>>>>>>>>>>>删除tomcat1下的文件"
rm -rf $tomcat1/webapps/efc.eac.war
echo ">>>>>>>>>>>>>>>>>>>>>>>>发布tomcat1"
unzip $svnDir/efc.eac.war/target/efc.eac.war.war -d $tomcat1/webapps/efc.eac.war
sleep 20s
echo ">>>>>>>>>>>>>>>>>>>>>>>>复制tomcat1环境配置文件"
cp $confDir/tomcat1/system.properties $tomcat1/webapps/efc.eac.war/WEB-INF/classes/
echo ">>>>>>>>>>>>>>>>>>>>>>>>启动 tomcat1"
sh $tomcat1/bin/startup.sh
sleep
echo ">>>>>>>>>>>>>>>>>>>>>>>>停止tomcat2"
#sh $tomcat2/bin/shutdown.sh
kill - `cat /apps/conf/pid/tomcat2.pid` sleep 120s
echo ">>>>>>>>>>>>>>>>>>>>>>>>删除tomcat2下的文件"
rm -rf $tomcat2/webapps/efc.eac.war
echo ">>>>>>>>>>>>>>>>>>>>>>>>发布tomcat2"
unzip $svnDir/efc.eac.war/target/efc.eac.war.war -d $tomcat2/webapps/efc.eac.war
sleep 20s
echo ">>>>>>>>>>>>>>>>>>>>>>>>复制tomcat2环境配置文件"
cp $confDir/tomcat2/system.properties $tomcat2/webapps/efc.eac.war/WEB-INF/classes/
echo ">>>>>>>>>>>>>>>>>>>>>>>>启动 tomcat2"
sh $tomcat2/bin/startup.sh

6.数据库备份脚本 backup.sh

#! /bin/bash
#备份地址
backupdir=/apps/war
curr_date=`date +%Y%m%d`
time=`date +%Y%m%d%H%M%S`
db_ip=10.24.66.155
db_name=eac_sit
db_user=eac_sit
db_pass=Eac_sit#1221
mkdir -p $backupdir/$curr_date
#备份数据库
mysqldump -u$db_name -h$db_ip -p$db_pass --single-transaction $db_name | gzip > $backupdir/$curr_date/$db_name$time.sql.gz
#清除五天前的备份
find $backupdir/$curr_date -name $db_name"*.sql.gz" -type f -mtime +5 -exec rm -rf {} \;>/dev/null 2>&1

  

7.查看启动日志

more /var/spool/mail/apps

8.设置定时任务,定时发布版本

crontab -e

每天10,16点自动执行

0 10,16 * * * sh /apps/sh/publish.sh

linux自动更新代码,自动备份数据库,打包应用发布的更多相关文章

  1. BAT-SVN自动更新代码目录

    1.安装“TortoiseSVN-1.7.15.25753-x64-svn-1.7.18.msi”. 2.“运行”->“cmd”->输入“svn help”->出现用说明代表正常,提 ...

  2. idea自动更新代码

    如何开启或关闭idea的自动更新代码? File-Setting-Appearance&Beha-System Setting-Updates 选中或取消勾选Automatically che ...

  3. 性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项

    原文:性能优化--统计信息--SQLServer自动更新和自动创建统计信息选项 原文译自:http://www.mssqltips.com/sqlservertip/2766/sql-server-a ...

  4. linux自动更新代码,打包发布

    1.安装svn yum install subversion 2.安装 maven 下载:百度云盘地址为 http://pan.baidu.com/s/1nuKQGjv 解压 tar -zxvf ap ...

  5. 在linux写一个shell脚本用maven git自动更新代码并且打包部署

    服务器上必须安装了git maven jdk 并且配置好环境变量 实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本 kill.sh ...

  6. git 利用hook 实现服务器自动更新代码

    如何利用git的hook实现提交代码后自动更新? 因为个人开发经常需要提交代码,每次都需要连接服务器去pull代码,重启服务器就显得十分繁琐,因此github提供了一个时间钩子,用户push代码后可以 ...

  7. Linux下QTCreator代码自动补全(是真的自动补全,不是手动触发)

    在使用Windows下的QTCreator的时候,像visual studio一样代码自动补全十分方便,而在Linux下,QTCreator似乎不能做到. 网上有些说是可以设置成手动补全,今天试了一下 ...

  8. 转载:性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项

    这段时间AX查询变得非常慢,每天都有很多锁. 最后发现是数据库统计信息需要更新. ----------------------------------------------------------- ...

  9. H5+app,自动更新后自动删除安装包

    H5+app 自动删除安装包 一.前言 之前做好的app自动更新,遗留下了一个问题,就是自动更新后安装包没有自行删除掉. 好像现在的手机的系统是有安装完自动清理安装包的.想我这个H5+的app安装完后 ...

随机推荐

  1. Hibernate二级缓存 --Hibernate框架

    Hibernate本身只提供了二级缓存的规范,但并未实现,所以需要第三方缓存插件的支持.常用的二级缓存第三方插件有:EHCache.Memcached.OSCache.SwarmCache.JBoss ...

  2. 『MXNet』第一弹_基础架构及API

    MXNet是基础,Gluon是封装,两者犹如TensorFlow和Keras,不过得益于动态图机制,两者交互比TensorFlow和Keras要方便得多,其基础操作和pytorch极为相似,但是方便不 ...

  3. 向java高级工程师和项目经理的道路进发【转】

    转自https://www.cnblogs.com/ahudyan-forever/p/5263296.html 宏观 一. JAVA.要想成为JAVA(高级)工程师肯定要学习JAVA.一般的程序员或 ...

  4. vue中使用transition标签底部导航闪烁问题

    <transition :name="transitionName" :duration="{ enter: 500, leave: 0 }" > ...

  5. leetcode-algorithms-23 Merge k Sorted Lists

    leetcode-algorithms-23 Merge k Sorted Lists Merge k sorted linked lists and return it as one sorted ...

  6. Ping 的TTL理解

    http://www.webkaka.com/tutorial/zhanzhang/2017/061570/ 根据自己的扩展重新整理了一下,虽然不是运维,想了解一点东西就希望了解清楚. 一.含义 “T ...

  7. 【Python】基础知识

    一.基本概念 1.变量与运算符 Python允许给多个变量同时赋值,等号 (=) 右边的值将赋予左边对应位置的变量. # 将a, b, c的值依次赋予b, c, a b, c, a = a, b, c ...

  8. #pragma 处理警告 clang diagnostic 的使用

    首先#pragma在本质上是声明,常用的功能就是注释,尤其是给Code分段注释:而且它还有另一个强大的功能是处理编译器警告,但却没有上一个功能用的那么多. clang diagnostic 是#pra ...

  9. 自定义putty主题

    PuTTY很早之前就没有更新了(0.62),因为都是开源的所以有人branch出来做了增强,如这个PuTTY tray,增加了超链等功能: https://puttytray.goeswhere.co ...

  10. Windows添加用户和组命令

    查看当前存在用户: net user 查看当前用户组: net localgroup 添加用户(以添加用户ls密码abcd1234为例): net user ls abcd1234 /add 添加用户 ...