全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解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

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


# CentOS  # SVN双备份Shell  # CentOS双备份Shell脚本  # PHP程序员玩转Linux系列 自动备份与SVN  # linux svn服务器搭建、客户端操作、备份与恢复  # Python实现SVN的目录周期性备份实例  # 远程镜像与备份SVN服务器的方法小结  # IntelliJ IDEA使用SVN分支的简单介绍  # Webstorm2017上SVN插件安装的方法步骤  # Jenkins与SVN持续集成的示例代码  # 详解Eclipse安装SVN插件的两种方法  # 详解IntelliJ IDEA中TortoiseSVN修改服务器地址的方法  # linux下svn版本控制的常用命令大全  # SVN服务备份操作步骤分享  # 上传  # 用户登录  # 两行  # 自己的  # 是一个  # 这是  # 器上  # 操作系统  # 几个  # 会有  # 也会  # 多个  # 安装了  # 管理系统  # 将其  # 以此类推  # 这条  # 采用了  # 说得  # 如果没有 


相关文章: 电商网站制作价格怎么算,网上拍卖流程以及规则?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  建站之星图片链接生成指南:自助建站与智能设计教程  XML的“混合内容”是什么 怎么用DTD或XSD定义  如何通过宝塔面板实现本地网站访问?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  婚礼视频制作网站,学习*后期制作的网站有哪些?  招贴海报怎么做,什么是海报招贴?  建站之星安装后界面空白如何解决?  活动邀请函制作网站有哪些,活动邀请函文案?  宁波自助建站系统如何快速打造专业企业网站?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  如何彻底卸载建站之星软件?  如何通过网站建站时间优化SEO与用户体验?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  制作宣传网站的软件,小红书可以宣传网站吗?  深圳网站制作的公司有哪些,dido官方网站?  如何将凡科建站内容保存为本地文件?  宝塔新建站点为何无法访问?如何排查?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  建站主机选虚拟主机还是云服务器更好?  建站之星上传入口如何快速找到?  制作网站公司那家好,网络公司是做什么的?  制作电商网页,电商供应链怎么做?  如何选择建站程序?包含哪些必备功能与类型?  家庭服务器如何搭建个人网站?  常州自助建站费用包含哪些项目?  定制建站流程解析:需求评估与SEO优化功能开发指南  建站中国官网:模板定制+SEO优化+建站流程一站式指南  设计网站制作公司有哪些,制作网页教程?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  建站主机默认首页配置指南:核心功能与访问路径优化  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  如何获取开源自助建站系统免费下载链接?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  建站OpenVZ教程与优化策略:配置指南与性能提升  如何快速选择适合个人网站的云服务器配置?  如何在Windows服务器上快速搭建网站?  如何选择网络建站服务器?高效建站必看指南  IOS倒计时设置UIButton标题title的抖动问题  如何用搬瓦工VPS快速搭建个人网站?  建站之星×万网:智能建站系统+自助建站平台一键生成  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  如何通过远程VPS快速搭建个人网站?  宝塔Windows建站如何避免显示默认IIS页面?  如何零成本快速生成个人自助网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。