1. checkout svn目录

#svn co http://192.168.1.102/svn/svntest  /home/www/svntest

#chown www.www  /home/www/svntest -R


2.设置 svn 钩子

#cat /home/svn/svn/svntest/hooks/post-commit

#!/bin/bash 

REPOS="$1"

REV="$2"

export LANG=en_US.UTF-8 

echo "`date`svn update start ..." >> /var/log/rsync_svn.log

cd /home/www/svntest

/usr/bin/svn update --username rsync --password rsync --no-auth-cache --force

echo "`date`svn update Done!" >> /var/log/rsync_svn.log

if [ $? -eq 0 ];then

   sh  /tools/rsync_test.sh > /dev/null 2>&1 

fi

3. 配置rsync脚本

#cat /tools/rsync_test.sh 

#!/bin/sh 

src=/home/www/svn_test/

des=svntest

ip=192.168.1.100

echo "`date` rsync $des start ..." >> /var/log/rsync_svn.log

rsync -vzrtopg --delete --progress  $src www@$ip::$des

echo "`date` rsync $des Done!" >> /var/log/rsync_svn.log

4. 在远程服务器100配置rsync服务,详细过程省略。

5. commit svn 测试

在svn客户端修改文件并提交,到远程服务器100上看相应文件是否有变化。

更新日志如下:

#cat /var/log/rsync_svn.log

Thu Jan 15 10:55:53 CST 2015svn update start ...

Thu Jan 15 10:55:53 CST 2015svn update Done!

Thu Jan 15 10:55:53 CST 2015 rsync kutesmart start ...

Thu Jan 15 10:55:53 CST 2015 rsync kutesmart Done!