linux自动更新代码,打包发布
切换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自动更新代码,打包发布的更多相关文章
- linux自动更新代码,自动备份数据库,打包应用发布
切换root用户 sudo su - 1.安装svn,mysql yum install subversion yum install mysql 2.安装 maven 下载:百度云盘地址为 http ...
- BAT-SVN自动更新代码目录
1.安装“TortoiseSVN-1.7.15.25753-x64-svn-1.7.18.msi”. 2.“运行”->“cmd”->输入“svn help”->出现用说明代表正常,提 ...
- idea自动更新代码
如何开启或关闭idea的自动更新代码? File-Setting-Appearance&Beha-System Setting-Updates 选中或取消勾选Automatically che ...
- 在linux写一个shell脚本用maven git自动更新代码并且打包部署
服务器上必须安装了git maven jdk 并且配置好环境变量 实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本 kill.sh ...
- git 利用hook 实现服务器自动更新代码
如何利用git的hook实现提交代码后自动更新? 因为个人开发经常需要提交代码,每次都需要连接服务器去pull代码,重启服务器就显得十分繁琐,因此github提供了一个时间钩子,用户push代码后可以 ...
- asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布
运行环境: centos7.2服务器或则虚拟机 可以是腾讯云也可以是内网服务器,(如果是内网服务器需要用frp做内网穿透,这样才可以通过外网访问该服务器) svnserver 来托管代码 一.安装je ...
- linux+Qt程序如何打包发布
源地址:http://zhidao.baidu.com/link?url=UTWEoXS21B4p1L5LJmYgGBMAr0dTdXfzmaGbWeltnwQLA3Uc9_K9RcDQFFIArbx ...
- python代码打包发布
背景 本文介绍了python中一种最简单的代码结构的打包方式 包名称 我们先给我们的包取个名字,python包起名需要符合下面的规范 全部小写 在pypi上是唯一的 下划线分隔或没有单词分隔符(不要使 ...
- Linux 自动更新时间
1. 从NTP上把时间同步到本地 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 2. 更新本地时间 ntpdate us.pool.ntp.o ...
随机推荐
- svn patch
生成patch文件: svn diff > patchFile // 整个工程的变动生成patch 或svn diff file > patchFile // 某个文件单独变动的patch ...
- nodejs的第三天学习笔记
一. CommonJS 规范 1.1nodejs 与 commonjs 之间的关系: 1)nodejs是一种服务器语言. a)开启服务的能力 b)文件读写的能力 服务器:就是一台安装了服务软件 2)c ...
- 02.JavaScript 面向对象精要--函数
在JavaScript中,函数其实也是对象.是函数不同于其他对象的特点是:函数存在一个被称为[[Call]]的内部属性.[[Call]]属性是函数独有的,表明该对象可以被执行.ECMAScript 定 ...
- ORACLE误删除ASM磁盘修复
在数据库运维中,总会遇到一些粗心大意的DBA,一不小心删除一些东西,这里举例讲解在误删除ASM磁盘之后,如果用KFED工具进行恢复: [grid@RAC1 ~]$ sqlplus / as sysas ...
- adb pull apk
adb shell pm list packages adb shell pm path com.tence01.mm find -name *.apk adb pull /data/app/com. ...
- Timing Attack 周边感应sql
直接上硬菜.盲注的一段语句: 1170 UNION SELECT IF(SUBSTRING(current,1,1)) = CHAR(119) , BENCHMARK(5000000,ENCODE(' ...
- Mvc 提交表单的4种方法全程详解
一,MVC HtmlHelper方法 Html.BeginForm(actionName,controllerName,method,htmlAttributes){} BeginRouteForm ...
- poj 3734 Blocks
ゲート 分析:这题过的人好多,然后大家好像是用矩阵过的(((φ(◎ロ◎;)φ))).我自己是推公式的. 对于任意的有这个式子, 就是先从里面选偶数个涂成两个指定的颜色,再在选出的里面选定涂某种颜色,选 ...
- python【5】-生成式,生成器
一.条件和循环 1. if语句 if <条件判断1>: <执行1> elif <条件判断2>: <执行2> else: <执行4> 例如: ...
- JS学习笔记--仿手机发送内容交互
学习JS笔记----记录上课中学习的知识点,分享下老师教的内容: 1.html内容 <div id="box"> <div id="message&qu ...