更新svn同步更新web目录
早就应该把这个写出来了,但一直都没空去写,乘今天同事让我做svn库,并要求web目录也随svn一起更新,才有空写这篇文章.
系统:centos 5.5
1.创建svn库
svnadmin create magny
2.创建更新脚本
vi deploy_www.sh
这里说下,我的web目录是/var/www/magny,相信这个脚本大家也可以看得懂.
3.创建更新目录
mkdir -p /home/magny/www/magny
mkdir -p /home/magny/tmp
4.checkou svn
cd /home/magny/www/
svn co svn://地址
5.执行更新脚本并验证结果
sh deploy_www.sh或./deploy_www.sh
系统:centos 5.5
1.创建svn库
svnadmin create magny
2.创建更新脚本
vi deploy_www.sh
#!/bin/bash
DOCROOT='/var/www/magny'
SVNROOT='/home/magny/www/magny/'
TMPROOT='/home/magny/tmp/'
rm -fr ${TMPROOT}*
svn update ${SVNROOT}
cd ${SVNROOT}
svn export ./ ${TMPROOT}magny
rm -fr ${DOCROOT}*
cp -R ${TMPROOT}* ${DOCROOT}这里说下,我的web目录是/var/www/magny,相信这个脚本大家也可以看得懂.
3.创建更新目录
mkdir -p /home/magny/www/magny
mkdir -p /home/magny/tmp
4.checkou svn
cd /home/magny/www/
svn co svn://地址
5.执行更新脚本并验证结果
sh deploy_www.sh或./deploy_www.sh
好了,可以看到web目录也一起更新了,方法很简单,不用去svn里更改什么.
ps:大家也可以去看看这篇文章http://hellosa.blog.51cto.com/2698675/531861


当然我文章里没有说清楚是给测试服务器的,所以你会要这样的想法是很正常的.
毕竟每个人的shell脚本都是符合他的环境的,你不可能直接复制我的,也要去根据自己的环境进行修改的.
1.上线代码要跑去服务器执行一下 shell 脚本
2.上线新的代码你第一步还要删除web站点的代码。正在访问的网站怎么经得起这样的折腾。
3.每次上线都是全部 export 全部cp到站点。
问题:为什么不能做到 有更新的代码才进行覆盖。(保证站点正常运作)