详解Linux运维CentOS系统SVN双备份Shell脚本

前言

SVN是Subversion的简称,是一个开放源代码的版本控制系统,采用了分支管理系统。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

作为一个代码管理工具,备份操作显得尤为重要,这里采取这样的备份策略:在执行本地备份的同时,让Shell脚本自动上传数据到另一台FTP备份服务器中,这种异地备份策略成本比较小,无需存储,而且安全系统高,想到与双备份,本地和异地同时出现数据损坏的概率是低很多的。

备份策略说明

使用CentOS 6系列系统,安装vsftpd,修改配置参数。此外vsftpd的备份目录可以做RAID1或RAID5。
执行脚本将svn项目进行本地目录备份,然后将备份文件上传到FTP服务器上,已实现双备份。

备份步骤

安装并配置vsftpd

使用yum直接安装即可。

yum -y install vsftpd

修改配置,由于要进行上传操作,所以要允许用户上传。为安全性考虑,不建议匿名用户操作。

修改配置后,将不必要的vsftpd.conf参数屏蔽,显示为:

[root@private ~]# grep -v "^#" /etc/vsftpd/vsftpd.conf | grep -v "^$"
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

chroot_local_user=YES这条语句需要重点强调一下,其作用是对用户登录权限进行限制,即所有本地用户登录vsftpd时只能在自己的家目录下,这是基于安全的考虑,本实例脚本也会基于这点,要是使用本脚本在实际的生产环境,需要注意该点。

创建ftp登录用户

在备份服务器上创建备份用户,本次创建用户svn,并为其分配密码,还应该将其家目录更改为备份目录,本地备份目录为:/data/backup/svn-backup/,这样更方便备份工作,以下脚本以此类推。

[root@private ~]# useradd -d /data/backup/svn-backup/ svn
[root@private ~]# echo "svnpasswd" | passwd --stdin svn
Changing password for user svn.
passwd: all authentication tokens updated successfully.

配置svn仓库

首先检查操作系统上面是否安装了subversion,一般centos操作系统都默认安装了此软件,如果没有安装使用如下命令快速安装

rpm -qa subversion
yum -y install subversion
##创建版本库
svnadmin create /data/svn  //这里的文件目录自己随便设置
##配置svnserve,上述版本库`/data/svn `建立后在文件夹下会生成conf文件夹,进入`/data/svn/conf`下面会有下面3个文件

[root@private svn]# ls conf/
authz passwd svnserve.conf 

##需要修改`svnserve.conf`修改以下几个部分:

anon-access = read
auth-access = write
password-db = passwd
authz-db = authz 

##修改`passwd`文件为:

[users]
username = password  //这里的username和password自己设置 

##配置文件`authz`最后加上以下两行(这两行解决了 SVN客户端解决authorization failed问题)

[/]
* = rw  

##启动svnserve即可:
svnserve -d -r /home/myrepos/

备份脚本

本脚本设置轮询周期为30天一次,Shell会自动删除30天以前的文件。在vsftpd建立相应的备份用户svn脚本内容如下:

#!/bin/bash
SVNDIR="/data"
SVNADMIN="/usr/bin/svnadmin"
DATE=$(date +%Y-%m-%d)
OLDDATE=$(date +%Y-%m-%d -d'30 days')
BACKDIR="/data/backup/svn-backup"
[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR}
LogFile=${BACKDIR}/svnbak.log
[ -f ${LogFile} ] || touch ${LogFile}
mkdir ${BACKDIR}/${DATE}

for PROJECT in svn
do
  cd $SVNDIR
  $SVNADMIN hotcopy $PROJECT $BACKDIR/$DATE/$PROJECT --clean-logs
  cd $BACKDIR/$DATE
  tar zcvf ${PROJECT}_svn_${DATE}.tar.gz $PROJECT > /dev/null
  rm -rf $PROJECT
  sleep 2
done

HOST=localhost
FTP_USERNAME=svn
FTP_PASSWORD=Haiyuan
cd ${BACKDIR}/${DATE}

