Linux下的SVN服务器搭建
发布时间:2021-09-06, 17:25:41 分类:Linux | 编辑 off 网址 | 辅助
图集1/5
正文 2242字数 459,678阅读
系统环境:Centos 6.5
第一步:通过yum命令安装svnserve,命令如下:
此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
若需查看svn安装位置,可以用以下命令:
yum -y install subversion
Run code
Cut to clipboard
此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
若需查看svn安装位置,可以用以下命令:
rpm -ql subversion
Run code
Cut to clipboard
第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
选择在var路径下创建版本库,当前处于根目录下,一次性创建如下:
选择在var路径下创建版本库,当前处于根目录下,一次性创建如下:
mkdir /var/svn/svnrepos
Run code
Cut to clipboard
第三步:创建svn版本库
在第二步建立的路径基础上,创建版本库,命令如下:
创建成功后,进入xxx目录下
进入目录,可以看见如下文件信息:

在第二步建立的路径基础上,创建版本库,命令如下:
svnadmin create /var/svn/svnrepos/xxxx (xxxx为你预期的版本库名称,可自定义)
Run code
Cut to clipboard
创建成功后,进入xxx目录下
cd /var/svn/svnrepos/xxxx
Run code
Cut to clipboard
进入目录,可以看见如下文件信息:
第四步:配置修改
进入已经创建好的版本库目录下,也就是前文说创建的xxxx
进入conf
conf目录下,一共存放三份重要的配置文件,如下:

authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
细节修改如下:(希望大家严格按照以下信息,不用参考网络上其他资料)
修改authz文件信息,如下:
在文件内容的末尾,添加如下:

只需在末尾添加,无需在文件其他部分修改和添加任何东西(请忽略groups被我马赛克的地方,那其实也是条无用的记录,我忘记删掉而已),末尾内容如下:
rw表示赋予此账号可读写的权限,请注意[]中的斜杠,一定是反斜杠,
有些教程说,需添加版本库名称在括号内,我直接建议就这写,
这样写允许访问的权限更大,避免一些错误
修改passwd文件信息
账号密码文件无需做修改,也是直接将账号和密码信息追加到文件中即可,注意格式为:
修改svnserve.conf(重要)
原始文件内容,都被注释掉的,我们只需要去掉4条指定内容前注释即可,如下:

大多数网络资料,都会让大家将authz-db = authz这条给去掉注释,
经过我本人多次被坑经验,此条去掉后,虽然svn服务器可以连接,
但一直会提示“认证失败”,注释掉即可正常
还有多数资料会让大家在realm = My First Repository处填写服务器ip,
经过测试,填写后并无什么用处,所以大家去掉注释即可,无需做任何修改
到此,配置已经全部完成,账号信息已经添加成功
进入已经创建好的版本库目录下,也就是前文说创建的xxxx
进入conf
cd /var/svn/svnrepos/xxxx/conf
Run code
Cut to clipboard
conf目录下,一共存放三份重要的配置文件,如下:
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
细节修改如下:(希望大家严格按照以下信息,不用参考网络上其他资料)
修改authz文件信息,如下:
vi authz
Run code
Cut to clipboard
在文件内容的末尾,添加如下:
只需在末尾添加,无需在文件其他部分修改和添加任何东西(请忽略groups被我马赛克的地方,那其实也是条无用的记录,我忘记删掉而已),末尾内容如下:
[\]
账号1 = rw
账号2 = rw
...
Run code
Cut to clipboard
rw表示赋予此账号可读写的权限,请注意[]中的斜杠,一定是反斜杠,
有些教程说,需添加版本库名称在括号内,我直接建议就这写,
这样写允许访问的权限更大,避免一些错误
修改passwd文件信息
vi passwd
Run code
Cut to clipboard
账号密码文件无需做修改,也是直接将账号和密码信息追加到文件中即可,注意格式为:
账号 = 密码
例如:admin = 123456
Run code
Cut to clipboard
修改svnserve.conf(重要)
vi svnserve.conf
Run code
Cut to clipboard
原始文件内容,都被注释掉的,我们只需要去掉4条指定内容前注释即可,如下:
大多数网络资料,都会让大家将authz-db = authz这条给去掉注释,
经过我本人多次被坑经验,此条去掉后,虽然svn服务器可以连接,
但一直会提示“认证失败”,注释掉即可正常
还有多数资料会让大家在realm = My First Repository处填写服务器ip,
经过测试,填写后并无什么用处,所以大家去掉注释即可,无需做任何修改
到此,配置已经全部完成,账号信息已经添加成功
第五步:防火墙开启
多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题,
大家按照如下3条命令逐一执行即可
执行结果如下图:

