歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

SubVersion定期完整備份腳本(Linux)

  說明:請根據自己需要調整. 本人不對此文章造成的任何後果負責,請慎重使用. 腳本功能: 定期對一些項目進行完整備份. project.lst 文件格式如下: project1 project2 備份腳本如下: #!/bin/sh # # subversion data backup script # by scud http://www.jscud.com # 2005-11-27 # # subversion完整備份的腳本,調整好後使用crontab -e 放到自動執行裡面即可. # #備份日志文件 LogFile=/backup/svn/svnbak.log DATE=`date +%Y%m%d` #備份目錄 BakDir=/backup/svn/data #日常備份目錄,如果有 DailyDir=/backup/svn/daily #要備份的項目列表文件,只有項目名 ProjectLst=/backup/svn/project.lst #所有項目都保存在這個目錄下 SvnDir=/var/svn #svnadmin程序的路徑 SVNADMIN=/app/subversion/bin/svnadmin echo " " >> $LogFile echo " " >> $LogFile echo "-------------------------------------------" >> $LogFile echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile echo "--------------------------" >> $LogFile cd $BakDir #讀取項目列表 PROJECTLIST=`cat $ProjectLst` for project in $PROJECTLIST do projectdata=$SvnDir/$project destdir=$BakDir/$project dumpfile=$DATE.$project.tgz if [ -f $BakDir/$dumpfile ] then echo "backup file have exist!" >>$LogFile else $SVNADMIN hotcopy $projectdata $destdir --clean-logs tar czvf $dumpfile $destdir >/dev/null rm -fr $project echo "backup $project done into $dumpfile ">>$LogFile fi ## delete old tgz 此處根據crontab的時間調整,例如一周一次備份,此處保留了5份備份,以前的刪除 oldfile="$BakDir/"$(date +%y%m%d --date=’28 days ago’).$project.tgz if [ -f $oldfile ] then rm -f $oldfile >> $LogFile 2>&1 echo "[$oldfile]Delete Old File SUCcess!" >> $LogFile else echo "[$oldfile]No Old Backup File!" >> $LogFile fi done #delete previous daily backup files cd $DailyDir rm -f * 根據自己的設置配置好後,使用crontab 放到定時執行的任務裡即可. 增量備份的腳本目前還沒有...




Copyright © Linux教程網 All Rights Reserved