国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
svn的備份與還原怎么用腳本實現(xiàn)svn備份(linux/windows)
svn的備份與還原
倉庫中版本的備份及還原形式主要有兩種:
方式一:直接備份倉庫整個文件夾(全部版本),重裝svn程序后直接還原過去。
方式二:通過svn命令行備份和還原指定版本號的數(shù)據(jù)
全備份:使用svnadmin hotcopy或svnsync來做,例:
svnadmin hotcopy path/to/repository path/to/backup –clean-logs
增量備份:使用svnadmin dump的–incremental選項來實現(xiàn)
svnadmin dump 版本庫路徑及名稱 –revision 上次導(dǎo)出的版本號:到本次要導(dǎo)出到的版本號 –incremental > 導(dǎo)出的命名
還原版本:svnadmin load 要恢復(fù)的版本庫路徑及名稱 < 導(dǎo)出的命名
svnadmin hotcopy path/to/repository path/to/backup –clean-logs
一個技巧:如果你有一個較大的Subsersion版本庫而你又想用最少的空間來將它備份下來,用這個命令(請將/repo替換成你的版本庫路徑)吧:
svnadmin dump –deltas /repo |bzip2 |tee dump.bz2 | md5sum >dump.md5
分步解釋:最重要的一步是 -deltas,將消耗更多的CPU資源,但擁有更有效的差異存儲辦法。
bzip2壓縮方案比gzip慢,但換來的更好的壓縮率。
更有趣的是,tee方法將壓縮的數(shù)據(jù)流轉(zhuǎn)向到文件dump.bz2,同時將其輸出到標(biāo)準(zhǔn)輸出,后者有轉(zhuǎn)向給了MD5摘要計算工具。
要恢復(fù)這個版本庫,檢查校驗值(md5sum創(chuàng)建的),創(chuàng)建一個空的版本庫,恢復(fù)備份:
md5sum -c dump.md5 <dump.bz2
svnadmin create newrepo
bzcat dump.bz2 | svnadmin load newrepo
請享受壓縮后用MD5校驗的備份吧,最后別忘記將dump.md5和dump.bz2存儲到真正安全的地方!
http://www.linuxpf.com.cn/bbs/viewthread.php?tid=304&extra=page%3D1 用腳本實現(xiàn)svn備份2008-04-17 18:09
文章出于:http://hi.baidu.com/zhangwf/blog/item/f94ca8518a5aa38a8d54305b.html
vi baksvn
#!/bin/bash
# Program:
#         This program is subversion data backup script
# History:
#         2008/04/17        zwf        1.0
#---------------------------------------------------------------
LogFile=/var/backup/svnbak.log
DATE=`date +%Y%m%d`
BakDir=/var/backup
ProjectLst=/var/backup/conf/project.lst
SvnDir=/home/svn
SVNADMIN=/usr/local/bin/svnadmin
echo "svn backup start at $(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 zcvf $dumpfile $project > /dev/null
rm -fr $project
echo "backup $project done into $dumpfile ">>$LogFile
fi
oldfile="$BakDir/"$(date +%Y%m%d --date='2 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
echo " " >> $LogFile
done
echo "------------------------------------------------" >> $LogFile
echo "svn backup end at $(date +"%y-%m-%d %H:%M:%S")" >> $LogFile
echo " " >> $LogFile
假如你想把svn備份到另外一臺電腦上的話,可以在這段script中再加入下面這段代碼來利用FTP自動備份到另外的電腦上??!
#The shell script will automatically put the backup file
# from this host to another hosts
#
FTP_SERVER="10.8.1.65"
USERNAME="zwf"
PASSWD="1212"
FTP_QUERY_PATH="/opt/raid/svnbak"
FILE_NAME=`date +%Y%m%d`*.tgz
DELFILE=`date +%Y%m%d --date='2 days ago'`*.tgz
ftp -i -n $FTP_SERVER<<AUTO_FTP
user $USERNAME $PASSWD
passive
binary
cd $FTP_QUERY_PATH
mdelete $DELFILE
mput $FILE_NAME
AUTO_FTP
rm -rf $FILE_NAME
以下文字詳見:《[url=]使用Subversion進行版本控制[/url]》一書 http://www.subversion.org.cn/svnbook/
我們也可以利用Subversion開發(fā)小組提供的備份腳本來對svn倉庫進行備份。Subversion源文件分發(fā)版本的tools/backup/目錄有一個hot-backup.py文件。只要給定了版本庫路徑和備份路徑,hot-backup.py—一個包裹了svnadmin hotcopy但更加智能的命令—將會執(zhí)行必要的步驟來備份你的活動的版本庫—不需要你首先禁止公共的版本庫訪問—而且之后會從你的版本庫清理死掉的伯克利日志文件。
甚至當(dāng)你用了一個增量備份時,你也會希望有計劃的運行這個程序。舉個例子,你考慮在你的調(diào)度程序(如Unix下的cron)里加入hot-backup.py,或者你喜歡更加細致的備份解決方案,你可以讓你的post-commit的鉤子腳本執(zhí)行hot-backup.py,這樣會導(dǎo)致你的版本庫的每次提交執(zhí)行一次備份,只要在你的hooks/post-commit腳本里添加如下代碼:
(cd /path/to/hook/scripts; ./hot-backup.py ${REPOS} /path/to/backups &)作為結(jié)果的備份是一個完全功能的版本庫,當(dāng)發(fā)生嚴(yán)重錯誤時可以作為你的活動版本庫的替換。
兩種備份方式都有各自的優(yōu)點,最簡單的方式是完全備份,將會每次建立版本庫的完美復(fù)制品,這意味著如果當(dāng)你的活動版本庫發(fā)生了什么事情,你可以用備份恢復(fù)。但不幸的是,如果你維護多個備份,每個完全的備份會吞噬掉和你的活動版本庫同樣的空間。
順便轉(zhuǎn)載一段關(guān)于鉤子腳本的敘述
[url=]鉤子腳本[/url] Hook scripts
掛勾 (hook) 是改動檔案庫時所觸發(fā)的程序, 比如當(dāng)你提交更動前,會先觸發(fā)pre-commit,提交更動后,則會觸發(fā)post-commit,我們可以利用hook來實現(xiàn)一些自動控制。檔案庫的hook 子目錄中, 預(yù)設(shè)是放置各個檔案庫掛勾的范本:
post-commit.tmpl
pre-revprop-change.tmpl
post-revprop-change.tmpl
start-commit.tmpl
pre-commit.tmpl
如果要使用這些hook,就必須把它的后綴名.tmpl去掉,拷貝為
post-commit
pre-revprop-change
post-revprop-change
start-commit
pre-commit
這里主要介紹pre-commit和post-commit(事實上它們就是在特定的情況下被觸發(fā)的普通的shell程序,至于shell的內(nèi)容由用戶自己隨意編寫,但是要保證名稱不能改動)
pre-commit
本掛勾執(zhí)行的時間為異動完成之后, 送交之前.檔案庫會傳遞兩個自變量給這個程序: 檔案庫的路徑, 以及準(zhǔn)備送交的異動名稱. 如果程序傳回一個非零的結(jié)束值, 送交會被中止, 而異動會被刪除.
如何應(yīng)用pre-commit我們不妨舉個例子:
假如有一個項目由Mail Team,Login Team和PHP Team三個Team共同通過SVN系統(tǒng)開發(fā)完成。當(dāng)項目準(zhǔn)備發(fā)布的時候, PM人員發(fā)現(xiàn)Mail功能方面存在一些 bug,需要Mail Team去修改,為了防止其它Team的人員修改系統(tǒng),我們可以在任何改動檔案庫的企圖之前用pre-commit去檢查log message信息,(因為任何更動檔案庫的操作都必須提供log message信息,PM可以事先輿 Mail Team約定好一個log message),如果輿pre-commit中設(shè)定的log message不相符,則不能提交更動。
pre-commit源程序如下:
#!/bin/sh
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/local/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | \
grep –w "bug1234" > /dev/null || exit 1
exit 0
本例中的log message為”bug1234”,任何人想要提交更動就必須用 –m “bug1234”參數(shù),采用-m “bug123”,-m “bug12345”都會提交失敗。
post-commit
本掛勾執(zhí)行的時間是在異動送交, 新修訂版被建立之后. 大多數(shù)的人用這個掛勾來寄出關(guān)于本次送交的電子郵件, 或是建立檔案庫的備份. 檔案庫會傳遞兩個自變量給這個程序: 檔案庫的路徑, 以及新建立的修訂版號. 本程序的結(jié)束碼會被忽略.
Subversion 源碼樹的 tools/hook-script 目錄中包含了一個 commit-email.pl 命令,可以用來寄送包含描述指定送交的電子郵件. 這個郵件包含了更動路徑列表, 該送交所對應(yīng)的記錄訊息, 使用者, 送交的日期,以及一個以 GNU diff 樣式表示的本次更動差異. 我們可以將這個程序輿post-commit這個hook搭配起來使用來實現(xiàn)檔案庫更動后自動mail給相關(guān)人員的功能。
post-commit源程序如下:
#!/bin/sh
REPOS="$1"
REV="$2"
commit-email.pl "$REPOS" "$REV" PM@yourdomain.com #####需要指明commit-email.pl的絕對路徑
http://www.cnblogs.com/zealic/archive/2008/11/26/1341784.html SVN 簡單備份與還原 (windows腳本)
備份 SVN 倉庫是很麻煩的事,而 Coder 通常是很怕麻煩的人,于是 Zealic 就為減少麻煩,花了一點麻煩的時間,寫了兩個麻煩的腳本,解決了這個麻煩的問題。
1.備份腳本 DumpAll.bat   。。。@rem 7za a Repos_%VAR_DATE%.7z *.bin 【需要修改為   jar cvf Repos_%VAR_DATE%.jar *.bin】
2.還原腳本 LoadAll.bat。。。手工解壓.bin文件后,當(dāng)前目錄下刪除所有目錄,否則無法運行。
 
本文來自[Svn中文網(wǎng)]轉(zhuǎn)發(fā)請保留本站地址:http://www.svn8.com/SVNSY/20090605/6174.html
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux下SVN的三種備份方式
svn遷移,備份,重裝系統(tǒng)后恢復(fù)數(shù)據(jù) 收藏
[轉(zhuǎn)]windows下svn限制強制寫日志及只能修改自己日志腳本 - 一直在努力 - 博客...
●SVN用shell腳本限制上傳文件的大小及類型●解決方案
SVN的鉤子--限制強制寫日志(log)
centos7 搭建svn服務(wù)器
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服