博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux svn仓库备份,linux SVN备份
阅读量:6502 次
发布时间:2019-06-24

本文共 1316 字,大约阅读时间需要 4 分钟。

#!/bin/bash

source /etc/profile

back_base_dir=/data/svn_backup

svn_base_dir=/data/svn_pool

log_file=$back_base_dir/svn_backup.log

dayofweek=$(date +%u)

for project in Android IOS UI farm product 官网;do

REPOS_DIR=$svn_base_dir/$project

REPOS_BAK_DIR=$back_base_dir/$project

DATE=$(date +%Y%m%d_%H%M%S)

version_file=$REPOS_BAK_DIR/.version

test -d $REPOS_BAK_DIR ||mkdir -p $REPOS_BAK_DIR

#如果version_file不存在或为空,则给一个初始值

test -s $version_file ||echo '0' > $version_file

#每周日进行全备,其它几天为增量备份

if [ $dayofweek -ne 7 ];then

NUM1=$(cat $version_file)

else

NUM1=0

fi

NUM2=$(svnlook youngest $REPOS_DIR)

#根据版本号判断该增量还是全备

if [ $NUM1 -eq 0 ];then

file=$(date +%F_%H%M%S)_full.dump

else

file=$(date +%F_%H%M%S)_incremental.dump

fi

#版本号相同的话跳过备份

test $NUM1 -eq $NUM2 && { echo $project no modify,go to next repository... ;continue; } ||echo starting  $project backup...

svnadmin dump $REPOS_DIR  -r $NUM1:$NUM2  --incremental > $REPOS_BAK_DIR/$file 2>/dev/null

if [ $? -eq 0 ];

then

# 备份成功的话改变version_file的版本号,并写入日志

echo $NUM2 >  $version_file

echo $(date "+%Y-%m-%d %H:%M:%S") Backup to  $REPOS_BAK_DIR/$file complete... >>$log_file

else

echo "backup fail...."

echo  $(date "+%Y-%m-%d %H:%M:%S") Backup Error...>>$log_file

fi

done

然后把该脚本加入到系统定时任务即可

"10 23 * * * /home/script/svn_backup.sh"

实现功能:

每周日进行全备,其它几天增量备份

若某项目仓库本次与上次备份期间没有提交修改,则跳过该项目

转载地址:http://lhlyo.baihongyu.com/

你可能感兴趣的文章
2018第2周日
查看>>
用lua实现ByteArray和ByteArrayVarint
查看>>
开发App没有数据源?不存在的!国内值得关注的API集合
查看>>
dmz主机就是DNAT功能的体现
查看>>
【SignalR学习系列】5. SignalR WPF程序
查看>>
ORDER BY,GROUP BY 和DI STI NCT 优化
查看>>
[web前端] yarn和npm命令使用
查看>>
为什么需要模版成员方法
查看>>
一起谈.NET技术,.NET Framework源码研究系列之---Delegate
查看>>
一起谈.NET技术,走向ASP.NET架构设计——第三章:分层设计,初涉架构(中篇)...
查看>>
云计算与虚拟化之后:网络威胁成新挑战
查看>>
写下我当时的三个愿望
查看>>
iOS UI基础-18.0 UIView
查看>>
告别2011,迎接2012
查看>>
作品展问题总结
查看>>
一个简单的Spring Web Service示例
查看>>
C#中的Main方法
查看>>
【英语魔法俱乐部——读书笔记】 2 中级句型-复句&合句(Complex Sentences、Compound Sentences)...
查看>>
问题-提示“adodataset.command”
查看>>
Selenium webdriver 操作日历控件
查看>>