ftp -i -n -v <<!
open ${HOST}
user ${FTP_USERNAME} ${FTP_PASSWORD}
bin
cd ${OLDDATE}
mdelete *
cd ..
rmdir ${OLDDATE}
mkdir ${DATE}
cd ${DATE}
mput *
bye

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2017-06-11

centos6.5下svn的使用说明

linux下搭建svn服务器的文章已经有很多了,这里仅记下自己最近使用的一些实践之谈,原理先不深究,供日后查阅用. 安装:yum install subversion -y,可用rpm -ql subversion查看svn的安装目录,默认在/usr/bin目录下 创建版本库: mkdir /path/to/repo svnadmin create /path/to/repo 创建好后目录下会有conf db format hooks locks README.txt这些个文件(夹), 其中co

详细CentOS-6.3安装配置SVN的方法

安装说明 系统环境:CentOS-6.3 安装方式:yum install (源码安装容易产生版本兼容的问题) 安装软件:系统自动下载SVN软件 检查已安装版本 #检查是否安装了低版本的SVN [root@localhost /]# rpm -qa subversion #卸载旧版本SVN [root@localhost modules]# yum remove subversion 安装SVN [root@localhost modules]# yum install httpd httpd-

CentOS 7.0下SVN服务器图文搭建教程

本文为大家分享了CentOS 7.0搭建SVN服务器的详细过程,供大家参考,具体内容如下 1. 通过yuminstall subversion来安装 2. 提示已经安装.查看svn版本 第二步: 创建svn版本库 第三步: 配置svn信息 2. 配置权限配置文件authz 3. 配置用户口令文件passwd 4. 配置svn服务综合配置文件svnserve.conf 第四步: 启用svn,连接svn以及关闭svn 1. 启用svn svnserve -d -r /home/svn/project

CentOS6.4 下安装SVN的详细教程(超详细)

1.检查系统是否已经安装如果安装就卸载 rpm -qa subversion yum remove subversion 2.安装 yum install subversion 3.建立SVN库 mkdir -p /home/svn/repos svnadmin create /home/svn/repos 执行上面的命令后,自动建立repositories库,查看/home/svn/repos 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文

linux(centos)下SVN服务器如何搭建

虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN. 安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversion查看安装位置,如下图: 我们知道svn在bin目录下生成了几个二进制文件. 输入 svn --help可以查看svn的使用方法,如下图. 3.创建svn版本库目录 复制代码 代码如下: mkdir -

CentOS下搭建SVN服务器的步骤详解

本文实例讲述了CentOS下搭建SVN服务器的步骤.分享给大家供大家参考,具体如下: 1.安装svn yum install -y subversion 2.验证安装是否成功 svnserve --version 3.创建svn版本库 mkdir svn svnadmin create svn/repo 注:这里的repo是版本库名称 4.配置svn 创建版本库后,在这个版本库的conf目录下会生成3个配置文件: [root@singledb conf]# pwd /root/svn/repo/

linux(centos7)搭建SVN服务器的思路

linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! 虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN. 安装步骤如下 1.安装 sudo yum install subversion 查看安装位置 sudo rp

详解CentOS的SVN服务器搭建与自动部署全过程

服务器搭建 安装服务 yum install subversion 配置服务 mkdir -p /data/wwwsvn/myrepo #创建svn仓库的目录 这里可以自定义创建的目录,注意不是网站的文件目录. svnadmin create /data/wwwsvn/myrepo #与上面的目录相同. 这里要注意该目录不能是空目录. 成功以后会得到以下文件 # ls conf db format hooks locks README.txt 进入conf修改配置文件 vi passwd添加在末

Windows下SVN服务器搭建方法整理(apache)

本节和大家谈谈Windows下SVN服务器搭建问题,在这里拿出来和大家分享一下,希望对大家有用. 1,软件下载 Windows下SVN服务器搭建,下载Subversion服务器程序.到官方网站的下载二进制安装文件,来到二进制包下载部分,找到WindowsNT,2000,XPand2003部分,然后选择"thisdirectory",这样我们可以看到许多下载的内容,目前可以下载svn-1.4.0-setup.exe.下载Subversion的Windows客户端TortoiseSVN.T

