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

條評論

b11063a9e6c7d72d354f4047630e4d97.png

金鑫??2011-08-03

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

cf43af3bbf389cd35a8b9b6a6ddd8254.png

徐磊??2011-08-03

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

46fce0f6e62927f883752e07a9149682.png

劉旸??2011-08-15

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

請 登錄 后發表評論

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531925.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531925.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531925.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python如何刪除對象屬性_如何優雅的刪除對象中的指定屬性?

要優雅的話&#xff0c;使用 Lodash 的 omit 方法移除不要的屬性&#xff1a;const object { a: 1, b: 2, c: 3 };const result _.omit(object, [a, c]);// > { b: 2 }或者用 pick 方法只留下需要的屬性&#xff1a;const object { a: 1, b: 2, c: 3 };const result _.p…

java接口的應用舉例

/* 接口的理解&#xff1a; 接口就是前期定義一個規則&#xff01;某一個類A&#xff0c;為了擴展自身的功能&#xff0c;對外提供這個接口&#xff0c;后期只要是符合這個接口&#xff08;規則&#xff09; 的類&#xff08;這個類是接口的子類&#xff09;&#xff0c;將子類…

linux 關閉scp服務器,Linux系統如何關閉scp和sftp命令

Linux系統如何關閉scp和sftp命令。sftp介紹sftp是Secure File Transfer Protocol的縮寫&#xff0c;安全文件傳送協議。可以為傳輸文件提供一種安全的加密方法。sftp 與 ftp 有著幾乎一樣的語法和功能scp介紹兩臺主機之間傳輸文件一般使用scp命令,通常用scp命令通過ssh獲取對方…

自動補足算法是什么_如何自定義Shell(Fish版)的自動補全規則?

默認fish能自動補全的命令已經相當多了,常見的apt-get&#xff0c;rpm等都沒問題&#xff0c;但今天卻發現沒有lsusb的補全規則,查看了下文檔&#xff0c;發現規則比bash-completion簡單不少&#xff0c;記錄下&#xff5e;簡單補全1. 建立自動補全規則文件默認自動補全路徑由全…

嵌入式Linux安裝Python環境,linux環境下安裝python 3

說明&#xff1a;在linux環境下&#xff0c;都默認安裝python 2的環境&#xff0c;由于python3在python2的基礎上升級較大&#xff0c;所以安裝python 3環境用于使用最新的python 3的語法。安裝過程&#xff1a;1.下載&#xff0c;上傳python 3源碼包至服務器2.解壓縮python 3壓…

java接口中多繼承的問題

java中支撐多繼承嗎&#xff1f; 支持-》接口啊 為什么接口支持多繼承呢&#xff1f;因為接口中沒有方法體&#xff01;即使可能兩個接口中有一樣的抽象方法&#xff0c;但是 只會調用子類中覆蓋該同樣抽象方法的具體方法&#xff01;不會引起調用的歧義&#xff01; interface…

圖案設計靈感怎么寫_平面設計理念怎么寫100多字

平面設計求職者在找工作的過程中,有時個人簡歷起著很重要的作用。下面是由小編整理而成的平面設計簡歷范文參考&#xff0c;謝謝你的閱讀。平面設計簡歷范文參考(一)xxx一年以上工作經驗|男|27歲(3月11日)居住地&#xff1a;杭州電話&#xff1a;151*******(手機)E-mail&#x…

java匿名類和匿名對象及this的其他用法

/* 匿名內部類&#xff1a;就是內部類的簡寫格式。 必須前提&#xff1a;內部類必須繼承或者實現一個類或者接口。 匿名內部類其實就是一個匿名 子類對象。 格式&#xff1a;new 父類對象 or 接口(){子類內容&#xff1b;&#xff08;覆蓋父類的&#xff0c; 而且可以增加自己的…

linux下drcom無法上網,drcom為什么還是不能上網啊!

drcom為什么還是不能上網啊&#xff01;發布時間:2010-04-28 20:56:56來源:紅聯作者:hualong[is] 本帖最后由 hualong 于 2010-4-30 16:45 編輯 [/i]主要是因為我搞很久的drcom&#xff0c;還是不能上網啊&#xff01;&#xff01;截一個圖讓前輩們幫忙分析一下。安裝了bulid-e…

python集合的加減_python 中對list做減法操作

問題描述&#xff1a;假設我有這樣兩個list&#xff0c;一個是list1&#xff0c;list1 [1, 2, 3, 4, 5]一個是list2&#xff0c;list2 [1, 4, 5]我們如何得到一個新的list&#xff0c;list3&#xff0c;list3中包括所有不在list2中出現的list1中的元素。即&#xff1a;list3 …

java中Comparable實現對象的比較

/* class A implements Comaprable<A>{ } 那么 A x new A(); 類關系圖 Object o A; Object Comparable c A; | Comparable A 實現了 Comparable 接口嘛 …

linux db2 歸檔,DB2的歸檔模式設置方法

當做在線備份&#xff0c;即加上online參數后&#xff0c;可以看到如下告警&#xff1a;[db2inst1localhost backup]$ db2 backup db sample online to /dev/nullSQL2413N Online backup is not allowed because the database is not recoverableor a backup pending condition…

css提取頁面元素唯一性_下面這個函數,能夠獲取一個元素的任意 CSS 屬性值。...

在對網頁進行調試的過程中&#xff0c;經常會用到js來獲取元素的CSS樣式&#xff0c;方法有很多很多&#xff0c;現在僅把我經常用的方法總結如下&#xff1a;1. obj.style&#xff1a;這個方法只能JS只能獲取寫在html標簽中的寫在style屬性中的值(style”…”)&#xff0c;而無…

Linux檢查依賴庫,linux 查看依賴庫

readelf -d libsurfaceflinger.so打印出來的數據如下&#xff1a;Dynamic section at offset 0xb4 contains 37 entries:Tag Type Name/Value0x00000001 (NEEDED) Shared library: [liblog.so]0x00000001 (NEEDED) …

java中final注意的問題

public class Test{public static void main(String[] args){Person p new Person();} } /* 4.修飾的變量是一個常量(所有字符都大些 XXX 或者 XXX_XXX)&#xff0c;只能賦值一次!final 固化的都是顯示初始化的值(定義并初始化)&#xff08;或者構造函數中的特定初始化的值&am…

android判斷點擊次數_Android應用統計-使用時長及次數統計(一)

關鍵字&#xff1a; 應用統計 Android源碼 應用使用時長 應用使用次數最近在做有關于應用統計有關的工作&#xff0c;主要是統計系統中客戶端應用(非系統自帶的那些基礎應用&#xff0c;比如DownLoadManager)&#xff0c;在每一天的使用情況&#xff0c;統計內容包括&#xff1…

linux+cp+-rdf,簡單構建基于RDF和SPARQL的KBQA(知識圖譜問答系統)

本文主要通過python實例講解基于RDF和SPARQL的KBQA系統的構建。該項目可在python2和python3上運行通過。注&#xff1a;KBQA即是我們通常所說的基于知識圖譜的問答系統。這里簡單構建的EasyKBQA&#xff0c;數據來源于網絡&#xff0c;源碼地址看下面補充說明。目錄&#xff1a…

java中Object.equals()簡單用法

/* equals&#xff08;&#xff09;方法默認的比較兩個對象的引用&#xff01; */ class Child {int num;public Child(int x){num x;}//人文的拋出運行時異常的好處是&#xff1a;可以自定義錯誤信息&#xff01;/*public boolean equals(Object o) throws ClassCastExceptio…

cmd imp導入dmp文件_oracle導入dmp文件的2種方法

使用imp、impdp方式導入數據1.使用imp導入數據打開cmd窗口&#xff0c;然后直接敲入一下命令即可&#xff0c;需要注意的是&#xff0c;要事先把dmp文件放到正確的路徑中去imp yx_base/yx_192. file E:\yxb\yx_base.dmp log E:\yxb\yx_base.log full y2.使用impdp導入數據(1…

from server sql 拼接統計兩個子查詢_[SQL SERVER系列]之嵌套子查詢和相關子查詢

子查詢有兩種類型&#xff0c;一種是只返回一個單值的子查詢&#xff0c;這時它可以用在一個單值可以使用的地方&#xff0c;這時子查詢可以看作是一個擁有返回值的函數&#xff1b;另外一種是返回一列值的子查詢&#xff0c;這時子查詢可以看作是一個在內存中臨時存在的數據表…