Rsync ve SCP ile iki server arasında yedek alma

Standard

RSYNC ve SCP ile Güvenli Yedekleme

Yedekleme olayının ne kadar önemli olduğunu hepimiz çok iyi biliyoruz. Özellikle almak istediğiniz sunucunun yedeğini tekrar aynı makineye almanın çok komik ve anlamsız olduğunu biz de biliyoruz. Önemli olan farklı lokasyonlarda yedeklerimizin olması.. Sunucunuz üzerinden kendi makinenize veya yedek için oluşturduğunuz makinenize yedek almanın 2 yolu var. Hiç uzatmadan tek örnek komut ile bize gerekli olanı yazıp geçeceğim. Eğer detaylı açıklama istiyorsanız örnek linklere bakabilirsiniz.

1. SCP komutu  (ingilizce detaylı kaynak)

2. Rsync komutu (ingilizce detaylı kaynak)

Linux ssh üzerinden SCP ile yedek almak – kopyalamak:

Dosyaları kopyalayacağımız sunucudan şu komutu yazıyoruz:

scp -r root@IP_ADRESI:/yedek/alacaginiz/dosya/yolu   /yerel/sunucudaki/yedek/klasoru

İki nokta işaretinden sonraki bölüm: Sunucudaki yedek almak istediğiniz klasör, tüm sunucu için / koymanız yeterli olacaktır. Boşluktan sonraki bölüm ise yerel sunucuda nereye alacağınız.

-r = recursive

-p = port  (kullanımı: -p 2249)

-l = trafik limiti (kbit/sn – kullanımı -l 1024)

Linux ssh üzerinden RSYNC ile yedek almak – kopyalamak – güncellemek – silmek:

rsync ‘nin yedek almak istediğiniz makinenizde kurulu olduğundan emin olunuz.

Ubuntu’da kurulum: aptitude -y install rsync

Centos’da kurulum: yum -y install rsync

Kullanımı:
Yereldekini uzak sunuya almak için:

rsync [seçenekler] [kopyalanacak_dizin] [kullanıcı]@[uzak_sunucu_ip]:[transfer_edilecek_dizin]

Uzaktakini yerele almak için:

rsync [seçenekler] [kullanıcı]@[uzak_sunucu_ip]:[yedek_alinacak_dizin] [kopyalanacak_yerel_dizin]

Bazı yararlı seçenekler:

-r : recursive

-a : arşiv

-v : işlem sonuçları

-z : sıkıştır

-u : güncelle

–progress  : transfer sırasında işlemleri gösterir

–exclude   :   hariç tutar

–include   : transfer listesine ekler

–update  : güncelleme

–dry-run : nelerin kopyalanacağını/güncelleneceğini gösterir (sadece gösterir)

–delete : iki sunucu arasındaki dizinlerde olmayanı siler. (Kurguya göre – yereli uzağa atacaksanız, yerelde silineni uzakta da siler)

Tüm komut listesi (flag list)

Örnek detaylı kullanım:

Uzak sunucudaki 3 klasör hariç tüm dosyaların yedeğini almak için:

rsync -rav --exclude dosya1/ --exclude dosya2/ --exclude dosya3/ root@IP_ADRESI:/home/xxx/public_html /yedek/sunucu1/

SSH portu standard port değil ise;

rsync -rav --exclude dosya1/ --exclude dosya2/ --exclude dosya3/ -e 'ssh -p PORT_NUMARASI' root@IP_ADRESI:/home/xxx/public_html /yedek/sunucu1/

SCP ile RSYNC arasındaki en belirgin fark, scp komutunda yedeğini almak istemediğiniz klasörleri hariç tutabilmeniz ve tam bir senkronizasyon mantığı ile çalışması (zaten amacı o). Ayrıca güncelleme sırasında sadece güncellenen dosyaların yedeğini almak daha iyidir tabiki de:)

 

Leave a Reply

Your email address will not be published. Required fields are marked *