开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

利用subversion,usvn,rsync,cwrsyn,管理Windows Server IIS 站点文件的更新(3)

简介:
+关注继续查看


SVN服务器上


创建完项目后,可以在

usr/local/ data/www/svn/svn/下看到目录www_skybug_com目录,此时,该项目是个空项目。在svn客户端将站点文件提交,提交地址

http://svnserverIP/svn/www_skybug_com/trunk/

提交完站点文件后,

1
2
3
4
5
mkdir /usr/local/ data/www_skybug_com
chown apache:apache / /usr/local/ data/www_skybug_com
chmod 0755 /usr/local/ data/www_skybug_com
cd /usr/local/ data/www_skybug_com
svn checkout http://svnserverip/www_skybug_com/trunk/ --usernmae skybug --password ****** --no-auth-cache

测试检出正常。

Windows server 服务器上安装cwRsyncServer

下载地址:

https://www.itefix.no/i2/content/cwrsync-free-edition

默认安装后,进入

C:\ICW\etc下,编辑fstab文件

在最后一行添加

1
e:/webroot/www.skybug.com/  /www.skybug.com/  ntfs override,binary,noacl 0 0

可以理解这一行为e:/webroot/www.skybug.com挂载到/www.skybug.com/  具体参照cygwin文档http://cygwin.com/cygwin-ug-net/using.html


如果没有这个sync传过来的目录文件会都没有权限。

编辑C:\ICW\rsyncd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
uid=0
gid=0
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[www_skybug_com]
#port= 878
path = /www.skybug.com
read only = false
transfer logging = yes
use chroot=no
list = yes
hosts allow =192.168.x.y 192.168.x.z
auth users=skybug
secrets file /cygdrive/c/icw/passwd

编辑c:\icw\passwd文件(没这个文件自己创建一个)

内容为

skybug:*****(密码)

重启rsync服务。

SVN服务器上

编辑钩子程序,让客户端提交后自动把站点文件checkupdate /usr/local/data/www.skybug.com/目录下,然后rsync提交到windows服务器上


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/sh
export LANG=zh_CN.UTF-8
REPOS="$1"
REV="$2"
SVN=/usr/bin/svn
RSYNCPASSWD=/usr/local/ data /rsyncpasswd/password
WEBDIR=/usr/local/ data /www.skybug.com/
RSYNC=/usr/bin/rsync
LOG=/var/log/httpd/snvcom.log
WEBIP="192.168.x.y"
export LANG=en_US.UTF-8
# 自动update 站点文件到 svn服务器的检出目录中
$SVN update $WEB --username skybug --password ****** --no-auth-cache
#如果上述检出动作执行成功,则:
if [ $? == 0 ]
then
    echo ""     >> $LOG
    echo `date` >> $LOG
    echo "##############################" >> $LOG
    chown -R apache:apache $WEBDIR
    chmod -R 0755 $WEBDIR
    $RSYNC -vzrztopg   --exclude-from=$WEBDIR/exclude.list $WEBDIR skybug@$WEBIP::www_skybug_com --password-file=$RSYNCPASSWD >> $LOG
fi
echo "$1 ,$2,OK" >>$LOG
1
chown apache:apache . /post-commit

如果需要同步多个WEB服务器,把WEBIP做成数组,然后再循环执行$RSYNC断的命令既可

其中--exclude-from=$WEB/exclude.list是指哪些目录文件不同步。按照实验环境该文件内容为

.svn

/exclude.list

如果站点上有用户上传的文件,显然用户上传的目录也应该在该列表中。




      本文转自天山三害 51CTO博客,原文链接:http://blog.51cto.com/skybug/1343623,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Windows Server 2012 R2
Windows Server 2012 R2 历史上的Server有2003 server, 2008 server, 2012 server windows server 2012 r2对计算机的消耗比图形化的Linux要大, 但是笔记本上使用VMware使用也没有问题 windows操作系统...
1809 0
Windows Server 2008 R2(X64) MSDN镜像简体中文版与英文版ISO下载及Key激活码
Windows Server 2008 R2 MSDN ISO镜像简体中文版 文件名:cn_windows_server_2008_r2_standard_enterprise_datacenter_web_x64_dvd_x15-50360.
7602 0
21114
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载