SVN Incremental Backup

SVN_VAR=/opt/svnbackup_files

DATETIME=`date +%Y%m%d`

#for rep in ${SVN_REPPATH}/*;  #1
for word in $(cat /root/backup_repo.txt); #2
do
  TSTAMP=`date +%s`
#  CURR_REV=`${SVN_BINPATH}/svnlook youngest ${rep}` #1
   CURR_REV=`${SVN_BINPATH}/svnlook youngest $SVN_REPPATH/${word}` #2

#  REP_BASE=`basename $rep` #1
  REP_BASE=`basename $word` #2
  if [ -e ${SVN_VAR}/status/dates/${REP_BASE}.dt ] ; then
    REP_LAST_BK_TSTAMP=`cat ${SVN_VAR}/status/dates/${REP_BASE}.dt`
    REP_LAST_BK_REV=`cat ${SVN_VAR}/status/revisions/${REP_BASE}.rev`
  else
    REP_LAST_BK_TSTAMP=0
    REP_LAST_BK_REV=0
  fi

  if [ ${CURR_REV} -gt ${REP_LAST_BK_REV} ] ; then
    echo "**********************************************************"
#   echo "`date --rfc-2822`  - Incremental back up ${rep} : "  #1
    echo "`date --rfc-2822`  - Incremental back up ${word} : " #2
    echo "     oldest revision ${REP_LAST_BK_REV} - newest revision ${CURR_REV}"
    echo


        REP_LAST_BK_REV_1=$((REP_LAST_BK_REV+1))
        DATE=`date +%Y-%B`
        `mkdir -p ${DUMP_DIR}/${DATETIME}/${REP_BASE}/`
        DUMPFILE=${DUMP_DIR}/${DATETIME}/${REP_BASE}/${REP_BASE}-${DATETIME}-${REP_LAST_BK_REV}-${CURR_REV}.repo
        `mkdir -p ${SVN_VAR}/status/dates/`
        `mkdir -p ${SVN_VAR}/status/revisions/`

#    ${SVN_BINPATH}/svnadmin --quiet dump $rep --incremental -r${REP_LAST_BK_REV_1}:${CURR_REV}> ${DUMPFILE} #1
     ${SVN_BINPATH}/svnadmin --quiet dump $SVN_REPPATH/${word} --incremental -r${REP_LAST_BK_REV_1}:${CURR_REV}> ${DUMPFILE}  #2
    echo ${TSTAMP} > ${SVN_VAR}/status/dates/${REP_BASE}.dt
    echo ${CURR_REV} > ${SVN_VAR}/status/revisions/${REP_BASE}.rev
#    bzip2 --compress --best ${DUMPFILE}
    gzip --best ${DUMPFILE}
  fi
done

echo "Backup successfully completed on ${DATETIME}"
#echo `ls -hl ${DUMP_DIR}/*.bz2`
#echo `ls -hl ${DUMP_DIR}/*.dmp`
 #subversion incremental backup
# make sure to get the subversion environment variables
#. /etc/profile.d/subversion.sh
#Note ::
# Option 1 - Read Repository from path SVN Path
# Option 2 - Read repository list from file
# path to subversion binaries
SVN_BINPATH=${SVN_HOME}/bin
# path to parent of all repositories to be dumped
SVN_REPPATH=/var/www/svn
# destination directory for backup files
DUMP_DIR=/home/backup/svn
# status directory
SVN_VAR=/opt/svnbackup_files
DATETIME=`date +%Y%m%d`
#for rep in ${SVN_REPPATH}/*;  #1
for word in $(cat /root/backup_repo.txt); #2
do
  TSTAMP=`date +%s`
#  CURR_REV=`${SVN_BINPATH}/svnlook youngest ${rep}` #1
   CURR_REV=`${SVN_BINPATH}/svnlook youngest $SVN_REPPATH/${word}` #2
#  REP_BASE=`basename $rep` #1
  REP_BASE=`basename $word` #2
  if [ -e ${SVN_VAR}/status/dates/${REP_BASE}.dt ] ; then
    REP_LAST_BK_TSTAMP=`cat ${SVN_VAR}/status/dates/${REP_BASE}.dt`
    REP_LAST_BK_REV=`cat ${SVN_VAR}/status/revisions/${REP_BASE}.rev`
  else
    REP_LAST_BK_TSTAMP=0
    REP_LAST_BK_REV=0
  fi
  if [ ${CURR_REV} -gt ${REP_LAST_BK_REV} ] ; then
    echo "**********************************************************"
#   echo "`date --rfc-2822`  - Incremental back up ${rep} : "  #1
    echo "`date --rfc-2822`  - Incremental back up ${word} : " #2
    echo "     oldest revision ${REP_LAST_BK_REV} - newest revision ${CURR_REV}"
    echo

        REP_LAST_BK_REV_1=$((REP_LAST_BK_REV+1))
        DATE=`date +%Y-%B`
        `mkdir -p ${DUMP_DIR}/${DATETIME}/${REP_BASE}/`
        DUMPFILE=${DUMP_DIR}/${DATETIME}/${REP_BASE}/${REP_BASE}-${DATETIME}-${REP_LAST_BK_REV}-${CURR_REV}.repo
        `mkdir -p ${SVN_VAR}/status/dates/`
        `mkdir -p ${SVN_VAR}/status/revisions/`
#    ${SVN_BINPATH}/svnadmin --quiet dump $rep --incremental -r${REP_LAST_BK_REV_1}:${CURR_REV}> ${DUMPFILE} #1
     ${SVN_BINPATH}/svnadmin --quiet dump $SVN_REPPATH/${word} --incremental -r${REP_LAST_BK_REV_1}:${CURR_REV}> ${DUMPFILE}  #2
    echo ${TSTAMP} > ${SVN_VAR}/status/dates/${REP_BASE}.dt
    echo ${CURR_REV} > ${SVN_VAR}/status/revisions/${REP_BASE}.rev
#    bzip2 --compress --best ${DUMPFILE}
    gzip --best ${DUMPFILE}
  fi
done
echo "Backup successfully completed on ${DATETIME}"
#echo `ls -hl ${DUMP_DIR}/*.bz2`
#echo `ls -hl ${DUMP_DIR}/*.dmp`




Comments

Popular posts from this blog

Steps_to_Install_Magento_2.4.4_on_Ubuntu_20.04

How To Reset Root Password On CentOS 7