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!