运维八一 运维八一
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)

运维八一

运维,运维!
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)
  • 操作系统

  • 域名解析

  • 公有云

  • CI&CD

  • 数据库

  • 负载均衡&反向代理

  • 存储系统

  • 容器&容器编排

  • 批量管理

  • 邮件系统

  • 监控系统

  • Web服务

  • 虚拟化

  • 防火墙

  • 压测

  • 文件同步

  • 私有云

  • 日志系统

  • 代码仓库&版本管理

    • git常用命令
    • svn常用命令
    • gitlab+nginx部署
    • svn关联网站目录
    • 搭建SVN服务及实现备份
  • 安全审计

  • 远程拨号

  • 大数据

  • 统一认证

  • 消息队列

  • Apollo

  • 运维杂记
  • 代码仓库&版本管理
lyndon
2022-06-11

svn关联网站目录

svn版本库创建

svnadmin creat /svndata/project/develop
1

创建的版本库下会存在以下信息

ls /svndata/project/develop/
conf db format hooks locks README.txt
1
2

conf目录下会存在密码认证、配置文件

ls /svndata/project/develop/conf/
authz passwd svnserve.conf
1
2

为方便管理权限,可以把authz passwd复制到/svndata/svnpasswd下进行管理

mkdir /svndata/svnpasswd
cd /svndata/project/develop/conf/
cp authz passwd /svndata/svnpasswd
1
2
3

修改svnserve.conf指向认证文件

vim /svndata/project/develop/conf/svnserve.conf
// 修改以下两行
password-db = /svndata/svnpasswd/passwd
authz-db = /svndata/svnpasswd/authz
1
2
3
4

配置svn钩子与网站目录同步

svn版本库:/svndata/project/develop

关联网站目录:/www/web/zhibo_tianze_cn/public_html

首先使用checkout把需要关联的网站目录变成一个工作副本

svn checkout svn://xx.xx.xx.xx/develop /www/web/ze_cn/public_html
1

修改版本库下的钩子文件

ls /svndata/project/develop/hooks/
pre-commit.tmpl     start-commit.tmpl
post-commit.tmpl     pre-lock.tmpl
post-lock.tmpl        pre-revprop-change.tmpl
post-revprop-change.tmpl pre-unlock.tmpl
post-unlock.tmpl    
1
2
3
4
5
6

hooks(钩子)文件说明:

# start-commit 提交前触发事务

# pre-commit 提交完成前触发事务

# post-commit 提交完成时触发事务

# pre-revprop-change 版本属性修改前触发事务

# post-revprop-change 版本属性修改后触发事务

需要修改post-commit.tmpl这个钩子

cp post-commit.tmpl post-commit     //拷贝并改名生效
vim post-commit
改为以下内容:
 \#!/bin/sh
export LANG=en_US.UTF-8
 SVN='/usr/bin/svn'
 $SVN update /www/web/ze_cn/public_html/ --username=admin --password=123456
1
2
3
4
5
6
7

修改钩子文件权限为755或者777

chmod 777 post-commit
1

启动svn

svnserve -d -r /svndata/project/ --log-file /svndata/log
1

--log-file 参数是指定日志文件,可不加

可以打开svn客户端上传一个文件,测试是否会更新到关联的网站目录。

由于新创建的svn版本库是空的,可以使用下面命令把网站目录里的文件导入到版本库中

svn import /www/web/zhibo_tianze_cn/public_html/ svn://localhost/develop -m "test"
1

-m 参数是说明内容,引号内的说明随便写

#!/bin/bash

\#这是一个利用hooks将远程svn服务器项目同步到本地web站点目录下

\#远程服务器地址:101.200.75.217,本地服务器地址:123.57.176.140

\#获取svn服务器webphp项目trunk最新版本号

xsv=`svn info svn://101.200.75.215/webphp/trunk|sed -n '/Last Changed Rev/p'|awk '{print $4}'`

\#获取本地web站点版本号

bdv=`svn info /usr/local/nginx/html/pinyi/|sed -n '/Last Changed Rev/p'|awk '{print $4}'`

\#通过比较两个版本号,判断svn服务器代码是否更新,如果更新就使用"svn update"命令更新本地web站点代码

if [ $xsv -gt $bdv ]

 then

 cd /usr/local/nginx/html/pinyi

 svn update

 chown www /usr/local/nginx/html/pinyi -R

fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
上次更新: 2022/06/12, 15:48:09
gitlab+nginx部署
搭建SVN服务及实现备份

← gitlab+nginx部署 搭建SVN服务及实现备份→

最近更新
01
ctr和crictl显示镜像不一致
03-13
02
alpine镜像集成常用数据库客户端
03-13
03
create-cluster
02-26
更多文章>
Theme by Vdoing | Copyright © 2015-2024 op81.com
苏ICP备18041258号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式