172173.com

在做版本更新的时候,需要SVN做一些自动化的事情,比如提交前自动更新;提交一些文件后关联着提交另一些。所以需要写一点自动化脚本。

1.什么是svn钩子

官方说法:
钩子是通过版本库事件触发,例如新版本的创建或一个未版本化属性的修改。一些钩子(叫做“pre hooks”)在事件发生前运行,可以用来报告发生了什么以及防止它发生。还有一些钩子(“post hooks”)在版本库事件之后发生,只是用来报告。每个钩子能够获得事件的足够信息,例如提出的(或完成的)版本库修改细节,还有触发事件的用户名。

参考文档《Submin 部署SVN服务器WEB管理端 CentOS7》http://blog.51cto.com/990487026/1974106
官方网站:https://github.com/mjholtkamp/submin
操作系统:CentOS7.6
Subversion:1.8
Apache:2.4
Python:2.7

一、submin介绍

1.介绍

submin - 类似于svnmanager的svn用户与仓库管理的web管理平台,用python2开发的,比svnmanager轻量,部署非常容易,环境只需要python2+apache即可。数据库用sqlit3存储。

服务器信息

角色 IP
svn主 192.168.99.207
svn备 192.168.99.208

一、部署思路

  • 经过测试,将svn主的数据目录整个通过rsync物理的方式推到svn备上,svn备通过http的方式是可以正常使用svn的。
  • 所以本实例是以rsync的方式做的svn主从备份。

https://www.cnblogs.com/gne-hwz/p/8563982.html

svn http访问注意点:

  • 用http://方式访问,要配合apache的svn模块。
  • 用http://方式访问的svn服务端的守护进程不用启动,是通过apache的svn模块来调用svn命令操作svn检入检出的。
  • 访问方式不同,对应账户文件不同:
    • passwd文件 - svn://方式访问 - 使用的是自带的明文账户文件
    • http_users文件 - http://方式访问 - 使用的是apache创建的密文账户文件
  • SVNPathSVNParentPath 的区别
  • 新创建的仓库根目录要记得给apache用户授权
  • 记得添加auth文件里的用户权限及版本库权限

参考博文1《Redis内存满了的几种解决方法》https://blog.csdn.net/u014590757/article/details/79788076
参考博文2《关于Redis数据过期策略》https://www.cnblogs.com/chenpingzhao/p/5022467.html
参考博文3《为什么Redis内存不宜过大》https://blog.csdn.net/houyongqian88/article/details/53866641

Redis三种过期键删除策略

  • ==被动删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key==
  • 主动删除:由于惰性删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批已过期的key
  • maxmemory:当前已用内存超过maxmemory限定时,触发主动清理策略maxmemory-policy