您的位置 首页 站长运营

使用svn钩子脚本控制svn库的实时备份

Svn镜像库实时同步实现 一,配置rsync的同步机制先实现能手动同步 环境:svn源码库192.168.115.120 Svn镜像库192.168.115.121 1,在源码库中…

Svn镜像库实时同步实现

一,配置rsync的同步机制先实现能手动同步

环境svn源码库192.168.115.120

Svn镜像库192.168.115.121

1,在源码库中配置rsync服务(配置文件默认没有需要手动建立/etc/rsyncd.cong

650) this.width=650;” src=”/d/file/jishu/2017-05-22/70d4393edac21f9965e05c6634bcd36c.png-wh_500x0-wm_3-wmp_4-s_3228491441.png” title=”图片1.png” alt=”wKioL1kie8-iVkCPAAA849y-B3M468.png-wh_50″ />

上面 [UGOR]是要更新的模块,然后启动服务rsync –deamo查看服务状态lsof–I 873

注:认证账户格式 用户:密码文件权限 600,rsync.pass

2,在镜像库中同步内容执行

rsync -vzrtopgl –progress –delete –password-file=/home/svnroot/passwdrsync root@192.168.115.120::UGO6R /home/svnroot/UGO6R(单一同步UGO6R

全部同步写成一个脚本如下

650) this.width=650;” src=”/d/file/jishu/2017-05-22/249ca6cb7ba62e5618940fbf1aed0614.png-wh_500x0-wm_3-wmp_4-s_1334200144.png” title=”图片2.png” alt=”wKiom1kie-qSO4vyAACSxIisi4w884.png-wh_50″ />

执行这个脚本则同步所有的配置模块也就是同步到本地镜像库的目录

650) this.width=650;” src=”/d/file/jishu/2017-05-22/dde27d9e33185a025fc44bcfb718a3e0.png-wh_500x0-wm_3-wmp_4-s_3614136799.png” title=”图片3.png” alt=”wKiom1kifAfSC9k4AABROBnFNeQ846.png-wh_50″ />

注:上面发rsync使用的自己的协议认证后面自动用svnhook脚本时候则是ssh协议,两台机器通信需要做密钥认证。

脚本加入计划任务每10分钟执行一次,但是也不做到实时一致。所以需要源码库192.168.115.120每次提交来触发实时更新保证两个库内容完全一致

二,svn钩子脚本触发实时同步

思路:每次源码的提交都会触发post_commit通过这个脚本我们可以做提交后的同步

650) this.width=650;” src=”/d/file/jishu/2017-05-22/fcb569415eaa6dcabad5f9bf4afe8dca.png-wh_500x0-wm_3-wmp_4-s_2126088414.png” title=”图片4.png” alt=”wKiom1kifBiiEB77AABglq2BpJU397.png-wh_50″ />

使用的是远程登陆执行方式

使用的是ssh的协议。为了交互输入密码实现自动化 密钥认证(认证方式就不贴了)

三,正确性的认证

首先查看源码库192.168.115.120日志

650) this.width=650;” src=”/d/file/jishu/2017-05-22/6269af5fe13ba0f346c2f0603f159e61.png-wh_500x0-wm_3-wmp_4-s_2232060669.png” title=”图片5.png” alt=”wKioL1kifDDTcfWYAAHQ5eeVUL4271.png-wh_50″ />

更新镜像库执行更新脚本

然后查看镜像的内容

650) this.width=650;” src=”/d/file/jishu/2017-05-22/e5d49914a7c7dc281a3fb4ecbd5141bb.png-wh_500x0-wm_3-wmp_4-s_2536339818.png” title=”图片6.png” alt=”wKioL1kifHLQJZ5OAAH_4w5t8Fc797.png-wh_50″ />

可以看到两个svn库的内容一致

Ps:只是通过自己的想法实现的功能,后续会一直完善

,错误以及解决方式

650) this.width=650;” src=”/d/file/jishu/2017-05-22/605c89272a6652b8811f4583a8428e58.png-wh_500x0-wm_3-wmp_4-s_2831656432.png” title=”图片7.png” alt=”wKioL1kifIWCFGEfAAA4i4iCAZk797.png-wh_50″ />

解决密钥认证时候我是在一个普通用户和root中做的,但是hook脚本使用的是apache的用户。认证信息获取不了我尝试把root的认证信息放在上面的报错目录给予其他用户的读写权限解决问题,子尝试了提交71005,验证已经自动同步

本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/42400.html

为您推荐

返回顶部