Bacula yedekleme sunucusu kurulumu
Pazartesi, Aralık 12, 2011
Bacula yedekleme yazılımını bir süredir araştırıyorum. Aslında son derece güzel, kullanışlı ve bir o kadar da yetenekli bir yazılım. Open Source olması da cabası. :) Tek sorun ben fazla Türkçe kaynak bulamadım. Bu sebeple tarihe not olsun diye bu dökümanı yazıyorum :)
Kendi denemelerimde disk üzerine, iSCSI üzerinden NAS'a ve LTO-2 kartuşa backup almayı başardım. Zaten disk üzerine backup almak en kolayıyken, NAS ve LTO kartuşta dikkat edilmesi gereken 1-2 nokta var. Onları da sonraki dökümanlarda (umarım) yazacağım.
Bacula Nedir?
Önce Bacula nedir ile başlayalım. Bacula network tabanlı, açık kaynaklı yedekleme yazılımıdır. (http://www.bacula.org) Çok geniş bir yelpazede farklı ortamlara yedek alabilir ve yedekten geri dönüş işlemi gerçekleştirilebilir. Kolay bir yönetim arayüzü olduğu gibi konsol üzerinden de komutlar aracılığı ile backup/restore prosedürü, aktif işler vs. yönetilebilir.
Bacula Nasıl Çalışır?
Network tabanlı olması sebebiyle sunucu/istemci mimarisi üzerine kurulmuştur. Bacula sunucusu yedek alma prosedürünü ve yedek alınan ortamı yönetir. Bacula Server, üzerindeki veya başka bir sunucudaki veritabanı üzerine backup kayıtlarını katalog olarak kaydeder. Bu sayede de dosya/gün/saat bazında geri dönüşü kolaylaştırır. Veritabanı olarak MySQL, PostgreSQL veya SQLLite kullanılabilir. Sunucu tarafında Linux, FreeBSD, Solaris ve Open Solaris kullanılabilir. (Windows sunucu çalışması devam ediyormuş)
İstemci kısmında sadece backup'ın aktarılacağı sunucuyla bağlantıyı sağlamak için küçük bir uygulama çalıştırılır. İstemci yazılımı daha geniş bir desteğe sahip. Linux'tan, Windows'a, Mac'a kadar hemen hemen tüm işletim sistemlerinin yedeğini bacula sayesinde alınabilir. Sunucu ve istemci tarafına uyumlu işletim sistemleri için daha ayrıntılı listeyi bu linkte inceleyebilirsiniz: http://www.bacula.org/en/dev-manual/main/main/Supported_Operating_Systems.html
Bacula'yı Anlayalım
Bacula için çalışan temel 3 servis vardır. Bunlar;
Bacula Director Deamon (bacula-dir): Bacula sunucu üzerinde çalışan, yedekleme yapısını, zamanlamasını, nereye yedek alınacağı, hangi istemcilerden yedek alınacağı, istemcilerin kimlik denetlemeleri gibi aslında tüm backup sürecini yöneten servistir. 9101 portundan çalışır.
Bacula Storage Deamon (bacula-sd): Bacula'nın yedeklerin alınacağı ortamını düzenleyen servisidir. Bu servis sayesinde directory ile storage farklı sunuculardan hizmet verebilir. 9102 portunu kullanır.
Bacula File Deamon (bacula-fd): İstemci tarafında çalışan servisidir. Director, istemciye (linux, windows, mac veya diğerleri) bu servis ile ulaşır. 9103 portunu kullanır. (Olası firewall v.s. ayarlarında düzenlenmelidir.)
Ayrıca 2 tane kavramdan bahsetmek gerek;
Bacula Catalog (Database): Yedekleme işleminin kayıt altına alındığı veritabanıdır. Katalogta, kayıt alınan dosyalar, dosyaların yetkileri vs. bilgileri, volume'lerin (doğru sözcüğü bulamadım malesef) kullanım oranları, çalışan işlemler gibi tüm bilgiler kaydedilir.
Bacula Console: Bacula Director ile bağlantıyı sağlayan uygulamadır. Konsol tabanlı veya QT tabanlı grafik arayüzü veya web tabanlı arayüzü vardır.
Aşağıdaki şema bu kavramları daha ayrıntılı anlamak için son derece güzel;

Bacula Kuralım
Ben Bacula kurulumun Centos 5.7 üzerine yaptım. Bu sebeple de rpm source derleme yöntemi daha kolay geldi. Sonrasında source üzerinden yaptığım rpm'leri kolayca kurarak sistemi hazır hale getirdim. Aslında depolarda da bulunabiliyor ancak nedense ben depodan kurduğumda çalışmadı. Çok da araştıramadım itiraf ediyorum. :)
Elimizde standart kurulumuş bir CentOS 5.x olduğunu düşünüyorum. İlk olarak ihtiyacımız olacak bazı paketleri ekleyelim;
yum install autoconf automake e2fsprogs-devel gcc-c++ glibc-devel glibc-headers kernel-devel krb5-devel libacl-devel libgomp libstdc++-devel libtermcap-devel libxml2-devel lsscsi m4 make mt-st mysql mysql-devel mysql-server ncurses ncurses-devel openssl-devel perl-DBI php php-gettext php-pear qt4 qt4-devel redhat-rpm-config rpm-build rpm-devel rpm-libs screen zlib-devel
bu paketler kurulduktan sonra epel reposunu ekliyoruz;
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
* burada güncel ve uygun paketi ilgili linki düzenleyerek yazın. Örneğin 64 bit içn i386 yerine x86_64 gibi.
Ve kalan diğer paketleri kuruyoruz;
yum install qwt qwt-devel wxGTK
Sıra geldi rpm'leri hazırlamaya. Bunun için önce klasörümüzü hazırlayalım; (Bu işlemleri root değilken de yapabiliriz)
cp -r /usr/src/redhat ~/rpm_buildŞimdi bacula'nın src.rpm dosyalarının güncel halini indirelim; (Ben şu adresten 5.0.3 versiyonu indirdim: http://sourceforge.net/projects/bacula/files/rpms/5.0.3/)
şimdilik ihtiyacımız olan dosyalar; bacula-bat-5.0.3-2.src.rpm, bacula-mtx-5.0.3-1.src.rpm, bacula-docs-5.0.3-1.src.rpm, bacula-5.0.3-1.src.rpm.
Gelelim indirdiğimiz source rpm paketlerinden derlenmiş rpm paketleri yapmaya.
rpmbuild --rebuild --define "build_centos5 1" --define "build_mysql 1" --define "build_bat 1" --define "build_wxconsole 1" bacula-5.0.3-1.src.rpmrpmbuild --rebuild --define "build_centos5 1" --define "build_mysql 1" --define "build_bat 1" --define "build_wxconsole 1"bacula-bat-5.0.3-2.src.rpmrpmbuild --rebuild --define "build_centos5 1" --define "build_mysql 1" --define "build_bat 1" --define "build_wxconsole 1" bacula-mtx-5.0.3-1.src.rpmrpmbuild --rebuild --define "build_centos5 1" --define "build_mysql 1" --define "build_bat 1" --define "build_wxconsole 1" bacula-docs-5.0.3-1.src.rpm
Ve paketlerimiz hazır. Gelelim kurmaya. Bunu root olarak yapıyoruz. Önce rpm_build/RPMS/ (veya i386) klasörüne gidiyoruz. Hazırladığımız paketler burada. Kuruluma başlayalım;
rpm -Uvh bacula-libs-5.0.3-1.rpmGeldik libbac-5.X.Y.so dosyasına yetki vermeye.
rpm -Uvh bacula-mysql-5.0.3-1.rpm
rpm -Uvh bacula-bat-5.0.3-1.rpm
chown bacula:bacula /usr/libXX/libbac-5.0.1.so
* Burada 64 bit için /usr/lib64 klasörü, 32 bit için /usr/lib klasörü kullanılıyor.
Mysql Ayarları
Kurulum tamamlandı. Artık son aşama veritabanı ayarlarını yapmak. Ben mysql kullandığım için mysql ayarlarını veriyorum.
Önce mysql üzerinde bacula kullanıcısının şifresini belirleyelim;
#mysql -u root -pmysql> set password for 'bacula'@'localhost' = password ('BaculaŞifresi');msqyl> quit
Yetkilerin verilmesi, database'in oluşturulması, tabloların oluşturulması için zaten script hazır. Önce /usr/lib/bacula klasörüne gidip bu scriptleri sırasıyla çalıştırmak yeterli;
cd /usr/lib/bacula/./grant_mysql_privileges./create_mysql_database./make_mysql_tables
Şimdi database'imizi bacula'ya tanıtalım. /etc/bacula/bacula-dir dosyasında aşağıdaki satırı düzenliyoruz;
Catalog {Artık servisleri çalıştırma zamanı;Name = MyCatalog# dbdriver = "dbi:mysql"; dbaddress = 127.0.0.1; dbport =dbname = "bacula"; dbuser = "bacula"; dbpassword = "BaculaŞifresi"}
service bacula-sd startservice bacula-dir startservice bacula-fd start
Bacula çalıştı. Şimdi daha da önemli olan ayarlara geldi sıra. O da 2. belgede olacak.
*** Ben bacula-dir servisini çalıştırırken bazı hatalar aldım. Sonrasında araştırmalarım sonucu (nedense) /etc/bacula/bacula-dir dosyasındaki I (Büyük I) harfleri ile problemi olduğunu gördüm. Örneğin DIRPort yazan satırları DirPort olarak değiştirdiğimde problemim çözüldü.
Kaynaklar;
Linux'ta ayrıntılı donanım raporu
Salı, Aralık 21, 2010
Bu yazıyı aslında "acaba ne kullanıyorum?" başlıklı makale altına yazacaktım. Ancak o kadar sevdim ki, "bu konu yeni bir başlığı hak ediyor" dedim.
Aslında konunun özü şu; elimizde bir sunucu var (tabi ki linux) çalışmakta, kapatamıyoruz ve ayrıntılı donanım bilgisine ihtiyacımız var. Ama öyle disk kapasitesi, ram kapasitesi filan bizi kesmiyor. Daha çok bilgi lazım. Anakart bilgisi, boş ram slotları vs.
Aslında pci için çok güzel bir komut var;
#lspci: Bize tüm pci portu üzerindeki donanım hakkında bilgi veriyor.
#lsusb: komutu da aynısının usb versiyonu. Ancak bir de şunu ekliyoruz; yanına: dmidecode.
Komutun kullanımı da çok kolay sadece;
#dmidecode : tüm raporu önümüze seriyor. Parametreler kullanarak özelleştirmek mümkün; Örneğin BIOS parametresi bios bilgilerini döküyor;
# dmidecode --type BIOS
[root@asterix ~]# dmidecode --type BIOS# dmidecode 2.10SMBIOS 2.3 present.Handle 0x0000, DMI type 0, 19 bytesBIOS InformationVendor: IBMVersion: -[NRE122AUS-1.02]-Release Date: 11/23/2004Address: 0xF0980Runtime Size: 63104 bytesROM Size: 4096 kBCharacteristics:PCI is supportedBIOS is upgradeableBIOS shadowing is allowedBoot from CD is supportedSelectable boot is supportedJapanese floppy for NEC 9800 1.2 MB is supported (int 13h)Japanese floppy for Toshiba 1.2 MB is supported (int 13h)5.25"/360 kB floppy services are supported (int 13h)5.25"/1.2 MB floppy services are supported (int 13h)3.5"/720 kB floppy services are supported (int 13h)3.5"/2.88 MB floppy services are supported (int 13h)Print screen service is supported (int 5h)8042 keyboard services are supported (int 9h)Serial services are supported (int 14h)Printer services are supported (int 17h)CGA/mono video services are supported (int 10h)ACPI is supportedUSB legacy is supportedI2O boot is supportedLS-120 boot is supportedHandle 0x001F, DMI type 13, 22 bytesBIOS Language InformationInstallable Languages: 1en|US|iso8859-1Currently Installed Language: en|US|iso8859-1
Ayrıca farklı parametrelerle de sonuc ulaşılabilir;
[root@asterix ~]# dmidecode -t 1# dmidecode 2.10SMBIOS 2.3 present.Handle 0x0001, DMI type 1, 25 bytesSystem InformationManufacturer: IBMProduct Name: eserver xSeries 236 -[88412AG]-Version: Not SpecifiedSerial Number: KDTYX47UUID: 32037214-041E-B211-89A9-A080DAF98344Wake-up Type: Power Switch
İşte parametrelerin listesi;
Type Information 0 1 System 2 Base Board 3 Chassis 4 Processor 5 Memory Controller 6 Memory Module 7 Cache 8 Port Connector 9 System Slots 10 On Board Devices 11 OEM Strings 12 System Configuration Options 13 BIOS Language 14 Group Associations 15 System Event Log 16 Physical Memory Array 17 Memory Device 18 32-bit Memory Error 19 Memory Array Mapped Address 20 Memory Device Mapped Address 21 Built-in Pointing Device 22 Portable Battery 23 System Reset 24 Hardware Security 25 System Power Controls 26 Voltage Probe 27 Cooling Device 28 Temperature Probe 29 Electrical Current Probe 30 Out-of-band Remote Access 31 Boot Integrity Services 32 System Boot 33 64-bit Memory Error 34 Management Device 35 Management Device Component 36 Management Device Threshold Data 37 Memory Channel 38 IPMI Device 39 Power Supply
Ayrtıntılı bilgi için kaynağım;
Linux'ta dosya içindeki metne göre arayıp silmek
Salı, Kasım 09, 2010
for dosya in $(find /hangi/klasorde/aranacaksa -type f -name "*" | xargs grep -l 'Aranan metin');doecho $dosyarm $dosyadone
Bir klasörde binlerce dosya var. (Bir mail bombasının ardından birbirine karışmış gerçek mailler ile bomba mailler örneğin :) ) Aralarından içindeki bir metne göre ayıklayıp o dosyaları silmek istiyoruz. Buyrun size basit bir script.
find /hangi/klasorde/aranacaksa -type f -name "*" | xargs grep -l 'Aranan metin'
find komutu ile hangi klasörde aradığımızı, -type paramatresi ile f (file) dosya olduğunu, ayrıca dosya adı için de * ile tüm dosyaları belirttik. (* terine *.php gibi sadece belli unantılar vs. seçilebilir. Arama işlemini kısaltır bu sayede) Sonra xargs ile tüm dosya içeriklerini tek tek kontrol ettik ki içindeki metini grep ile ayıklayalım.
Sonrası dosyaları tek tek döngüye alıp sırayla silmek. Bir de silinen dosyaları ekranda görüyoruz ki yanlışlık olmasın :)
ServerGuide v8.31 Windows tabanlı olmuş
Salı, Ağustos 10, 2010
IBM xServer'ların kurulumunu yapabilmek için kullanılan ServerGuide yazılımı yeni versiyonu v8.31 Windows tabanlı olmuş. Eski sürümler "Linux loading" diyerek açılırken bu sefer "Windows dosyaları kopyalanıyor" diye başlıyor ve sadece Windows Server 2003 veya Windows Server 2008 kurulumunda kulanılabiliyor. Gerçi içindeki ServerRAID ile RAID ayarlarınızı yapıp sonra linux'a devam edebilirsiniz. Çoğu linux dağıtımı zaten IBM donanımı sorunsuz tanıyor.
(Ayrıca bkz: IBM xServer'a işletim sistemi kurmak)
(Ayrıca bkz: IBM xServer'a işletim sistemi kurmak)
DAR Scriptler
Cuma, Mart 19, 2010
Full Sistem Yedeği Almak için DAR Script:
Incremental Backup için DAR Script
İyi eğlenceler.
#!/bin/bash
###########################
# Olusturulma tarihi: 19 Mart 2010 .
# Emre KARAOGLU ~ Sistem yöneticisi
###########################
emailRcpt="mailiniz@mail.com"
# Mail ile gönderilecek yedek raporu dosyamızı oluşturuyoruz.
/bin/touch /tmp/dar_backup.msj
FILENAME=`date +%d.%b.%Y.%A`.fullbackup
BASLA=`date`
STARTT=`date +%s`
/bin/echo -e "#### Full sistem backup islemi #### " > /tmp/dar_backup.msj
#Harici diskimizi kullanacağımız alanı umount/mount işlemi hazırlıyoruz.
#Bazı harici diskler uyku moduna girdikleri için uyandırılamıyabiliyor.
#Örneğin Seagate'in bazı modelleri :)
umount /mnt/bckdsk
mount /dev/sdc1 /mnt/bckdsk
/bin/echo -e "#### umount/mount islemi yapildi #### " >> /tmp/dar_backup.msj
dar -c /mnt/bckdsk/FULL_SISTEM_BCK/FILESERVER/FULL.SISTEM.BACKUP -R / -P proc -P dev -P mnt -P media -P tmp -D -v -y9
ENDT=`date +%s`
BITIR=`date`
ELAPSEDT=$((ENDT-STARTT))
/bin/echo -e "\n\n *** Yedek alma baslangic: $BASLA ... *** \n" >> /tmp/dar_backup.msj
/bin/echo -e "\n\n *** Yedek alma bitis: $BITIR ... *** \n" >> /tmp/dar_backup.msj
/bin/echo -e "\n\n *** Yedek alma islemi toplam: $ELAPSEDT saniye surdu... *** \n" >> /tmp/dar_backup.msj
/bin/cat /tmp/dar_backup.msj | /bin/mail -s " FILE Server Backup Raporu" $emailRcpt
exit 0
Incremental Backup için DAR Script
#!/bin/bashDifferantial Backup için DAR Scripti
###########################
# Olusturulma tarihi: 19 Mart 2010
# Emre KARAOGLU ~ Sistem yöneticisi
###########################
emailRcpt="mailiniz@mail.com"
DATE=`date +%d`
Month=`date +%b`
Year=`date +%Y`
FILENAME=$DATE.$Month.$Year.incbackup
/bin/touch /tmp/dar_inc_backup.msj
YESTERDAY=`expr $DATE - 1`
OLDFILENAME=$YESTERDAY.$Month.$Year.incbackup
BASLA=`date`
STARTT=`date +%s`
/bin/echo -e "#### Sistem Inc. backup islemi #### " > /tmp/dar_inc_backup.msj
umount /mnt/bckdsk
mount /dev/sdc1 /mnt/bckdsk
/bin/echo -e "#### umount/mount islemi yapildi #### " >> /tmp/dar_inc_backup.msj
dar -c /mnt/bckdsk/INC_SYSTEM_BCK/FILESERVER/$FILENAME -A /mnt/bckdsk/INC_SYSTEM_BCK/FILESERVER/$OLDFILENAME -R / -P proc -P dev -P mnt -P media -P tmp -D -v -y9
ENDT=`date +%s`
BITIR=`date`
ELAPSEDT=$((ENDT-STARTT))
/bin/echo -e "\n\n *** Yedek alma baslangic: $BASLA ... *** \n" >> /tmp/dar_inc_backup.msj
/bin/echo -e "\n\n *** Yedek alma bitis: $BITIR ... *** \n" >> /tmp/dar_inc_backup.msj
/bin/echo -e "\n\n *** Yedek alma islemi toplam: $ELAPSEDT saniye surdu... *** \n" >> /tmp/dar_inc_backup.msj
/bin/cat /tmp/dar_inc_backup.msj | /bin/mail -s " FILE Server Fark Backup Raporu" $emailRcpt
exit 0
Bu Scriptler sadece örnek amaçlıdır. Fikir vermesini düşündüm sadece. Çok daha geliştirilebilir. Kullanımda dikkat edilmesi gereken noktalardan biri de, Eğer Inc. Backup kullanılması tercih edilecekse Full Backup alındıktan sonra 1 kez Dif backup alınmalı ki 1 önceki güne ait bir fark dosyası oluşturulabilmiş olsun.
#!/bin/bash
###########################
# Olusturulma tarihi: 19 Mart 2010
# Emre KARAOGLU ~ Sistem yöneticisi
###########################
emailRcpt="maliniz@mail.com"
DATE=`date +%d`
Month=`date +%b`
Year=`date +%Y`
FILENAME=$DATE.$Month.$Year.incbackup
/bin/touch /tmp/dar_inc_backup.msj
YESTERDAY=`expr $DATE - 1`
OLDFILENAME=$YESTERDAY.$Month.$Year.incbackup
BASLA=`date`
STARTT=`date +%s`
/bin/echo -e "#### Sistem Dif. backup islemi #### " > /tmp/dar_inc_backup.msj
umount /mnt/bckdsk
mount /dev/sdc1 /mnt/bckdsk
/bin/echo -e "#### umount/mount islemi yapildi #### " >> /tmp/dar_inc_backup.msj
dar -c /mnt/bckdsk/DIF_SISTEM_BCK/FILESERVER/$FILENAME -A /mnt/bckdsk/FULL_SISTEM_BCK/FILESERVER/FULL.SISTEM.BACKUP -R / -P proc -P dev -P mnt -P media -P tmp -D -v -y9
ENDT=`date +%s`
BITIR=`date`
ELAPSEDT=$((ENDT-STARTT))
/bin/echo -e "\n\n *** Yedek alma baslangic: $BASLA ... *** \n" >> /tmp/dar_inc_backup.msj
/bin/echo -e "\n\n *** Yedek alma bitis: $BITIR ... *** \n" >> /tmp/dar_inc_backup.msj
/bin/echo -e "\n\n *** Yedek alma islemi toplam: $ELAPSEDT saniye surdu... *** \n" >> /tmp/dar_inc_backup.msj
/bin/cat /tmp/dar_inc_backup.msj | /bin/mail -s " FILE Server Fark Backup Raporu" $emailRcpt
exit 0
İyi eğlenceler.
DAR (Disk Arshive)
Çarşamba, Mart 17, 2010
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:
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:
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 ile Fark Yedek Almak
İşte dar'ı çok sevmeme sebep olan özelliği. Fark yedekler. Fark yedek kullanımı:
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 :)
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_dosyaBir örnek verelim:
dar -R /root -x full_sistem_yedek -v -g /root/ozel.dosya.txtBurada 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 -y9Bu ö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 :)
Acaba ne kullanıyorum.
Perşembe, Mart 11, 2010
Geçtiniz bir Linux makinanın başına. Çalışan bir sistem. Ama acaba hangisi? yum mu apt mı? Acaba debian forumlarına mı bakmalı yoksa redhat mi? İyisi mi biraz sistemi tanıyalım :)
- Kernel versiyon:
# uname -a
- hangi linux dağıtımı
# cat /etc/issue
- Daha ayrıntılı
#cat /proc/version
- Acaba usb portlarım nasıl? (1.1 mi yoksa 2.0)
#cat /proc/bus/usb/devices
- Acaba ..... dizinim (örneğin /home) ne kadar kullanılıyor?
# du -hcs /home
[Devamı gelecek, gelmeli :) ]
- Kernel versiyon:
# uname -a
- hangi linux dağıtımı
# cat /etc/issue
- Daha ayrıntılı
#cat /proc/version
- Acaba usb portlarım nasıl? (1.1 mi yoksa 2.0)
#cat /proc/bus/usb/devices
- Acaba ..... dizinim (örneğin /home) ne kadar kullanılıyor?
# du -hcs /home
[Devamı gelecek, gelmeli :) ]
