日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux svn 备份脚本,SVN热备份脚本

發布時間:2025/3/8 linux 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux svn 备份脚本,SVN热备份脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SVN熱備份腳本

2011-08-03??徐磊

#!/bin/sh

#########################################################

# Script to do incremental rsync backups

# modidfy: wanjie.info

# date: 2010/06/04

# 這個腳本不是xulei寫的,我只是拿來主義,當然如果大家看不明白,可以提問,給予解釋

#########################################################

###################################

# svn backup log path

#? - This is used to log result

###################################

LogFile=~/tmp/svnbackup/svnback.log

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

###################################

# mail address for status updates

#? - This is used to email you a status report

###################################

MAILADDR=webmaster@wanjie.info

###################################

# HOSTNAME and project list

#? - This is also used for reporting

###################################

ProjectLst=~/tmp/svnbackup/projectlist.txt

###################################

# backup directory

# - This is the path to the backup directory

###################################

BackDir=~/tmp/svnbackup/$DATE

BACKUPDIR=~/tmp/svnbackup/$DATE

###################################

# svn directory

# - This is the path to the directory you want to archive

###################################

SVNDIR=~/svn

###################################

# svnadmin path

# - This is the path to the directory you want to archive

###################################

SVNADMIN=/usr/bin/svnadmin

export PATH=$PATH:/bin:/usr/bin:/usr/local/bin

# our actual rsyncing function

# 這個函數主要是在備份日志里面打上時間,用了個前面date命令獲取到的日期

do_accounting()

{

echo " " >> $LogFile

echo " " >> $LogFile

echo "###########################" >> $LogFile

echo "$DATE" >> $LogFile

echo "###########################" >> $LogFile

cd $BackDir

}

# do_svndump就是這個腳本最主要的部分,通過使用svnadmin dump命令

# 來進行備份。對于SVN的Repository來說,不同數據倉儲是按文件夾的形式

# 進行管理的,備份出來的是xxx.dump,這個文件是相當有用處的,無論你是

# 在linux下恢復配置庫,還是windows下恢復都可以使用。腳本里面決定是否進行

# 新的備份,是通過xxx.youngest的日志文件的內容來判斷的。

do_svndump()

{

PROJECTLIST=`cat $ProjectLst`

cd $SVNDIR

for project in $PROJECTLIST

do

echo "begin to dump $project databases" >> $LogFile

if [ ! -f $BACKUPDIR/$project.dump ]

then

YOUNGEST=`svnlook youngest $project`

svnadmin dump $project > $BACKUPDIR/$project.dump

echo "OK,dump file successfully!!"

echo "$YOUNGEST" > $BACKUPDIR/$project.youngest

else

echo "$project.dump existed,will do increatment job" >> $LogFile

if [ ! -f $BACKUPDIR/$project.youngest ]

then

echo "error, no youngest check!" >> $LogFile

else

PREVYOUNGEST=`cat $BACKUPDIR/$project.youngest`

NEWYOUNGEST=`svnlook youngest $project`

if [ $PREVYOUNGEST -eq $NEWYOUNGEST ]

then

echo " no database updated!" >> $LogFile

else

LASTYOUNGEST=`expr $PREVYOUNGEST + 1`

echo "last youngest is $LASTYOUNGEST" >> $LogFile

svnadmin dump $project --revision $LASTYOUNGEST:$NEWYOUNGEST --incremental > $BACKUPDIR/$project-$LASTYOUNGET-$NEWYOUNGEST.$DATE

echo "$NEWYOUNGEST" > $BACKUPDIR/$project.youngest

fi

fi

fi

done

}

# our post rsync accounting function

# 這個就是把你日志文件的內容當做郵件發送

do_mail()

{

mail $MAILADDR -s svn-back_log < $LogFile

}

# some error handling and/or run our backup and accounting

do_accounting && do_svndump && do_mail

-------------------------------------------------------------------------------------------------------

這個是比較麻煩的,要是想簡單,可以直接hotcopy之后,然后就tar壓縮,不用dump備份,因為dump是相當的花時間的。要是天天都備份的話,就很悲劇。

腳本的衍生就是,你可以把你備份出來的東西放置該機器的ftp上,然后再用其他的機器通過腳本,拷走配置庫的備份,因為誰都不知道svn服務器是不是會down掉,要是down掉了,一旦你的備份又是在svn服務器上,那就白備份了。

0

該文章對我有幫助

359°|3568 人閱讀|3

條評論

金鑫??2011-08-03

要是在配合 注釋 就完美了??呵呵

徐磊??2011-08-03

金鑫: 要是在配合 注釋 就完美了??呵呵ok 沒問題 重新編輯下

劉旸??2011-08-15

呵呵,還以為是keepalived的腳本呢

請 登錄 后發表評論

總結

以上是生活随笔為你收集整理的linux svn 备份脚本,SVN热备份脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。