3 like 0 dislike
376 views
in Bilgi Teknolojileri by
recategorized by
Şöyle biraz daha geniş bilgi verebilir misiniz ?

4 Answers

0 like 0 dislike
by anonymous

rsync ile local ya da uzak bilgisayarlara  istediğiniz gibi (cronjob ile birlikte çok verimli bir şekilde)  yedekleme yapabilirsiniz.
Sadece değişen dosyaların yedeklenmesini sağlayabileceğiniz için çok hızlı transfer  işlemleri yapabilirsiniz. Uzak istemlere  ssh ile yedekleme yapabileceğiniz için (ya da transfer) aynı zamanda  çok güvenlidir. Yedeklemeyi sadece bir  uzak sisteme değil birden fazla sistemede  yapabilirsiniz. Hemen hemen ihtiyaç duyulan parametrelerin tamamını alabildiği için, değişen, eksik olan gibi opsiyonlarla yerelden uzak sisteme uzak sistemden yerele ve bir noktadan çok noktaya tüm bu işlemleri gerçekleştirebilirsiniz.

Bu yedekleme işlemleri esnasında, istenilen klasörlerin (örnek log klasörü) ya da dosya tiplerinin (.git dosyaları gibi) işlem dışı bırakılması sağlanabilir.

Ubuntu üzerine rsync kurulu gelir ama eğer sisteminizde yoksa;

# sudo apt-get install rsync // komutu ile kurabilirsiniz.

Windows ya da linux  makinalar  arasında da rsync komutunu kullanabilirsiniz. Tabi bu komut için, windows makinalara cygwin kurmalısınız. Çok önemli sunucular  üzerinde cygwin kullanarak yedekleme işlemlerini  çok başarılı bir şekilde  gerçekleştirdik. Hatta bazı sebeplerden dolayı yapamadığımız işlemleri cygwin kurarak çok daha kolay yaptık. Cygwin başarılı bir yazılımdır ve  linux komutlarını windows üzerinde kullanmanızı sağlar. Kurulumu için kutlubilgi.com a bakabilirsiniz.

Aldığı parametreler ;

-r: Kopyalama işlemi klasörleride kapsayacak şekilde yapılır. (recursive)
-l : Sembolik linkler link olarak kopyalanır.
-H: Hardlikler de transfer edilir.
-p: Dosya ve klasörlerin hakları (permissions) korunur.
-t : Dosyalar değiştirilme bilgisi ile beraber transfer edilir. (Senkronizasyon için gereklidir.)
-g: Dosya ve klasörlerin grup bilgileri korunur.
-o: Dosya ve klasörlerin sahiplik bilgileri korunur.
-D: device dosyaları hedefte oluşturulur.
-z: Dosyaları sıkıştırıp transfer eder.
--exclude: Belirtilen klasör kopyalama işlemine sokulmaz. Örn: --exclude /tmp --exclude /log --exclude '*.txt'  --> bu klasör ve dosya tipleri kopyalanmayacak.
--dry-run : Komutu simule eder, yani çalıştığında  gerçekleşecek işlemleri  yazar ama uygulamaz
--delete: Kaynakta  bulunmayan dosyalar hedeftende silinir. //  --delete  --> sadece parametre  olarak eklenecek. 
--human-readeble: Çıktılar,  okumaya alışık olduğumuz formatta  verilir.

Gelelim küçük bir kaç örneğe

temel olarak, 

#rsync -a /home/belgelerim root@10.0.0.1:/home/yedeklerim

şeklinde  kullanılabilir.

#rsync --exclude /tmp  --exclude --exclude '*.txt' /log --delete -rltDve ssh /home/ay/projelerim/* root@10.0.0.10:/webapps/v6/
Burada tmp ve log klasörleri hariç, txt uzantılı dosyalar da hariç, aynı zamanda kopyaladığım yerde olmayan ama karşı tarafta olan dosyaları silecek şekilde projelerim klasörü altındaki herşeyi, ssh ile root olarak bağlandığım  10.0.0.10 nolu bilgisayarda wepapps altında v6 klasörüne kopyala emri vermiş oldum.
 
Tabi, ssh ile bağlandığınız için, şifre isteyecektir,  her seferinde  şifre  girmek istemiyorsanız, ssh-keygen ile  şifre oluşturup karşı bilgisayara kopyalamanız gerekir. Bu işlemi nasıl yapacağınızı bilmiyorsanız, başka bir sorunun cevabı olarak sitede mevcuttur.
0 like 0 dislike
by anonymous Bilge (165k points)
rysync komutu bir klasörün içeriğini  aynı bilgisayarda ya da  uzak bir bilgisayardaki  klasör içeriği ile eşitler. Yani yedekler. sadece bir dosya içinde  uygulayabilirsiniz. rsync komutu  linuxtaki  en sevdiğim komuttur. Tek bir satırda  istediğiniz gibi esnek bir yedekleme yapabilirsiniz. 
 
