svn服务器端下载linux,Svn linux服务端安装及配置

Svn服务端安装及配置

安装centos7

用vmware虚拟机安装

关闭selinux防火墙

vim /etc/selinux/config

将SELINUX的值设置为disabled

如果不关,日志会出现Permission denied: [client 192.168.246.1:9377] AH01620: Could not open password file: /home/svn/conf/svn-auth-conf

安装httpd

yum install httpd -y

subversion 软件安装

yum install mod_dav_svn subversion -y

Apache 配置

vim /etc/httpd/conf/httpd.conf

添加:

ServerName localhost:80

如果配置出现异常要查日志的话,根据httpd.conf确定日志路径,默认是/etc/httpd/logs下

svn apache 配置 加载组件模块

vim /etc/httpd/conf.d/subversion.conf

复制下面内容

DAV svn

#SVNPath /svn/repos

SVNParentPath /home/svn/data

AuthzSVNAccessFile /home/svn/conf/svn-acl-conf

AuthType Basic

AuthName "Subversion repos"

AuthUserFile /home/svn/conf/svn-auth-conf

Require valid-user

创建svn客户端授权用户

#mkdir -p /home/svn/conf

第一次创建

# htpasswd -cm /home/svn/conf/svn-auth-conf wmf

修改密码或者添加用户

# htpasswd -m /home/svn/conf/svn-auth-conf wmf

此操作不用重启httpd服务即可生效

创建仓库

mkdir -p /home/svn/data

cd /home/svn/data

svnadmin create test

添加访问控制

vim /home/svn/conf/svn-acl-conf

添加下面内容

[test:/]

wmf=rw

启动服务并设置开机启动

systemctl enable httpd.service

systemctl start httpd.service

备份服务器配置

scp同步方法

由于有多个项目,如果采用上面的方法会很痛苦,故直接采用scp复制根目录的方法,而且还能保存一天的备份

主从机间免密码登录

#用户home目录下生成密匙对,执行指令前先ssh localhost登陆一下,确保.ssh隐藏目录生成,可以先ls -a 看下有木有

ssh-keygen -t rsa

#默认回车后检查生成的文件

ls -a .ssh

#显示 id_rsa id_rsa.pub

#将公钥添加到认证文件

cd .ssh

cat id_rsa.pub >> authorized_keys

chmod 600 authorized_keys

#启用公钥认证功能

vim /etc/ssh/sshd_config

#删除选项注释

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

service sshd restart

#本地检查无密码认证,无需输入密码即可登录成功

ssh localhost

#将本地公钥拷贝到目标服务器,即可无验证登陆目标服务器

160通过ssh localhost新建.ssh文件夹

scp id_rsa.pub root@192.168.2.160:/root/.ssh/

160上执行

cat id_rsa.pub >> authorized_keys

chmod 600 authorized_keys

scp -r /data/svn root@192.168.2.160:/data/

ssh root@192.168.2.160 "rm -rf /data/svnbak;cp -r /data/svn /data/svnbak;rm -rf /data/svn"

编写定时脚本

chkconfig crond on开机自启动

查看crontab服务状态:service crond status

crontab -e -编辑用户目前的crontab.

#每晚的23:30

30 23 * * * /home/svnscp.sh

crontab -l -列出用户目前的crontab.

crontab -d -删除用户目前的crontab.

svnscp.sh

#!/bin/bash

time=date '+%Y-%m-%d %H:%M:%S'

echo "$time 同步脚本开始执行" >>/home/svnlog

ssh root@192.168.2.160 "rm -rf /data/svnbak;cp -r /data/svn /data/svnbak;rm -rf /data/svn"

scp -r /home/svn root@192.168.2.160:/data/

time=date '+%Y-%m-%d %H:%M:%S'

echo "$time 同步脚本执行完毕" >>/home/svnlog

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值