已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > Shell脚本

标题: 阿里云ECS部署SVN版本迭代控制器以及使网站同步更新的钩子程序

作者: @Ta

时间: 2018-03-02发布,2018-03-04修改

点击: 7753

RT,3月1日的学习笔记分享给有需要的人,凌晨3点了,睡觉比排版重要,凑合着看吧!多花了2分钟替换掉真实的用户信息
【阿里云ECS部署SVN版本迭代控制器以及使网站同步更新的钩子程序】
可能需要安装的程序:
# vim好用的代码编辑器
[root@miniblog ~]# yum install vim

# 开始安装SVN
[root@miniblog ~]# yum install subversion
# 新建一个SVN文件夹
[root@miniblog ~]# mkdir /var/svn
# 创建-名为SVNS的仓库
[root@miniblog ~]# svnadmin create /var/svn/svns

# 编辑svns仓库的配置信息:修改svns仓库下conf文件夹里的三个文件(authz
、passwd、svnserve.conf),快捷键Shift+:然后输入wq回车保存并退出
[root@miniblog ~]#vim /var/svn/svns/conf/authz
[root@miniblog ~]#vim /var/svn/svns/conf/passwd
[root@miniblog ~]#vim /var/svn/svns/conf/svnserve.conf

【authz文件】
[groups]
# 用户组名 =用户名1,用户名2...
zebra=admin,admin2  
## 单仓库路径[/],多仓库路径[仓库名称:/]
[/]                   
## 用户名 = rw(可读写)
admin3 = rw         
## @用户组名 = rw(可读写)
@zebra=rw             

【passwd文件】
[users]
## 用户名 = 密码
admin = 123456
admin2 = root
admin3 = root

【svnserve.conf文件】
[general]
## 禁止匿名用户访问,read可读
anon-access =none            
## 授权用户的访问控制,none禁止,write可写
auth-access =write           
## 开启认证文件
password-db =passwd          
## 开启授权文件
authz-db =authz              
## 认证空间名,版本库所在目录
realm =/var/svn/svns         

【已经完成最基本的安装,可以测试一下了】
# 启动/挂起svns仓库服务
[root@miniblog ~]# svnserve -d -r /var/svn/svns
# 检查进程中是否开启成功
[root@miniblog ~]# ps -A|grep svnserve

# 远程SVN检出
svn://公网IP/
# 本地检出到WEB站点,我的路径:/var/www
# 手动-首次检出版本库指令(svn_bin_路径 +co语法 +仓库路径 +检出到目标路径 +用户名 +密码 +无-身份验证-缓存)
[root@miniblog ~]# /usr/bin/svn co svn://localhost/ /var/www --username admin --password 123456 --no-auth-cache

# 手动-更新web站点指令:
[root@miniblog ~]# /usr/bin/svn up /var/www --username admin --password 123456 --no-auth-cache

【钩子程序实现WEB站点自动同步】
例如:当一个用户执行完一个 commit ,操作之后,让hook去自动同步更新测试服务器的文件,hook文件通常位于服务器的svn版本库的hooks目录下,在hooks目录下会有一堆后缀为tmpl的文件。 
注意:这些文件只是一些模板或者说明性的示例文件,它们并不会被执行。
【复制一份再编辑】
[root@miniblog ~]# cp /var/svn/svns/hooks/post-commit.tmpl /var/svn/svns/hooks/post-commit
[root@miniblog ~]# vim /var/svn/svns/hooks/post-commit

【post-commit】
REPOS="$1"
REV="$2"
export LC_ALL="zh_CN.UTF-8"
export LANG="en_US.UTF-8"
LOG_FILE=/var/log/svn.log

# 脚本的标准输出和错误输出都打印到日志文件里
exec 1>>"$LOG_FILE"
exec 2>&1
# --------------
echo "Admin Update MiniBlog!"
# 打印本次上传的信息
svnlook info -r "$2" /var/svn/svns
# --------------
# 参数信息
SVN_PATH=/usr/bin
WEB_PATH=/var/www
SVN_USER=admin
SVN_PASS=123456
# --------------
# 同步数据
$SVN_PATH/svn update $WEB_PATH --non-interactive --username $SVN_USER --password $SVN_PASS
exit 0