Linux下的SVN服务器搭建步骤

鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始*********/ 系统环境:Centos 6.5 第一步:通过yum命令安装svnserve,命令如下: yum -y install subversion 此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行 若需查看svn安装位置,可以用以下命令: rpm -ql subversio

SVN服务器搭建图文教程

SVN服务器搭建教程,供大家参考,具体内容如下 一.首先准备三个软件: 1.VisualSVN-Server-3.6.3-x64.msi(svn服务端) 2.TortoiseSVN-1.9.6.27867-x64-svn-1.9.6.msi(svn客户端) 3.LanguagePack_1.9.6.27867-x64-zh_CN.msi(TortoiseSVN 的汉化包) 软件下载地址:http://subversion.apache.org/packages.html 打开网页拉到最后,看到以

详解Linux上svn命令行批量操作

详解Linux上svn命令行批量操作 虽然说git很好,大多数时候我也是使用git,但是有时候因为一些原因,不得不使用svn,而在linux上使用svn是没有像windows上的tortoisesvn的软件的(网上有说有类似的,但是折腾了很久仍然没有成功),所以直接来命令行吧. 我们直接安装svn就好,然后文件修改之后使用命令 svn status 查看文件的跟踪信息,这里会使用一些代号,对应的大概是 " " 无修改 "A" 新增 "C" 冲突

Windows SVN服务器搭建方法

这里我就介绍一个在Windows环境下简单快速搭建SVN服务器的方法.通常的SVN服务器是搭建在Linux等系统下,例如用Apache+SVN配置,Linux下的SVN性能会非常好,但配置有些繁琐,如果SVN服务器只有自己使用,那么可以直接把SVN服务器搭建在个人Windows环境下使用. 目前较为简单的方案是VisualSVN Server.该SVN服务器是免费的,支持Windows NT, 2000, XP and 2003等环境,安装非常简单. 安装的时候可以选择SVN走http协议还是h

详解Eclipse安装SVN插件的两种方法

eclipse里安装SVN插件,一般来说,有两种方式: 直接下载SVN插件,将其解压到eclipse的对应目录里 使用eclipse 里Help菜单的"Install New Software",通过输入SVN地址,直接下载安装到eclipse里 第一种方式: 1.下载SVN插件 SVN插件下载地址及更新地址,你根据需要选择你需要的版本.现在最新是1.8.x Links for 1.8.x Release: Eclipse update site URL: http://subclip

详解Grunt插件之LiveReload实现页面自动刷新(两种方案)

方案一:grunt-livereload + Chrome Plug-in 优点:安装.配置简单方便. 缺点:需要配合指定的浏览器插件(Firefox也有相关插件,IE么你懂的). 1. 需要安装2个插接件:grunt-contrib-watch.connect-livereload 执行命令: 复制代码 代码如下: npm install --save-dev grunt-contrib-watch connect-livereload 2. 安装浏览器插件:Chrome LiveReload

详解Centos 使用YUM安装MariaDB

1.在 /etc/yum.repos.d/ 下建立 MariaDB.repo,内容如下: 复制代码 代码如下: [azureuser@mono etc]$ cd /etc/yum.repos.d [azureuser@mono yum.repos.d]$ vi MariaDB.repo # MariaDB 10.0 CentOS repository list - created 2013-08-23 13:08 UTC # http://mariadb.org/mariadb/reposito

详解Docker容器可视化监控中心搭建

概述 一个宿主机上可以运行多个容器化应用,容器化应用运行于宿主机上,我们需要知道该容器的运行情况,包括 CPU使用率.内存占用.网络状况以及磁盘空间等等一系列信息,而且这些信息随时间变化,我们称其为时序数据,本文将实操 如何搭建一个可视化的监控中心 来收集这些承载着具体应用的容器的时序信息并可视化分析与展示! 动手了,动手了... 准备镜像 adviser:负责收集容器的随时间变化的数据 influxdb:负责存储时序数据 grafana:负责分析和展示时序数据 部署Influxdb服务 可以将