切换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. linux自动更新代码,自动备份数据库,打包应用发布

    切换root用户 sudo su - 1.安装svn,mysql yum install subversion yum install mysql 2.安装 maven 下载:百度云盘地址为 http ...

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

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

  3. idea自动更新代码

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

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

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

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

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

  6. asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

    运行环境: centos7.2服务器或则虚拟机 可以是腾讯云也可以是内网服务器,(如果是内网服务器需要用frp做内网穿透,这样才可以通过外网访问该服务器) svnserver 来托管代码 一.安装je ...

  7. linux+Qt程序如何打包发布

    源地址:http://zhidao.baidu.com/link?url=UTWEoXS21B4p1L5LJmYgGBMAr0dTdXfzmaGbWeltnwQLA3Uc9_K9RcDQFFIArbx ...

  8. python代码打包发布

    背景 本文介绍了python中一种最简单的代码结构的打包方式 包名称 我们先给我们的包取个名字,python包起名需要符合下面的规范 全部小写 在pypi上是唯一的 下划线分隔或没有单词分隔符(不要使 ...

  9. Linux 自动更新时间

    1. 从NTP上把时间同步到本地 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 2. 更新本地时间 ntpdate us.pool.ntp.o ...

随机推荐

  1. Selenium:元素等待的4种方法

    1.使用Thread.sleep(),这是最笨的方法,但有时候也能用到而且很实用. 2.隐示等待,隐性等待是指当要查找元素,而这个元素没有马上出现时,告诉WebDriver查询Dom一定时间.默认值是 ...

  2. ${param.xxx}获取url中的参数

    在项目中看到了一个很奇怪的EL表达式...${param.catid}...一直找不到param在哪里定义的...(主要是水平太屎...) 然后从网上查了一下才知道是啥... EL表达式${param ...

  3. 解决在CAPSLOCK开启情况下sendkeys大小写异常的问题

    http://files.cnblogs.com/files/liuzhaoyzz/sendkeys%E5%A4%A7%E5%B0%8F%E5%86%99.rar 首先利用GetKeyState(vb ...

  4. C# 6.0 Feature list

    Feature Example C# VB Auto-property initializers public int X { get; set; } = x; Added Exists Getter ...

  5. MySQL问题记录--Can't connect to MySQL server on localhost (10061)解决方法

    本文mysql的安装环境为win7 64位,mysql版本为MySQL5.7 问题描述:在命令行输入 mysql -u root -p 登录mysql,返回"Can't connect to ...

  6. Android实现圆形图片

     情景再现: 写Android程序也有一段时间了,今天突然被问怎么实现一个圆形图片,很多app图像是圆形的.但是用户上传的图像可不是圆的,所以问题就来了,需要我们代码实现圆形图片.但是大脑飞转想到第三 ...

  7. The ProgID of the WorkspaceName's workspace factory

    The ProgID of the WorkspaceName's workspace factory [C#]public stringWorkspaceFactoryProgID {get; se ...

  8. Centos 6.5 把自带python 2.6.6, 升级到 2.7

    http://blog.csdn.net/jcjc918/article/details/11022345

  9. JS中关于clientWidth offsetWidth scrollWidth 等的含义

    网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...

  10. git 忽略提交某个指定的文件(不从版本库中删除)

    执行指令: 1 2 [Sun@webserver2 demo]$ git update-index --assume-unchanged config.conf [Sun@webserver2 dem ...