svnバックアップスクリプト


Subversionのバックアップ・スクリプトここでバックアップします.
バックアップが完了する後、ftpを介してリモートバックアップ機に転送する.

  
  
  
  
  1. #!/bin/sh 
  2. # subversion backup for freebsd8. 
  3. # Created by ritto.zhao. 
  4. # 2009-04-23 
  5.  
  6. SVNDIR=/data/svn 
  7. SVNADMIN=/usr/local/bin/svnadmin 
  8. DATE=`date +%Y-%m-%d` 
  9. OLDDATE=`date -v -30d +%Y-%m-%d` 
  10. IP=`ifconfig | grep "inet" | grep -v "inet6" | grep -v "127.0.0.1" | awk '{ print $2 }'
  11.  
  12. BACKDIR=/data/backup/svn-backup 
  13. [ -d ${BACKDIR} ] || mkdir -p ${BACKDIR} 
  14. LogFile=${BACKDIR}/svnbak.log 
  15. [ -f ${LogFile} ] || touch ${LogFile} 
  16.  
  17. if [ ! -d ${BACKDIR}/${DATE} ]; then 
  18.    mkdir ${BACKDIR}/${DATE
  19. fi 
  20.  
  21. if [ -d ${BACKDIR}/${OLDDATE} ]; then 
  22.    rm -rf ${BACKDIR}/${OLDDATE} 
  23. fi 
  24.  
  25. echo " " >> ${LogFile} 
  26. echo `date +"%Y-%m-%d %H:%M:%S"` >> ${LogFile} 
  27. echo "***Subversion Backup Notification***" >> ${LogFile} 
  28. /usr/bin/printf "Host:    `hostname`
    Address: ${IP}
    Date:    ${DATE}
    "
     >> ${LogFile} 
  29.  
  30.  
  31. for PROJECT in rest report android eblast 
  32. do 
  33.   cd ${SVNDIR} 
  34.   ${SVNADMIN} hotcopy ${PROJECT} ${BACKDIR}/${DATE}/${PROJECT} --clean-logs 
  35.  
  36.   cd ${BACKDIR}/${DATE
  37.   tar zcvf ${PROJECT}_svn_${DATE}.tar.gz ${PROJECT} > /dev/null 
  38.   rm -rf ${PROJECT} 
  39.  
  40.   echo "Repository: ${PROJECT} backup done into ${BACKDIR}/${DATE}/ Successful!" >> ${LogFile} 
  41.   /bin/sleep 2