西数超哥博客
运维经验教程分享的博客

通过SVN钩子post-commit和rsync实现自动同步数据

21运维原创,转载请注明出处。
我们通过之前文章《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,脚本中命令调用最好使用绝对路径。

转载请注明:西数超哥博客www.ysidc.top» 通过SVN钩子post-commit和rsync实现自动同步数据

https://www.ysidc.top 西数超哥博客,数据库,西数超哥,虚拟主机,域名注册,域名,云服务器,云主机,云建站,ysidc.top

赞(0) 打赏
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除。本站原创内容未经允许不得转载:西数超哥学习乐园 » 通过SVN钩子post-commit和rsync实现自动同步数据

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