背景:开发将其代码放到svn里面,如何将修改后存放到svn里的代码发布到线上? 简单做法:写个shell脚本,用于代码发版。比如开发的代码存放svn的路径是:svn://112.168.19.120/huanqiu_app
代码语言:javascript复制首先在发布机上创建一个发版目录
[root@huanqiu ~]# mkdir -p /Data/webroot_svncode/Online_app
然后将svn里的代码下载到发布机本地的发版目录里
[root@huanqiu ~]# cd /Data/webroot_svncode/Online_app
[root@huanqiu Online_app]# svn checkout svn://112.168.19.120/huanqiu_app //svn checkout一般都是目录
[root@huanqiu Online_app]# ls
huanqiu_app
[root@huanqiu Online_app]# cd huanqiu_app
[root@huanqiu huanqiu_app]# ll
huanqiu.war //这个就是开发放在svn仓库里的war包
这样后面要想再将svn里最新修改的代码拿到发布机本地,只需要切换到发版目录下的svn目录里进行更新命令即可!
[root@huanqiu Online_app]# cd huanqiu_app //一定要切换到svn对应代码目录下进行更新命令
[root@huanqiu huanqiu_app]# /usr/bin/svn update
At revision 20.
[root@huanqiu huanqiu_app]# ll //下面就是更新后的最新代码包
huanqiu.war
下面附上一个简单的发版脚本:
将代码发布到远程线上服务器上(脚本中的22022是远程服务器的ssh端口);即将最新代码版本发布到线上后,重启线上的tomcat服务:
[root@huanqiu huanqiu_app]# cat /Data/webroot_svncode/up_Online.sh
#!/bin/bash
REMOTE_SERVER_IP="112.168.19.75"
DEST_DIR="/Data/app/tomcat-7/webapps/"
cd /Data/webroot_svncode/Online_app/huanqiu_app
/usr/bin/svn update
/usr/bin/ssh -p22022 root@${REMOTE_SERVER_IP} "rm -rf /Data/app/tomcat-7/webapps/huanqiu*";
/usr/bin/rsync -e "/usr/bin/ssh -p22022" -avpgolr /Data/webroot_svncode/Online_app/huanqiu_app/huanqiu.war root@${REMOTE_SERVER_IP}:${DEST_DIR};
sleep 10
/usr/bin/ssh -p22022 root@${REMOTE_SERVER_IP} "/bin/sh /Data/app/tomcat-7/start.sh";