Linux下svn服务器的安装与配置-备份-恢复-计划任务
2015-10-14 15:56
781 查看
简介:
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。
运行方式
svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。
详细步骤,请打开查看
上传文件到svn版本库 file目录下的文件是其它服务器的备份文件
五、SVN的备份和还原(两种备份方式)
六、模拟服务器奔溃(在有备份文件的情况下,恢复到新服务器)
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。
运行方式
svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。
一、安装svn
# yum install subversion-1.6.11-7.el5_6.4 mysql-server httpd mod_dav_svn mod_perl sendmail wget gcc-c++ make unzip perl* ntsysv vim-enhanced
# service httpd stop Stopping httpd: [ OK ] # vim /data/svn/project/conf/passwd : : [users] # harry = harryssecret # sally = sallyssecret #admin = 123456 test = test admin:uyvcrbGbdBPuk : : # vim /data/svn/project/conf/authz : : [groups] [/] admin = rw test = rw * = : : # ps -ef |grep svn root 4032 1 0 15:14 ? 00:00:00 svnserve -d -r /data/svn root 25723 3556 0 16:35 pts/1 00:00:00 grep svn # kill -9 4032 # svnserve -d -r /data/svn # svn ls svn://192.168.5.10/project Authentication realm: <svn://192.168.5.10:3690> d72f34c5-d386-4d19-bc8b-9e5192737eee Password for 'admin': Authentication realm: <svn://192.168.5.10:3690> d72f34c5-d386-4d19-bc8b-9e5192737eee Username: test Password for 'test': ----------------------------------------------------------------------- ATTENTION! Your password for authentication realm: <svn://192.168.5.10:3690> d72f34c5-d386-4d19-bc8b-9e5192737eee can only be stored to disk unencrypted! You are advised to configure your system so that Subversion can store passwords encrypted, if possible. See the documentation for details. You can avoid future appearances of this warning by setting the value of the 'store-plaintext-passwords' option to either 'yes' or 'no' in '/root/.subversion/servers'. ----------------------------------------------------------------------- Store password unencrypted (yes/no)? yes client/ server/ test/ # svn delete svn://192.168.5.10/progect/client -m "delete" svn: No repository found in 'svn://192.168.5.10/progect/client' # svn delete svn://192.168.5.10/project/client -m "delete" Committed revision 2. # svn delete svn://192.168.5.10/project/server -m "delete" Committed revision 3. # svn delete svn://192.168.5.10/project/test -m "delete" Committed revision 4. # svn mkdir -m "UP" svn://192.168.5.10/project/union Committed revision 5. # svn mkdir -m "UP" svn://192.168.5.10/project/wangyi Committed revision 6. # vim /data/svn/project/conf/passwd [users] # harry = harryssecret # sally = sallyssecret #admin = 123456 test = test admin:uyvcrbGbdBPuk # ps -ef |grep svn root 25725 1 0 16:35 ? 00:00:00 svnserve -d -r /data/svn root 25759 3556 0 16:40 pts/1 00:00:00 grep svn # kill -9 25725 # svnserve -d -r /data/svn # service httpd start Starting httpd: [ OK ]
详细步骤,请打开查看
上传文件到svn版本库 file目录下的文件是其它服务器的备份文件
# export LANG="zh_CN.GB2312" //文件名有中文的时候需要设置变量 # svn import /data/file/ file:///data/svn/project/file --message "init" # svn import /data/file/ svn:///data/svn/project/file --message "init" //两条命令是一样的
五、SVN的备份和还原(两种备份方式)
1、hotcopy备份方式: # svnadmin hotcopy /data/svn/project /data/bakup/`date +/%y%m%d`/ --clean-logs //用svnadmin整体备份/data/svn/project到/data/bakup/目录里并且以时间命名 2、dump备份方式: # svnadmin dump /data/svn/project > /data/beifen/`date +/%Y%m%d`.bak //推荐此方法备份,下面模拟用的就是dump的方式
六、模拟服务器奔溃(在有备份文件的情况下,恢复到新服务器)
# rm -rf /data/svn/* # ps -ef |grep svn # kill -9 26221 # svnadmin create /data/svn/ceshi # export LANG=en_US # svnadmin load /data/svn/ceshi < /data/20150906 # cat /data/passwd >> /data/svn/ceshi/conf/passwd
[users] admin:uyvcrbGbdBPuk
# vim /data/svn/ceshi/conf/authz
[groups] [/] admin = rw * =
# vim /data/svn/ceshi/conf/svnserve.conf
[general] anon-access = none auth-access = write password-db = /data/svn/ceshi/conf/passwd authz-db = /data/svn/ceshi/conf/authz
# vim /etc/httpd/conf/httpd.conf
<Location /ceshi> DAV svn SVNPath /data/svn/ceshi/ AuthType Basic AuthName "svn for ceshi" AuthUserFile /data/svn/ceshi/conf/passwd AuthzSVNAccessFile /data/svn/ceshi/conf/authz Satisfy all Require valid-user </Location>
# service httpd restart # svnserve -d -r /data/svn 测试是否成功恢复 http://192.168.5.10/ceshi[/code]
七、自动全量备份脚本# vim svn.pl#!/usr/bin/perl -w my $svn_repos="/data/svn/project"; my $backup_dir="/data/backup/svn/"; my $next_backup_file = "svn".`date +%Y%m%d`; $youngest=`svnlook youngest $svn_repos`; chomp $youngest; print "Backing up to revision $youngest"; my $svnadmin_cmd="svnadmin dump --revision $youngest $svn_repos >$backup_dir/$next_backup_file"; `$svnadmin_cmd`; open(LOG,">$backup_dir/last_backed_up"); #记录备份的版本号 print LOG $youngest; close LOG; #如果想节约空间,则再执行下面的压缩脚本 #print "Compressing dump file...n"; #print `gzip -9 $backup_dir/$next_backup_file`;
删除三天前的备份文件# vim svn-Timing-delete.shfind /data/backup/svn/ -type f -mtime +3 -exec rm '{}' \;
添加到计划任务# crontab -e30 22 * * * perl /data/svn/svn.pl 00 23 * * * bash /data/svn/svn-Timing-delete.sh
相关文章推荐
- linux 强大的编辑器之vi
- linux硬盘分区格式化及挂载
- linux 通配符使用小结
- JDK 1.7安装详解(CentOS 6.4)
- linux 压缩和归档
- [内存管理] linux kernel内存映射实例分析
- linux并发服务器(1)(想法补充)
- PF_RING安装
- linux awk命令详解
- centos与RHEL的关系
- 如何查看 linux 内核源代码
- CentOS 安装jdk1.7 32位
- LINUX下通过C++访问SQLSERVER数据库
- Linux rpm 命令参数使用详解
- Linux CentOS VPS 性能评测 跑分
- Linux内核加载过程
- linux iptables原理及配置详解
- linux 启动过程关键点
- linux文件的输入输出
- linux下搭建pentaho服务器