Linux SVN伺服器做定時全量備份腳本:
進入目錄:cd /root/svn/
建立sh檔案:week_backed_up.sh
檔案内容:
#!/bin/bash
#function:SVN全量備份
#Author: wangmuming
svn_repos="/data/svndata/companyname" #版本庫目錄
backup_dir="/usr/svn/backup" #備份目錄
next_backup_file="week_incremental_backup".`date +%Y%m%d`
log="$backup_dir/week_backed_up.log" #日志檔案
echo "********************"`date`"***************">> $log
echo "SVN ALL DUMP start!">> $log
last_rev="`/usr/local/subversion/bin/svnlook youngest $svn_repos`" #最新版本
if [ -f $next_backup_file ];then
echo "No new revisions to backup."
exit 0
else
/usr/local/subversion/bin/svnadmin dump --incremental --revision 0:$last_rev $svn_repos > $backup_dir/$next_backup_file #0版本,到最新版本的全量備份
fi
echo "Last:$last_rev">> $log #記錄版本庫最新版本
#删除30天之前的備份資料
find $backup_dir -type f -mtime +30 -exec rm -rf {} \; | tee -a $log
echo "********************"`date`"***************">>$log
建立定時任務:crontab -e
10 2 * * 0 /bin/sh /root/svn/week_backed_up.sh
啟動定時任務:service crond start
此腳本可以手動調用;
/usr/svn/backup 目錄:
-rw-r--r-- 1 root root 2198 Jul 7 09:38 week_backed_up.log
-rw-r--r-- 1 root root 4471965478 Jul 7 09:36 week_incremental_backup.20150707
至此,svn定時全量備份完成。