Komutun açıklaması hemen  altındadır.
# rsync --exclude /tmp --exclude /log --delete -ave ssh /Users/ahmet/dev/proje-v5/* root@10.0.1.60:/webapps/projem/
 
Bu komutla /tmp ve /log klasörü hariç, herşeyi, karşı bilgisayarla senkron hale getiririz.  Fazla dosyalar varsa bunları siler. 
Her seferinde bu komutu yazmak yerine bir script yazarsanız, myrync ismini verip kaydederseniz, kısa bir komutla aynı işi  yapmış olursunuz, aşağıda bir örnek verdim. 
 
#!/bin/sh
# rsync --exclude /tmp --exclude /log --delete -ave ssh /Users/ahmet/dev/proje-v5/* root@10.0.1.60:/webapps/projem/
 
bu dosyayı mysrsync olarak  kaydedip, komut satırından "chmod +x"   yapabilirsiniz. Artık sadece  # myrsync demeniz yeterli.
0 like 0 dislike
by anonymous Bilge (165k points)
Burada rsync'de kullanılabilen seçeneklerin bir özetine yer verilmiştir (rsync --help komutu bu listeyi çıktılar). Bu seçenekler bir sonraki bölümde ayrıntılı olarak açıklanmıştır.
-v, --verbose             çıktı daha ayrıntılı olur
-q, --quiet               hatalar dışında bilgi verilmez
-c, --checksum            sadece toplam sağlamaya bakılır, zaman ve
                          boyut değişikliklerine bakılmaz
