Çarşamba, Mart 17, 2010

DAR (Disk Arshive)

Yedekleme başlı başna bir iştir aslında. Hatta başlı başına bir sorundur da denebilir. Pek çok çözüm var yedekleme için. rsync, tar gibi programlar en çok kullanılanları. Fakat istediğim şey bir backup dosyasını kendine referans alması ve ona göre sadece değişen/yeni eklenen dosyaların yedeğini alması. (rsync bu sorunu çözüyor ama hep aynı klasöre aldığı için dosyaların önceki versiyonlarına ulaşılamıyor. En azından ben çözümünü bulamadım rsync ile :) )
Her neyse bu konuda ciddi anlamda ihtiyaç görecek olan dar (Disk Archive) uygulaması. (http://dar.linux.free.fr/)
Yedeklemeden bahserken bir kaç temel konuyu bahsetmezsek olmaz.

Full Backup (Tam Yedek):
Sistemin (veya belirtilen klasörün) tamamının yedeği

Incremental Backup (Artımlı yedek):
Tam yedeğin ardından, sadece değişen, eklenen dosyalarının yedeğinin alınması işlemi. Artımlı yedekte bir önceki artımlı yedek referans alınarak yapıldığı için dosya boyutları küçüktür. Fakat artımlı yedeklerin geri dönüşünde tüm artımlı yedeklerden tek tek dönülmelidir.
Pazartesi --> Full
Salı --> Inc (pazartesiden beri değişenler)
Çarş --> Inc (Salıdan beri değişenler)
Perş --> Inc (Çarşambadan beri değişenler)
Cuma --> Inc (Perşembeden beri değişenler)

Differantial Backup (Fark Yedek): Fark yedekler de aslında artımlı yedek gibidir. Sadece değişen/eklenen dosyaların yedeğini alır. Fakat her seferinde kendisine tam yedeği referans aldığından bir önceki fark yedek içeriği bir sonraki fark yedek dosyasında da vardır. Dosya boyutu büyüktür. Fakat sistem geri dönüşü çok kolaydır. Sadece tam yedek ve en son fark yedek yeterli olacaktır.
Pazartesi --> Full
Salı --> Dif (pazartesiden beri değişenler)
Çarş --> Dif (pazartesiden beri değişenler)
Perş --> Dif (pazartesiden beri değişenler)
Cuma --> Dif (pazartesiden beri değişenler)

Şimdi gelelim uygulamamıza. DAR uygulamasını apt veya yum aracılığı veya sitesinden indirerek kuruyoruz. (Windows versiyonu da olduğunu belirtmem gerek. Denemedim ama)

DAR ile Yedek Almak:
dar -c yedekdosyasi -R /yedek_alinacak_klasor

BU komut ile en basit kullanımıyla dar sayesinde yedek almış oluyoruz. yedekdosyasi.1.dar adında bir dosya oluşturacak.
Dar için tabi ki bir çok parametre bulunuyor.
-P yok_sayilacak_klasor : Bu parametre ile yedek_alincak_klasör'deki belirttiğimiz klasörler yedeklenmeyecektir
-s 700 MB: Her bir yedek dosyasını 700 MB'lık paketler haline getirir.
-X "*.log" : Yedeklenmesi istenmeyen dosyalar belirtilir.
-y[seviye] : Yedek dosyasında bzip ile sıkıştırma yapar. [seviye] kısmına 0-9 arası bir sayı gelir.


Örnek:

dar -c full_sistem_yedek -R / -P opt -P tmp -P mnt -X "*.log" -D -v -y9

Bu örnekte / dizininin yedeği alınıyor. opt, tmp, mnt dizinleri yedeklenmiyor, fakat yedek dosyasının içine boşklasör olarak oluşturuluyor (-D), ekran çıktısı eş zamanlı veriliyor (-v) ayrıca bzip sıkıştırması 9. seviyede yapılıyor (y9)

Dar ile Dosya Kurtarmak:

Dar ile yedek alınan bir dosyadan geri dönüş için:
dar -R kurtarilan_dosyaların_koyulacagı_dizin -x yedek_dosyası -g kurtarmak_istediginiz_dosya
Bir örnek verelim:
dar -R /root -x full_sistem_yedek -v -g /root/ozel.dosya.txt
Burada root dizini altına, ozel.dosya.txt dosyası aktarılacak. Dikkat edeceğimiz nokta, -x full_sistem_yedek parametresinde 1.dar gibi sayı ve uzantı yazmıyoruz. Çünkü aradığımız dosya hangi parçada bilmiyoruz. Dar kendisi araştırıp hangi parçada ise onu kullanıyor.

Dar ile Fark Yedek Almak
İşte dar'ı çok sevmeme sebep olan özelliği. Fark yedekler. Fark yedek kullanımı:
dar -c fark_yedek_dosyası -A full_yedek_dosyası -R yedeklenecek_dizin
Örnek:
dar -c fark_yedek -A full_sistem_yedek -R / -P opt -P tmp -v -D -y9
Bu örnekte, full_sistem_yedek dosyasına bakılarak sadece değişen/eklenen dosyalar fark_yedek dosyası içine kaydedilecek.

Dar hakkında daha fazla bilgi için sitesini ziyaret edin. MAN sevenler için (http://dar.linux.free.fr/doc/man/dar.html)

Bunlarla ilgili bir kaç tane de bash script yazdım. Onları da bir sonraki yazıda paylaşayım :)

Hiç yorum yok: