2010-03-02 9 views
8

मैं अपने सबवर्सन रिपोजिटरी को रात में कैसे बैकअप ले सकता हूं? मेरे पास एक नेटवर्क ड्राइव है जिसे मैं रिपोजिटरी को रात के आधार पर डंप करना चाहता हूं।सबवर्सन रिपोजिटरी का ऑटो-बैक अप

उत्तर

11

रिपोजिटरी से डंप को खींचने के तरीके पर पुस्तक में Repository Maintenance अध्याय देखें। फिर उदाहरण के लिए एक समयबद्ध सेवा (at या cron का उपयोग करें, या विंडोज ओएस में बहुत अच्छा कार्य शेड्यूलर, अपने सर्वर के सिस्टम पर निर्भर करता है) रात को डंप निष्पादित करने के लिए। किया हुआ।

+0

भंडार के आकार के आधार पर एक डंप ऐसा करने का सबसे अच्छा तरीका नहीं है, क्योंकि डंप बनाने और डंप को बहाल करने में कुछ समय लगेगा। आपको svnadmin हॉटकॉपी –

+0

का उपयोग करना चाहिए एसवीएनबुक का लिंक पुराने संस्करण में जाता है – bahrep

6

एसवीएन पुस्तक में Repository Backup पर एक अनुभाग है।

svnadmin hotcopy कमांड आपको सुरक्षित भंडार को सुरक्षित रूप से बैकअप करने की अनुमति देता है।

svnsync कमांड एक और संभावना है।

1

मैंने अभी नौकरी करने के लिए एक छोटी सी लिपि लिखी है। पहला रन पूर्ण बैकअप करता है, प्रत्येक आगे की दौड़ पिछले बैकअप के दौरान आखिरी कामों में केवल वृद्धि होती है। बैकअप फ़ाइलों को प्रक्रिया को ट्रैक करने के लिए अंतिम संशोधन की संख्या प्राप्त होगी।

के लिए

WORKDIR=path to where this script resists

SVN_REPO_LOCATION=path to where the repository resists on hd

BACKUPDIR=path to where the backup should goes to

SVN_LOACTION=root location which you use in your svn command

सही सेटिंग्स को सेट करें और cronjob के लिए स्क्रिप्ट जोड़ने, यह thats।

#!/bin/bash 
WORKDIR=/home/user/svnbackup 
SVN_REPO_LOCATION=/opt/svn 
BACKUPDIR=./backup 
SVN_LOACTION=https://mysvn.server.com/svn 

cd $WORKDIR; 
CURRENT_VERSION=`svn info $SVN_LOACTION | grep Revision | awk '{print $2}'` 
LAST_VERSION=`cat svn.version 2>/dev/null` 
mkdir -p $BACKUPDIR; 
if [ "$LAST_VERSION" = "" ] 
then 
     echo fullbackup; 
     svnadmin dump -q $SVN_REPO_LOCATION > $BACKUPDIR/svn_backup_$CURRENT_VERSION.dump; 
     echo $CURRENT_VERSION > svn.version; 
else 
     if [ "$LAST_VERSION" == "$CURRENT_VERSION" ] 
     then 
       echo backup not necessary; 
     else 
       echo incremental; 
       svnadmin dump -q $SVN_REPO_LOCATION -r$LAST_VERSION:$CURRENT_VERSION --incremental > $BACKUPDIR/svn_backup_$CURRENT_VERSION.dump; 
       echo $CURRENT_VERSION > svn.version; 
     fi 
fi