BackupPc yüksek performanslı, kurumsal derecede çalışabilen, çoklu platform destekleyen ağ üzerinden çalışan yedekleme uygulamasıdır. Kendisi gerekli ayarlamaları yaptıktan sonra arka planda çalışıyor ve bu sayede belirli aralıklarda ağ üzerinden diğer bilgisayarların(Masaüstü ve Dizüstü) yedeğini alabilen sunucu uygulamasıdır.

BackupPC veri sıkıştıma özeliği ile veri yedeklerken belirli seviye’ye kadar veriyi azaltabiliyor ve sunucu’da daha az yer kaplamasını sağlıyor. Yedeklenen dosyanın aynısı varsa onu yedeğini alınmıyor. Sunucu tarafına kurulan BackupPc, Windows makinelerinde samba protokolü, linux makinelerinde ise ssh/rsh/nfs üzerinden tar ile yedek alabiliyor.

KURULUMU

Kurmak için gerekenler:

perl (depo’da var)

Compress:Zlib (depo’da perl-Compress-Zlib adında bulabilirsiniz)

Archive::Zip (depo’daperl-Archive-Zip adında bulabilirsiniz)

File::Rsyncp (bu depo’da yok, onu kendi adresinden indiriyoruz)

tar (kurulu geliyor

rsync (depo’da rsync olarak bulabilirsiniz)

apache (kurulu geliyor)

mod-perl (depo’da mod_perl olarak bulabilirsiniz)

Tüm bu bileşenleri ilk önce kuruyoruz, File::Rsyncp için de dosya’yı indirdikten sonra, root olarak şu komutlar ile kuruyoruz:

** perl Makefile.PL make make test make install**

BackupPc’yi kurmaya geçmeden önce backuppc adında bir kullanıcı oluşturmamız lazım. Bunu güvenlik açısından yapmamız gerekiyor, BackupPc uygulamasını bu kullanıcı kullanacak ve sadece bu kullanıcı çalıştırabilecek. Kullanıcı’yı oluşturacağız ve bir de kendisine şifre vereceğiz, bunlar sonra lazım olacak şifre’yi o yüzden unutmayalım. Kullanıcı eklemek ve şifresini değiştirmek için de şunları yapacağız:

**su - useradd backuppc passwd backuppc **

Burada önemli olan **su - **olarak root girişi yapmak. Yoksa Pardus altında useradd komutunu bulamazsınız(başka diğer komutlar gibi)

Şimdi ise BackupPc’nin son sürümünü indiriyoruz sourceforge.net’den. Ardından root olarak aşağıdaki komutlar ile paketi açıp, BackuPc’nin kendi betiğini çalıştırıp kuracağız. Bu betik bizim için tüm işlemleri yapacak

** tar zxf BackupPC-3.1.0.tar.gz cd BackupPC-3.1.0 perl configure.pl**

Şimdi size bir çok soru sorulacak, neyi nereye kurayım gibi. Dikkatlice okumanızı tavsiye ederim(ingilizce). Genellikle çoğu şeyi geçebiliriz(enter’e basarak) sadece aşağıdaki soruları benim söylediğim şekilde yaparsanız daha kolay olur sonrası için:

–> Data directory (full path) [/mnt/sda4/backup]? (Bu kısım yedeğinizin kopyalanacağı yeri söylüyor. Artık nereye yedeklemek istiyorsanız dosyalarınızı o kısmı yazın)

–> CGI bin directory (full path) [/usr/local/BackupPC/CGI]? (Buraya sıradaki kısmı yazın, çünkü bizim dosya’mız buradan çalışacak: /var/www/localhost/cgi-bin)

–> Apache image directory (full path) [/var/www/localhost/htdocs/BackupPc]? (Burası da farklı olacak, bunu yazmamız lazım: /var/www/localhost/htdocs/BackupPc)

Şimdi BackupPc’yi çalıştırmadan önce Pardus’ta kurulu gelen Apache’yi çalıştırmamız lazım(ben kurulu geldiğini sanıyorum, eğer değilse depo’dan kolayca kurabilirsiniz).Kolay bir şekilde çalıştırıyoruz hemen: ** sudo service apache start sudo service apache on **

Şu an itibariyle tüm zemini hazırladık. BackupPc çalıştırmaya müsait. Aslında BackupPc arka planda daemon olarak çalışması gerekiyor, yani Pardus’ta servis olarak gözükmesi lazım. Kendi içinden daemon olarak çalışması için, bir çok dağıtım için ön tanımlı olarak init.d dosyaları yer alıyor. Fakat Pardus’un farklı bir yapısı var, bu yüzden bunları kullanamıyoruz. Bunun için kendi servisimiz oluşturmamız lazım. Bunu nasıl yapılacağını bilmiyorum, fakat tahminen nasıl yapılabileceğini biliyorum.

Pardus depolarında rsync paketine baktım, ve comar/service.py adında bir dosya gördüm. Bu muhtemelen servis işini halleden dosyanın kendisi. Pisi paketi kurarken service.py’di göz önünde alıp öyle kuruyor. Bu kısım pisi paketi yaparken lazım olacak, şimdilik “manüel” olarak BackupPc’yi çalıştırmamız yeterli olacaktır.

BackupPc’yi çalıştırmak için backuppc kullanıcısı olmak lazım, bunun için de şu şekilde kullanıcı oluyoruz ** su - backuppc**

Bu kullanıcıyı oluştururken kullandığımız şifre ile giriş yapıyoruz, ve aşağıdaki komut ile BackupPc’yi daemon olarak çalıştırıyoruz:

/usr/local/BackupPC/bin/BackupPC -d

Ardından Firefox ile 404 Not Found tıkladığımızda, sunucumuzun çalıştığını göreceğiz.

Yedek alma işlemi ve_ config.pl_ dosyasının düzenlenmesi gibi kısımlar da var. Fakat ağ problemi yüzünden bunları şu an yapamıyorum. Evimde ubuntu kurulu netbook bilgisayarı var, ağ üzerinden ping yapabiliyor fakat nmblookup ile bulamıyorum, bu yüzden yönetici panelinden yedeğini alamıyorum bilgisayarın. Bunu konu hakkında BackupPc kullanıcı mail listesine bir soru attım, şu an bu sorunu gidermeye çalışıyorum. Sorunu giderir gidermez, istemci(client) tarafından neler yapılması gerektiğini yazacağım.


Dün birinci kısımda BackupPc’yi nasıl kuracağımız anlattım. Bu kısımda ise client(istemci) ve sunucu kısmında neler yapmamız gerektiğini söyleyeceğim. Mail listesinden aldığım cevaplar pek işe yaramadı çünkü hata başka yerdeymiş. Nmblookup komutunun çalışması için istemci’de samba kurulu olması gerekiyormuş. O yüzden istemci tarafında samba’yı kurmayı unutmayın.

BackupPc veri aktarımı için SSH kullanıyor. Bunu kullanabilmesi için sunucu’daki anahtarlarımızı istemci’ye aktarmamız lazım. Yani sunucu’ya bağlanmak isteyen her kişi’ye sunucu’da oluşturduğumuz anahtarları yollamamız lazım. Bu biraz zahmetli iş ama İnternet’te yaptığım araştırmalar sonucunda basit bir belge buldum. Şimdi sırayla şu işlemleri yapalım:

İstemci(Client) Tarafında:

Linux olduğunu varsayarak, backuppc kullanıcısını eklememiz lazım. Bunu bir önceki belgemdenu nasıl yaptığımı görebilirsiniz. Ayrıca bu bilgisayar’da rsync kurulu olması gerekli, çünkü veri aktarımını rsync üzerinden yapacağız(BackupPc, rsync dışında tar gibi metotları kullanmamıza da izin veriyor). Rsync’i sadece backuppc kullanacak, bu yüzden ona root işlemleri gerektiren işlemlerde izin vermemiz lazım. Her defasında şifre girmek de işimize gelmediği için, sudoers dosyasına rsync için özel izin vereceğiz. Onu da şu şekilde yapacağız:

echo “backuppc ALL=NOPASSWD: /usr/bin/rsync” » /etc/sudoers

Artık backuppc kullanıcı, rsync root kullanıcısı olarak kullanabilecek ve herhangi bir şifre girmemize gerek kalmayacak.

Sunucu tarafında:

su backuppc

diyerek backuppc kullanıcı moduna giriyoruz, sonra da açık bir tane anahtar üretiyoruz

ssh-keygen -t rsa -C “backuppc”

Sonra bu anahtarı bizim istemci’ye gönderiyoruz. Bunu ssh-copy-id komutu ile kolayca yapabiliriz. Fakat bu betik Pardus’ta olmadığı için ilk önce betiği indirip /usr/bin dizinine aktarmamız lazım. Betiği openssh sitesinden indirebilirsiniz. Betiği ssh-sopy-id olarak kaydedin, ardından /usr/bin dizinine kopyalayın ve çalıştırabilinir izni verin. Şu şekilde yapabiliriz:

cp ssh-copy-id /usr/bin chmod +x /usr/bin/ssh-copy-bin

Bunları yaptıktan sonra aşağıdaki komut ile istemci’ye bağlanıyoruz, ssh-copy-id komutu otomatik olarak bizim anahtarlarımız karşı tarafa ekleyecek:

ssh-copy-id [email protected]

Burada önemli olan yukarıdaki 192.168.1.3 kısmı sizde değişik olacak, istemci tarafındaki ip neyse onu yazmanız lazım. Onu artık kolayca karşı tarafdan öğrenmeniz gerekecek(yan not: sinerji projesini geliştiriken biz bu sorunu avahi ile güzel bir şekilde çözmüştük, aslında backuppc için de böyle bir şey yapılabilinir) Yukarıdaki komutu uyguladıktan sonra, ssh ile istemci’ye giriş yapacağız(güevenlik açısından).

ssh backuppc@hapkido

~/.ssh/authorized_keys dosyasının başına bir kaç şey eklememiz lazım. Bu sayede sadece bir tane sunucu’dan giriş yapmamızı sağlayacak. Bu da güvenliği biraz daha artıracak.

vim ~/.ssh/authorized_keys

Yukarıdaki komutu yazarak, bu dosyanın önüne from=”sunucu’nun hostname” yazacağız, burada sunucunun alan adı neyse onu yazmamız lazım, bendeki örnek şu şekilde: _ from=”fatih-pardus” ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvWh3e ….._

Her şeyi tamamladık şimdilik. İster sunucu’dan ister istemci’den her türlü giriş yapabilirsiniz CGI’ye. BackupPc’yi konsoldan kullanmak yerine web tarayıcınızdan kullanmanız mümkün. Bunu ilk yazımda anlatmıştım. Bu cgi’ye giriş yapabilmeniz için(şifresiz), BackupPc’nin host dosyasını değiştirmemiz lazım, bu host dosyası /etc/Backups/hosts olarak bulabilirsiniz. Bu dosyayı açıyoruz ve aşağıdaki gibi değiştiriyoruz:

host dhcp user moreUsers # <— do not edit this line samsung 0 fatih backuppc #farside 0 craig jill,jeff # <— example static IP host entry #larson 1 bill # <— example DHCP host entry

Yukarıda, samsung benim istemcinin alan adı, 0 ise static-ip kullandığım anlamına geliyor, eğer dhcp kullanıyorsanız bunu 1 yapın. Ardından şifresiz olarak kullanılmasını istediğiniz kullanıcı adını yazın. Benim diğer bilgisayardaki kullanıcı adım yine fatih olduğundan ben’de fatih yazıyor. Sonrasında ise başka kullanıcıların da giriş yapabilmesini sağlayabiliyorsunuz, örneğin laptopunuzu sadece siz değil, başkaları da kullanıyorsa onlar da giriş yapmak isteyebilir. Ben burada deneme amaçlı olarak backuppc yazdım. Siz farklı bir şey yazabilirsiniz.

Ardından sunucu tarafından 404 Not Found yazarak, yada istemci tarafından https://192.168.1.2/cgi-bin/BackupPC_Admin yazarak giriş yapabiliriz web arayüzünde. 192.168.1.2 ise benim sunucunun ip adresi, istemci tarafından bağlanmak istiyorsanız buradan giriş yapabilirsiniz.

Artık arayüzü biraz kurcalayabilirsiniz. Eğer her şey düzgün bir şekilde çalıştıysa size doğrudan istemci hakkında bilgiler gösterecektir. Şimdi ise rsync kullanacağımızı ve bunun doğru bir şekilde çalışmasını sağlamamız için komutları değiştirmemiz lazım. Tüm bunları** /etc/BackupPc/config.pl **dosyasından da yapabilirsiniz. Bu tarz config dosyalarını düzenlemekte sıkıntı çekmiyorsanız doğrudan oradan da işlemlerinizi yapabilirsiniz. Ben buradan daha kola bir yolunu anlatacağım. Burada bir iki hata ile karşılaşmıştım, onları da araştırma sonucunda değiştirdim. Yapmanız gerekenler ise şunlar

“Edit Hosts” kısmına tıklayın

“xfer” sekmesine tıklayın

“xfermethod”‘u “smb”‘den “rsync” olarak değiştirin

Ardından “RsyncClientCmd” kısmını $sshPath -q -x -l backuppc $hostIP sudo $rsyncPath $argList+ olarak değiştirin

“RsyncClientRestoreCmd” kısmını da $sshPath -q -x -l backuppc $hostIP sudo $rsyncPath $argList+ olarak değiştirin

“save” tıklayıp kaydedin.

Artık herşey tamamdır, yedekleme zamanı geldi “Host Summary” **tıklayın, oradan ise istemcinin üzerine tıklayın ve **“Start Full Backup” tıklayarak yedeğinizi alabilirsiniz.

Herhangi bir sorunla karşılaşmanız durumunda, BackupPc kullanıcılar listesinden gereken yardımı alabilirsiniz.

Kaynak:Pardus'ta BackupPc kurulumu - 1 - Fatih Arslan
Kaynak: BackupPC Nedir?