解读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 {}命令就是删除文件
\;这是格式要求的,没有具体含义。

 

你可能感兴趣的:(配置管理)