-a, --archive             arşiv kipi; -rlptgoD (-H'sız) ile aynı
-r, --recursive           dizinlerin alt dizinlerine inilir
-R, --relative            göreli dosya yolları kullanılır
    --no-relative         --relative kapatılır
    --no-implied-dirs     -R uygulanmış dizinler gönderilmez
-b, --backup              yedekleme yapılır (--suffix ve
                          --backup-dir seçeneklerine bakın)
    --backup-dir=DİZİN    sadece belirtilen dizinin içeriği
                          yedeklenir
    --suffix=SONEK        yedekleme soneki
                          (--backup-dir yoksa ~ öntanımlıdır)
-u, --update              hedeftekiler daha yeniyse bu dosyalar
                          atlanır
    --inplace             hedef dosyaları yerinde günceller
-d, --dirs                altdizinlere inmeden dizinleri aktarır
-l, --links               sembolik bağları sembolik bağ olarak
                          kopyalar
-L, --copy-links          sembolik bağ değil bağın son hedefi
                          kopyalanır
    --copy-unsafe-links   sadece güvensiz sembolik bağlar
                          dönüştürülür
    --safe-links          ağacın dışını hedefleyen sembolik
                          bağlar yoksayılır
-H, --hard-links          sabit bağlar korunur
-K, --keep-dirlinks       sembolik bağlı dizinler alıcıda dizin
                          yapılır
-p, --perms               izinler korunur
-o, --owner               sahip korunur (sadece root)
-g, --group               grup korunur
-D, --devices             aygıtlar korunur (sadece root)
-t, --times               zamanlar korunur
-O, --omit-dir-times      zamanlar korunurken dizinler bunun
                          dışında tutulur
-S, --sparse              seyrek dosyaları en verimli şekilde
                          elde eder
-n, --dry-run             işlemi yapıyormuş gibi gösterir ama yapmaz
-W, --whole-file          dosyaları tamamen kopyalar
                          (rsync algoritması ile farkları değil)
    --no-whole-file       daima arttırımlı rsync algoritması
                          kullanılır
-x, --one-file-system     dosya sistemi sınırlarının dışına çıkılmaz
-B, --block-size=BOYUT    sabit bir blok boyunda sağlama toplamına
                          zorlar
-e, --rsh=KOMUT           kullanılacak uzak kabuk uygulaması
                          belirtilir
    --rsync-path=UYGULAMA uzak makinede rsnc'in çalıştıracağı
                          uygulama
    --existing            sadece hedefte mevcut olan dosyalar
                          güncellenir
    --ignore-existing     hedefte mevcut olan dosyalar yoksayılır
    --remove-sent-files   alınan dosyalar/sembolik bağlar
                          göndericide silinir
    --del                 --delete-during ile aynı
    --delete              göndericide olmayan dosyalar alıcıda
                          silinir
    --delete-before       alıcıda aktarım öncesi silme yapılır
                          (öntanımlı)
    --delete-during       alıcıda aktarım sırasında silme yapılır
    --delete-after        alıcıda aktarım sonrası silme yapılır
    --delete-excluded     alıcıda ayrıca dışlanmış dosyalar da
                          silinir
    --ignore-errors       G/Ç hataları olsa da siler
    --force               dizinler boş olmasa bile silinir
    --max-delete=SAYI     SAYIdan fazla dosya silinmez
    --max-size=BOYUT      BOYUTtan daha büyük dosyalar aktarılmaz
    --partial             kısmen aktarılmış dosyalar tutulur
    --partial-dir=DİZİN   kısmen aktarılmış dosyalar DİZİNde tutulur
    --delay-updates       güncellenecek tüm dosyalar sona bırakılır
    --numeric-ids         kullanıcı/grup kimliklerini isimlerle
                          eşleştirmez
    --timeout=SÜRE        G/Ç zamanaşımını SÜRE saniyeye ayarlar
-I, --ignore-times        zaman ve boyut bakımından eşleşen dosyalar
                          atlanmaz
    --size-only           boyutları aynı olan dosyalar atlanır
    --modify-window=SAYI  doğruluğu arttırmak için değişiklik
                          zamanları karşılaştırılır
-T, --temp-dir=DİZİN      geçici dosyaları DİZİNde oluşturur
-y, --fuzzy               hedefte dosya yoksa benzerini bulur
    --compare-dest=DİZİN  alınan dosyaları ayrıca DİZİNdekilerle
                          karşılaştırır
    --link-dest=DİZİN     değişmediyse DİZİNdeki dosyalara sabit bağ
-z, --compress            aktarım sırasında dosya verisi sıkıştırılır
-C, --cvs-exclude         dosyalar CVS'nin yaptığı gibi yoksayılır
-f, --filter=KURAL        bir dosya süzme kuralı ekler
-F                        --filter='dir-merge /.rsync-filter' ve
                          yinelemeli: --filter='- .rsync-filter'
                          ile aynı
    --exclude=KALIP       KALIP ile eşleşen dosyalar dışlanır
    --exclude-from=DOSYA  dışlama kalıpları DOSYAdan okunur
    --include=KALIP       KALIP ile eşleşen dosyalar dışlanmaz
    --include-from=DOSYA  dışlanmayan kalıplar DOSYAdan okunur
    --files-from=DOSYA    aktarılacak dosyaların isimlerinin listesi
                          DOSYAdan okunur
-0, --from0               *from seçeneklerindeki dosya listeleri boş
                          karakter sonlandırmalı kabul edilir
    --version             sürüm numarasını basar
    --port=PORT           başka bir port belirtmek için
    --blocking-io         uzak kabukta engellemeli G/Ç kullanılır
    --no-blocking-io      engellemeli G/Ç öntanımlı olduğunda bunu
                          iptal eder
    --stats               dosya aktarımı sırasında durum bilgileri
                          verir
    --progress            aktarım sırasında gelişimi gösterir
-P                        --partial --progress ile aynı
-i, --itemize-changes     tüm güncellemeler için bir değişiklik
                          özeti çıktılar
    --log-format=BİÇİM    aktarımları belirtilen biçimde günlükler
    --password-file=DOSYA parola DOSYAdan okunur
    --list-only           dosyaları kopyalamaz, sadece listeler
    --bwlimit=KBPS        saniyede kBayt cinsinden G/Ç band genişliği
    --write-batch=DOSYA   bir betikli güncellemeyi DOSYAya yazar
    --read-batch=DOSYA    bir betikli güncellemeyi DOSYAdan okur
    --checksum-seed=SAYI  blok/dosya sağlama toplamı tohumunu ayarlar
-4, --ipv4                IPv4 tercih edilir
-6, --ipv6                IPv6 tercih edilir
-h, --help                bu yardım iletisini gösterir
  
rsync ayrıca bir artalan süreci olarak da çalıştırılabilir. Bu durumda şu seçenekleri kabul eder:
    --daemon              bir rsync artalan süreci olarak çalışır
    --address=ADRES       belirtilen adres kullanılır
    --bwlimit=KBPS        saniyede kBayt cinsinden G/Ç band genişliği
    --config=DOSYA        rsyncd.conf yerine kullanılacak DOSYA
    --no-detach           üst süreçten ayrık çalışmaz
    --port=PORT           belirtilen PORTu dinler
-v, --verbose             ayrıntı düzeyini arttırır
-4, --ipv4                IPv4 tercih edilir
-6, --ipv6                IPv6 tercih edilir
-h, --help                bu yardım iletisini gösterir
0 like 0 dislike
by anonymous Bilge (165k points)

# sudo rsync -r -avh --ignore-existing /uploads/ /doc_yedek/

...