6 Aralık 2012 Perşembe

svadmin dump ile yedek alma

SVN sunucuda bulunan proje depolarının(repository) yedeğini almak için svnadmin komutu dump parametresi ile kullanılabilir.

Bu komut svn sunucusunun kurulu olduğu makinada root kullanıcısı ile verilmelidir.


# svnadmin dump /var/svn/surgatedev > surgatedev.svndump
* Dumped revision 0.
* Dumped revision 1.
* Dumped revision 2.
* Dumped revision 3.
* Dumped revision 4.
* Dumped revision 5.
* Dumped revision 6..


Bu işlem sonunda projeye ait tüm svn yedeği surgatedev.svndump dosyasında bulunacaktır. Dosya dah az yer kaplasın diye gzip ile sıkıştırabilirsiniz.

 # ls -al surgatedev.svndump
-rw-r--r-- 1 root root 25554628 Dec  6 10:39 surgatedev.svndump
# gzip  surgatedev.svndump

Linux'de | kullanarak da dump esnasında sıkıştırma yapabilirsiniz.

 # svnadmin dump /var/svn/surgatedev | gzip >  surgatedev.svndump.gz
# ls -alh surgatedev.svndump*
-rw-r--r-- 1 root root 25M Dec  6 10:39 surgatedev.svndump
-rw-r--r-- 1 root root 14M Dec  6 10:44 surgatedev.svndump.gz

Eğer birden fazla proje deponuz varsa bu işlemi tek tek tüm projeler için vermek zorundasınız.
Bu işlemi kolaylaştırmak için basit bir kabuk programı yazılabilir.


----script başlangıcı
#!/bin/sh

SVNDIR=/var/svn
BACKUPDIR=/backup/svnbackup

mkdir -p $BACKUPDIR  #create backup directory if not exit
for i in `ls $SVNDIR`
 do
    if [ -d $SVNDIR/$i ] ; then  #repo must be a directory, ingore svnpass, svnauth etc files
    echo "svn repo backup for $i"
    svnadmin dump $SVNDIR/$i | gzip > $BACKUPDIR/$i.backup.gz
    fi;
       
done


--script sonu-----

Bu scripti crontab'a ekleyerek düzenli aralıklarla yedek alabilirsiniz.
svnadmin dump parametresine ek olarak svnadmin hotcopy parametresi vardır. hotcopy repo dizinini hızlı bir şekilde kopyalamak için kullanılır. Yedeğin geri dönüleceği sunucuda tüm svn ayarlarının aynı olması gerekir. Bu yüzden hotcopy yerine dump kullanılmasını tavsiye ederim.



Hiç yorum yok:

Yorum Gönder