增量+全量备份SVN服务器

#!/bin/bash

# 获取当前是星期几
DAY=$(date +%w)
# 获取当前的日期 DATE
=$(date '+%Y-%m-%d-%H-%M')
# 获取当前版本库中最新的版本 CURRENT_VERSION
=$(svn info svn://localhost/edu | grep Revision | awk '{print $2}')
# 记录上一次备份到的版本 HAS_BACK_VERSION=62127 if [[ ${DAY} -ne 0 ]];then ############ 增量备 # 计算本次增量备的起始版本号(上一次备份到的版本号 + 1) START=$((${HAS_BACK_VERSION} + 1)) # 起始版本号不能大于当前版本号 if [[ ${START} -le ${CURRENT_VERSION} ]];then # 开始增量备:从起始版本号到最新版本 svnadmin dump /data/svndata/edu --revision ${START}:${CURRENT_VERSION} --incremental > /data/backup/edu_incr_${DATE}_${START}:${CURRENT_VERSION}.dump
# 将最新版本记录到文件中,作为下一次的基准版本
sed -i "s/HAS_BACK_VERSION=${HAS_BACK_VERSION}/HAS_BACK_VERSION=${CURRENT_VERSION}/g" /data/backup/backup_svn.sh fi else ############ 全量备 # 直接全备 svnadmin dump /data/svndata/edu > /data/backup/edu_full_${DATE}_0:${CURRENT_VERSION}.dump
# 记录全备的版本号
sed -i "s/HAS_BACK_VERSION=${HAS_BACK_VERSION}/HAS_BACK_VERSION=${CURRENT_VERSION}/g" /data/backup/backup_svn.sh fi # 只保留7个文件 NUM=7 CURRENT_NUM=$(cd /data/backup && ls *.dump | wc -l) if [[ ${CURRENT_NUM} -gt ${NUM} ]];then DELETE_NUM=$((${CURRENT_NUM} - ${NUM})) cd /data/backup && ls *.dump -rt | head -${DELETE_NUM} | xargs rm -f fi
posted @ 2019-07-31 11:08  道霖  阅读(508)  评论(0编辑  收藏  举报