在跟目录下,执行如下命令:
启动成功后,可用ps -aux查看服务启动是否成功
在windows客户端,输入地址:svn://ip地址:3690/xxxx (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口)
弹出输入用户名和密码,输入即可访问
linux服务器上配置多个svn仓库
Linux下svn文件提交后自动同步更新到网站目录
提交自动同步更新
CentOS 7 设置 svn 开机启动
找到 svn 的 service 配置文件 /etc/sysconfig/svnserve 编辑配置文件
将 OPTIONS="-r /var/svn" 改为 svn 版本库存放的目录,
:wq 保存退出
在提示符下输入
重启服务器,输入
看 svn 服务启动了没有
多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题,
大家按照如下3条命令逐一执行即可
/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/init.d/iptables save
service iptables restart
Run code
Cut to clipboard
执行结果如下图:
六:启动svn服务器
Run code
Cut to clipboard
在跟目录下,执行如下命令:
svnserve -d -r /var/svn/svnrepos
Run code
Cut to clipboard
启动成功后,可用ps -aux查看服务启动是否成功
七:客户端访问svn服务器
Run code
Cut to clipboard
在windows客户端,输入地址:svn://ip地址:3690/xxxx (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口)
弹出输入用户名和密码,输入即可访问
linux服务器上配置多个svn仓库
Linux下svn文件提交后自动同步更新到网站目录
提交自动同步更新
CentOS 7 设置 svn 开机启动
找到 svn 的 service 配置文件 /etc/sysconfig/svnserve 编辑配置文件
vi /etc/sysconfig/svnserve
Run code
Cut to clipboard
将 OPTIONS="-r /var/svn" 改为 svn 版本库存放的目录,
:wq 保存退出
在提示符下输入
systemctl enable svnserve.service
Run code
Cut to clipboard
重启服务器,输入
ps -aux | grep 'svn'
Run code
Cut to clipboard
看 svn 服务启动了没有
(支付宝)给作者钱财以资鼓励 (微信)→
有过 3 条评论 »
将 OPTIONS="-r /var/svn" 改为 svn 版本库存放的目录
OPTIONS="-r /var/svn/svnrepos/"
svnadmin create /var/svn/svnrepos/xxxx (xxxx为你预期的版本库名称,可自定义)
[general] #匿名访问的权限,可以是read,write,none,默认为read anon-access=none #使授权用户有写权限 auth-access=write #密码数据库的路径
sudo nano /etc/systemd/system/my_custom_service.service
[Unit] Description=My Custom Service After=network.target [Service] ExecStart=/bin/bash -c "php /www/wwwroot/110.com/wk.php start -d && /home/tuners/ZLMediaKit/release/linux/Debug/MediaServer -d" WorkingDirectory=/www/ Restart=no User=root [Install] WantedBy=multi-user.target
启用你的新服务
sudo systemctl enable my_custom_service
启动服务
sudo systemctl start my_custom_service
退出 nano 文本编辑器
按下 Ctrl 键和字母键,同时按下 X 键。这会触发 nano 的退出命令。
如果你对文件所做的更改没有保存,nano 会询问你是否要保存更改。如果你希望保存更改,按下 Y 键,然后按下 Enter 键。如果不想保存更改,按下 N 键,然后按下 Enter 键。
如果你保存了更改,nano 会要求你确认文件名。按下 Enter 键以接受当前文件名,或者输入一个新文件名并按下 Enter 键以另存为新文件。
如果你没有对文件做任何更改或者在第2步中选择了不保存更改,nano 将立即退出。
这些步骤将帮助你在 nano 中退出并根据需要保存或者不保存更改。
chmod 4755 /home/www/reboot_server.sh #!/bin/bash # 检查PHP进程是否在运行 while true; do if ps aux | grep -q "[p]hp"; then #echo "PHP已启动" sleep 1 break else #echo "等待PHP启动..." sleep 15 fi done sleep 65 php /www/wwwroot/110.com/wk.php start -d /home/tuners/ZLMediaKit/release/linux/Debug/MediaServer -d &
以下文件存在sid特权,chmod u-s或g-s去除sid位:"、、、、、、、" 解决方案:1、使用chmod u-s/g-s 【文件名】命令修改文件的权限 chmod u-s /usr/bin/chage chmod u-s /usr/bin/gpasswd chmod u-s /usr/bin/chfn chmod u-s /usr/bin/chsh chmod u-s /usr/bin/newgrp chmod u-s /usr/bin/write chmod u-s /bin/mount chmod u-s /bin/umount chmod g-s /usr/bin/write
reboot_server.sh
#!/bin/bash sleep 1 while true; do if ps aux | grep -q "[n]ginx"; then #echo "nginx已启动" sleep 1 break else sudo service nginx restart #echo "等待nginx启动..." sleep 5 fi done # 检查PHP进程是否在运行 while true; do if ps aux | grep -q "[p]hp"; then #echo "PHP已启动" sleep 1 break else #echo "等待PHP启动..." sleep 5 fi done sleep 1 #sleep 65 php /***om/**t.php start -d & sleep 1 php /***om/**t.php start -d & sleep 1 php /***om/**t.php start -d &
CPU监测重启
cpu_c.sh
#!/bin/bash #初始化计时器和CPU使用率计数器 timer=0 timer_sleep=19 #high_cpu_count=0 threshold=98 #CPU使用率 duration=600 #五分钟,单位为秒 while true; do #使用top命令获取CPU使用率 cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}' | awk -F'.' '{print $1}') #检查CPU使用率是否超过阈值 gt:表示大于> if [ $cpu_usage -gt $threshold ]; then #((timer++)) #重置计时器 ((timer=timer+timer_sleep)) else #如果CPU使用率没有超过阈值,增加计时器 #((timer++)) timer=0 #重置CPU使用率计数器 #high_cpu_count=0 fi #echo $cpu_usage #echo $timer #如果计时器达到五分钟并且CPU使用率计数器大于0,执行重启 if [ $timer -gt $duration ]; then #echo "CPU usage has been high for 5 minutes. Restarting the system..." sudo reboot #需要sudo权限 exit 0 #重启后退出脚本 fi #休眠一段时间再次检查 sleep $timer_sleep done
/etc/rc.d/rc.local
注意设置文件可执行
#!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd services or udev rules # to run scripts during boot instead of using this file. # # In contrast to previous versions due to parallel execution during boot # this script will NOT be run after all other services. # # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure # 注意设置文件可执行 # that this script will be executed during boot. touch /var/lock/subsys/local /***/reboot_server.sh /***/www/cpu_c.sh
gt:表示大于>。即greater than
ge:表示大于等于>=。即greater than or equals to
lt:表示小于<。即less than
le:表示小于等于<=。即less than or equals to
eq:表示等于=。即equals
ne:表示不等于!=。即not equals