[linux svn服务器搭建]linux中SVN钩子post-commit和rsync实现自动同步数据

更新时间:2020-11-15    来源:linux    手机版     字体:

【www.bbyears.com--linux】

我们通过之前文章《SVN钩子简介和常用钩子说明》已经知道 ,SVN钩子实际就是一些shell脚本。今天我们就通过post-commit钩子来实现下svn数据更新,借助rsync实现自动同步数据。
以我们之前创建的版本库/home/svndata/21yunweinew为例说明。
我们创建一个网站源码目录放置我们的程序,实际生产环境中可以是已经存在的web源码目录,比如/home/webdata/21yunweinew。
之前我们同步数据会是通过下载或更新命令来实现:

svn co svn://59.46.80.248/21yunweinew /home/webdata/21yunweinew  --user=xxxxxx --password=xxxxxx
如今,我们直接操作svn版本库上的钩子,写脚本来直接实现数据同步操作。首先,我们进入21yunweinew的钩子hooks目录编辑脚本post-commit如下:

#!/bin/bash
REPOS="$1"
REV="$2"
export  LC_CTYPE="en_US.UTF-8"
export  LC_ALL=
LOGPATH="/home/svn/log"
[ ! -d ${LOGPATH} ]  &&  mkdir -p $LOGPATH
SVN=/usr/bin/svn
$SVN up /home/webdata/21yunweinew --username 21yunwei  --password xxxx  2>&1 >>$LOGPATH
if [ $? -eq 0 ]
  then
     /usr/bin/rsync -az  --delete /home/webdata/21yunweinew /tmp/
fi
 
为了测试,我们将新增的数据放到了/tmp目录中。通过数据更新查看tmp目录内容:

[root@servermanager hooks]# ls  /tmp/21yunweinew/ -l
total 160
drwxr-xr-x 4 root root  4096 Aug 30 16:48 branch
-rw-r--r-- 1 root root 33792 Aug 30 16:48 DHCP服务器的配置1.doc
-rw-r--r-- 1 root root 24576 Aug 30 16:48 DHCP服务器的配置.doc
-rw-r--r-- 1 root root 34304 Aug 30 16:48 DHCP服务器的配置二.doc
-rw-r--r-- 1 root root 46592 Aug 30 16:48 DNS服务器的配置.doc
-rw-r--r-- 1 root root   830 Aug 30 16:48 rsync.sh
drwxr-xr-x 3 root root  4096 Aug 30 16:32 tag
drwxr-xr-x 3 root root  4096 Aug 30 16:48 trunk
注意事项:1,钩子要给shell脚本执行权限。2,脚本中命令调用最好使用绝对路径。

本文来源:http://www.bbyears.com/caozuoxitong/110695.html

猜你感兴趣