簡單實現SVN增量備份

2021-09-04 11:23:23 字數 1804 閱讀 4330

隨著業務的拓展和開發的深入,svn開發庫的體積越來越龐大。原先每天凌晨對開發庫進行全庫備份的做法滿足不了新的需求,於是考慮到對svn庫做增量備份。基於時間和精力有限的前提下,我們首先考慮使用shell指令碼實現,採用最土的svnadmin dump方式。花最少的時間,達到最想要的結果,無需大段華麗的**,簡單有效即可。

首先是全庫備份指令碼,計畫每個月1號的凌晨1點執行一次,凌晨1點程式猿更新**的機率大致為零。

[root@dev ~]# echo '00 01 1  *  *    /usr/local/scripts/incr0_svn.sh' > /var/spool/cron/root 

[root@dev ~]# cat /usr/local/scripts/incr0_svn.sh

#!/bin/sh

date=$(date +%y%m%d:%h:%m:%s)       #定義時間變數,用於檔名字尾

svn_dir=/svn_data/jsb               #定義svn庫目錄變數

svn_bak_dir=/svn_data/backup/       #定義備份檔案存放目錄變數

echo '0' > /tmp/jsb_svn_id          #初始化版本號,全庫備份一定是從0版本號開始

num1=$(cat /tmp/jsb_svn_id)         #取初始化版本號

num2=$(svnlook youngest $svn_dir)   #取當前最新的版本號

#開始備份

svnadmin dump $svn_dir  -r $num1:$num2  --incremental >  $svn_bak_dir/jsb_bak_$date   

#判斷備份是否成功,若成功,則記錄當前最新的版本號到臨時檔案中,用於下次增量備份使用

if [ $? -eq 0 ];

then

echo $num2 > /tmp/jsb_svn_id

else

echo "backup fail...."

fi

其次是增量備份指令碼,計畫每天凌晨2點執行一次

[root@dev ~]# echo '00 02 *  *  *    /usr/local/scripts/incr1_svn.sh' > /var/spool/cron/root 

[root@dev ~]# cat /usr/local/scripts/incr1_svn.sh

#!/bin/sh

date=$(date +%y%m%d:%h:%m:%s)       #定義時間變數,用於檔名字尾

svn_dir=/svn_data/jsb               #定義svn庫目錄變數

svn_bak_dir=/svn_data/backup/       #定義備份檔案存放目錄變數

num1=$(cat /tmp/jsb_svn_id)         #取初始化版本號

num2=$(svnlook youngest $svn_dir)   #取當前最新的版本號

#開始備份

svnadmin dump $svn_dir  -r $num1:$num2  --incremental >  $svn_bak_dir/jsb_bak_$date   

#判斷備份是否成功,若成功,則記錄當前最新的版本號到臨時檔案中,用於下次增量備份使用

if [ $? -eq 0 ];

then

echo $num2 > /tmp/jsb_svn_id

else

echo "backup fail...."

fi

簡單實現SVN增量備份

隨著業務的拓展和開發的深入,svn開發庫的體積越來越龐大。原先每天凌晨對開發庫進行全庫備份的做法滿足不了新的需求,於是考慮到對svn庫做增量備份。基於時間和精力有限的前提下,我們首先考慮使用shell指令碼實現,採用最土的svnadmin dump方式。花最少的時間,達到最想要的結果,無需大段華麗的...

SVN增量備份一 svnsync

源庫 8001 svn projects 新建的 庫 要求 8001 svn projects是開發的 源庫,http localhost svn projects是源庫的映象庫,做增量備份。1.建立bat檔案pre revprop change.bat echo changing revision...

SVN增量備份一 svnsync

源庫 8001 svn projects 新建的 庫 要求 8001 svn projects是開發的 源庫,http localhost svn projects是源庫的映象庫,做增量備份。1.建立bat檔案pre revprop change.bat echo changing revision...