#!/bin/bash
#created by xiaocong.wang on Aug 5th
############################
# create directory for backup
############################
today=`date +%Y%m%d%H%M`
budir=file$today
echo "===set the var to $today==="
echo "===set directory name to $budir==="
if [[ ! -d /home/backup ]];then
mkdir /home/backup
else
mkdir /home/backup/$budir
fi
###########################
# do the backup on local disk
###########################
echo "===backup start... pls waiting...===="
svnadmin hotcopy /opt/repos/ /home/backup/$budir && echo "===do the backup successfull===" /
|| echo "===backup error,pls do it again==="
##########################
# do the remote copy to SCM server
##########################
echo "===remote copy start... pls waiting...===="
scp -r /home/backup/$budir/* root@mgw-scm-server.china.nsn-net.net:/opt/repos/. && echo "===do remote copy successfull===" /
|| echo "===remote copy error,pls do it again==="
#########################
# clean 1 oldest archive while
# reaching 10 archives
#######################
file_num=`ls /home/backup | wc -l`
if [ $file_num -ge 10 ];then
echo -e "/n space full... starting cleaning files/n"
cd /home/backup
var1=`ls | awk 'NR==1' `
if [[ $var1 =~ "file*" ]] ; then
ls /home/backup | awk 'NR==1'| xargs rm -rf
echo -e "/n 1 archive deleted.../n"
else
echo -e "/n can NOT delete... pls double check before delete/n"
fi
else
echo -e "/n still have free space "
fi
MARK下,使用svn hotcopy进行简单的repository备份(缺少email功能)
最新推荐文章于 2026-06-23 22:08:52 发布
本文介绍了一个用于SVN版本控制系统备份的bash脚本。该脚本首先创建一个带有日期戳的本地备份目录,并将SVN仓库进行热备份。接着将备份文件通过SCP命令远程复制到指定服务器上,实现异地备份。最后,为了节省空间,当本地备份目录数量达到10个时,会自动删除最旧的一个备份。
&spm=1001.2101.3001.5002&articleId=5964388&d=1&t=3&u=6b5d59a4b73c49e6a07a948bcd71218f)
5365

被折叠的 条评论
为什么被折叠?



