Debian10: SVN数据备份

15 篇文章 0 订阅
5 篇文章 0 订阅

数据是公司的核心资源,重之又重,数据备份是为灾难上的保险。现有主服务器和备用服务器的情况下,备份思路和要求如下:
1. 主服务器和备用服务器的svn数据每天同步,以便在主服务器故障时能以最快速度切换至备用服务器;
2. 主服务器每周对svn数据进行一次全备份。

一、同步svn数据
  备用服务器通过nfs服务将主服务器的svn仓库目录挂载至文件系统以方便操作。然后编写脚本程序,使用crontab创建计划任务。这里需要注意两点:一是使用chmod +x svn_sync.sh命令使脚程序可执行;二是以root用户登陆创建计划任务。脚本程序检测主服务器SVN仓库的最新版本和备用服务器的最新版本,若主服务器的仓库版本更新,则通过增量备份方式生成.svn文件,然后将其导入备用服务器,以此完成备用服务器的仓库同步。
  脚本程序如下:

#!/bin/bash

#仓库列表
repo_list[0]="project"
repo_list[1]="office"
repo_list[2]="public"

#开始同步
date >svn_sync.log
echo "repo. sync start:" >>svn_sync.log

#检测主服务仓库目录是否加载
if [ ! -d /nfs/nas1_svn/repo ]; then
    mount -t nfs 192.168.1.224:/disk1/svn /nfs/nas1_svn
fi

#同步仓库
for repo in ${repo_list[@]}; do
    if [ -d /nfs/nas1_svn/repo/$repo ]; then
        date >> svn_sync.log
        echo "sync $repo" >>svn_sync.log
        svn_rev=$(svnlook youngest /nfs/nas1_svn/repo/$repo)
        bak_rev=$(svnlook youngest /disk1/svn/repo/$repo)

        if [ $svn_rev -ne $bak_rev ]; then
            bak_rev=$[$bak_rev+1]
            echo "sync rev:$bak_rev to $svn_rev"
            svnadmin dump --incremental -r $bak_rev:$svn_rev /nfs/nas1_svn/repo/$repo > /disk1/svn/${repo}.svn
            svnadmin load /disk1/svn/repo/$repo < /disk1/svn/${repo}.svn
            rm /disk1/svn/${repo}.svn
        fi
        echo "sync $repo finish!" >>svn_sync.log
    fi
done

cp -f /nfs/nas1_svn/dav_svn.passwd /disk1/svn/
cp -f /nfs/nas1_svn/dav_svn.authz /disk1/svn/

date >> svn_sync.log
echo "repo. sync finish!" >> svn_sync.log

二、全备份svn数据
  操作同上,脚本程序如下:

#!/bin/bash

#仓库列表
repo_list[0]="project"
repo_list[1]="office"
repo_list[2]="public"

#检测主服务仓库目录是否加载
if [ ! -d /nfs/nas1_svn/repo ]; then
    mount -t nfs 192.168.1.224:/disk1/svn /nfs/nas1_svn
fi

#备份仓库
for repo in ${repo_list[@]}; do
if [ -d /nfs/nas1_svn/repo/$repo ]; then
    mv /disk0/svn_backup/${repo}.svn /disk0/svn_backup/_${repo}.svn
    svnadmin dump /disk1/svn/repo/$repo > /disk0/svn_backup/${repo}.svn
    rm /disk0/svn_backup/_${repo}.svn
fi
done

cp -f /disk1/svn/dav_svn.passwd /disk0/svn_backup/
cp -f /disk1/svn/dav_svn.authz /disk0/svn_backup/

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值