#!/bin/bash
du -sh /svn/* | sort -rh |head -n 5 |awk '{print $2}'| awk -F '/' '{print $3}' > /tmp/maxsvn
default_version=10                          #默认保留几个版本
for i in $(cat /tmp/maxsvn)do
  new_version=$(svnlook youngest /svn/$i)                 #得到最新的版本号
  if [[ $new_version -lt 10 ]] ; then            #如果不足10个版本就直接退出
    exit
  fi
  reserve_version=$((new_version-default_version))               #计算要保留的最低版本号
  svnadmin hotcopy --clean-logs  /svn/$i  /svn/${i}_bak   #备份老版本库
  svnadmin dump /svn/$i -r $reserve_version:$new_version > /tmp/${i}_${reserve_version}to${new_version}.dump  
  rm -rf  /svn/$i
  svnadmin create /svn/$i    #新建版本库
  svnadmin load /svn/$i < /tmp/${i}_${reserve_version}to${new_version}.dump   #导入文件
  rm -rf /svn/$i/conf/*  
  cp /opt/svnserver.conf  /svn/$i/conf                 #使用一套配置文件进行登录
  done