【记得给 post-commit 可执行权限】
[root@miniblog ~]# chmod -R 755 /var/svn/svns/hooks/post-commit

【效验成果】
SVN 最基本的安装完成!
SVN 权限配置相关事宜完成!
SVN 钩子程序已自动同步WEB站点!
SVN 18次有目的性的版本迭代测试完成!
SVN 测试文件(test.html)已删除! 
GO!开始上传“斑马缘”项目初始化框架!
...
---------------------
测试时可能需要用到的路径:
[root@miniblog ~]# vim /var/log/svn.log
[root@miniblog ~]# vim /var/svn/svns/hooks/post-commit


[隐藏样式|查看源码]


『回复列表(12|隐藏机器人聊天)』

1.

何不git

(/@Ta/2018-03-02 18:51//)

2. 我这有个已经做好的一键脚本

wget http://api.cccyun.cc/svn.sh && chmod 775 svn.sh && ./svn.sh 2>&1 | tee svn.log
(/@Ta/2018-03-02 19:19//)

3. @老虎会游泳@net909,谢了,我总不能面试的时候跟人家说用的git吧!于是就深入学习了一下
(/@Ta/2018-03-02 19:25//)

4. @老虎会游泳,这个shell的高亮不太人性化啊,看着费劲,能改不,或者我换成其他的类型高亮MyBlog
(/@Ta/2018-03-02 20:11//)

5.

@TabKey9,面试时当然要说用的git啊,都这年代了谁还用subversion

连微软的Windows开发团队都改用git了(新闻链接)。


来自知乎 程序员不知道 SVN,该如何让他明白使用 SVN 的重要性?

(/@Ta/2018-03-03 01:16//)

6.

@TabKey9,我用的geshi高亮类,这个类好像很久没更新了。不然你帮忙写个风格如何

(/@Ta/2018-03-03 01:16//)

7. @老虎会游泳,长知识了,注册了个GitHub账号,还不太会用GitHub!

献丑了,从大佬您的GitHub检出了一份hu60wap6,放在本地(http://localhost)测试GeSHi高亮类,

高亮效果会变丑的主要原因是我发的指令里带“#”号,被识别成注释,其实丑的只是“注释”的风格,我根据我的视觉随便配了一个供您参考,我提倡优化一下,请看以下鲜明的对比:

截图环境_电脑版_谷歌浏览器_优化之前:

49db18073e8c862bfb38da139b96214e15368.png

优化之后:

b9889d3c97696aff91dd48f92d231c6229041.png

文件名:【\hu60wap6\src\class\geshi\sh.php】 and 【\hu60wap6\src\class\geshi\shell.php】
# 改动非常小,第361行:
            0 => 'color: #666666; font-style: italic;',

# 去掉倾斜样式,更换您喜欢的颜色:
            0 => 'color: #B8823B;',

MyBlog
(/@Ta/2018-03-03 12:01//)

8. 也可以考虑加粗“注释”!
相关CSS  字体属性:
font-size 字体
font-style 倾斜[italic,normal]
font-weight 加粗[bold,normal]
font-family 字体样式MyBlog
(/@Ta/2018-03-03 12:15//)

9.
[root@miniblog ~]# yum install vim
# 开始安装SVN
[root@miniblog ~]# yum install subversion
# 新建一个SVN文件夹
[root@miniblog ~]# mkdir /var/svn
# 创建-名为SVNS的仓库
[root@miniblog ~]# svnadmin create /var/svn/svns
(/@Ta/2018-03-04 21:57//)

10.

@TabKey9,已经更改为你推荐的样式。感谢
(备注:代码高亮的html是发帖时创建的,所以老帖不重新保存不会生效。)

此外,看上去可读性下降的原因就是字体是斜体。我已经移除了所有样式中的斜体。

(/@Ta/2018-03-04 22:02//)

11. @老虎会游泳
(/@Ta/2018-03-05 02:34//)

12.
用户被禁言,发言自动屏蔽。
(/@Ta/2018-03-05 16:45//
被禁言
)

回复需要登录

7月6日 14:36 星期天

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1