解读SVN 自动备份shell脚本

SVNADMIN="/usr/bin/svnadmin"  # 创建变量
SVNDIR="/data/svn"       # 创建变量
DATE=$(date +%Y-%m-%d)# 创建变量
hotcopy="hotcopy" # 创建变量
#OLDDATE=$(date +%Y-%m-%d -d'15 days ago')
BACKDIR="/backup/$DATE" # 创建变量
[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR} # 如果不存在备份目录则创建这个目录
LogFile=${BACKDIR}/svnbak_$DATE.log
[ -f ${LogFile} ] || touch ${LogFile} #如果不存在log文件则创建这个目录

for PROJECT in `ls /data/svn/` #for 循环从/data/svn下的每一个文件夹 project是变量,一个svn下的文件夹名字存放到project里面
do
  cd $SVNDIR #进入到data/svn
  echo "############start to backup $PROJECT ##############" >> ${LogFile} #显示双引号里面的内容
  $SVNADMIN $hotcopy $PROJECT  ${BACKDIR}/$PROJECT --clean-logs #备份每一个项目
echo  $SVNADMIN  $hotcopy $PROJECT  ${BACKDIR}/$PROJECT
  echo "############end   to backup $PROJECT ##############" >> ${LogFile}


  cd $BACKDIR 
  tar zcvf ${PROJECT}_${DATE}.tar.gz $PROJECT > /dev/null #压缩备份的文件 不记录日志
  rm -rf $PROJECT #删除备分的文件
  sleep 2  #休息2秒
done

cp -rf /data/conf $BACKDIR/ #备份配置文件到backup文件夹
find /backup -maxdepth 1 -type d -name "2019*" -mtime +15 -exec rm -rf {} \; #查到/backup下一级目录 名字包含2019 修改日期为15天前的 执行删除 -exec 找到后执行命令
rm -rf {}命令就是删除文件
\;这是格式要求的,没有具体含义。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值