切换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. 服务器--远程桌面选择"本地资源"下不显示"本地磁盘"的解决办法(转)

    转自:http://blog.sina.com.cn/s/blog_4cd978f90102wsvc.html “远程连接桌面”,每次连接候,我都选择了“本地资源”下面的“磁盘驱动器”,都会在远程电脑 ...

  2. WebStrom配置

    1.下载安装Node.jshttps://nodejs.org/en/download/2.配置node路径3.修改文件默认字符集

  3. Centos6.8 smokeping安装

    yum -y install rrdtool perl-rrdtool curl perl-core bind bind-chroot bind-utils httpd popt popt-devel ...

  4. 利用adb安装apk

    下载adb 网上资源很多,资源自寻. 配置环境变量 先加变量,后加入path.网上很多,不赘述. 安装apk 打开cmd,确保adb已经连接设备 adb install -r <拖动文件至cmd ...

  5. phpunit——执行测试文件和测试文件中的某一个函数

    phpunit --filter testDeleteFeed // 执行某一个测试函数 phpunit tests/Unit/Services/Feed/FeedLogTest.php // 执行某 ...

  6. spring boot(二十)使用spring-boot-admin对服务进行监控

    上一篇文章<springboot(十九):使用Spring Boot Actuator监控应用>介绍了Spring Boot Actuator的使用,Spring Boot Actuato ...

  7. grid的简单使用

    <!DOCTYPE html><html><head><meta charset="UTF-8"><title>grid ...

  8. 安卓——implements——OnClickListener

    //实现底部的按钮激活监听 设置不同src class click implements OnClickListener{ @Override public void onClick(View v) ...

  9. ABAP游标

    DATA: BEGIN OF count_line, carrid TYPE spfli-carrid, count TYPE i, END OF count_line, spfli_tab TYPE ...

  10. InnoDB存储引擎的 B+ 树索引

    B+ 树是为磁盘设计的 m 叉平衡查找树,在B+树中,所有的记录都是按照键值的大小,顺序存放在同一层的叶子节点上,各叶子节点组成双链表.叶节点是数据,非叶节点是索引. 首先,需要清楚:B+ 树索引并不 ...