Provided by:
manpages-tr_1.0.5.1-2_all 
İSİM
rsync - rcp yerine daha hızlı ve esnek bir araç
KULLANIM
rsync [seçenek]... kaynak [kaynak]... [kullanıcı@]konak:hedef
rsync [seçenek]... [kullanıcı@]konak:kaynak hedef
rsync [seçenek]... kaynak [kaynak]... hedef
rsync [seçenek]... [kullanıcı@]konak::kaynak [hedef]
rsync [seçenek]... kaynak [kaynak]... [kullanıcı@]konak::hedef
rsync [seçenek]... rsync://[kullanıcı@]konak[:port]/kaynak [hedef]
AÇIKLAMA
rsync çoğunlukla rcp gibi davranan bir uygulamadır, ancak daha fazla
seçenek içerir ve özellikle hedefteki dosyanın mevcut olması halinde
dosya aktarımını çok daha hızlı gerçekleştiren rsync uzak güncelleme
protokolünü kullanır.
rsync uzak güncelleme protokolü rsync'in ağ bağlantısı üzerinden sadece
iki dosya grubu arasındaki farkları aktarmasını mümkün kılar. Bunu bu
pakete eşlik eden teknik raporda açıklanan verimli bir toplama
sağlaması arama algoritmasını kullanarak yapar.
rsync'e özgü bazı ek özellikler:
o bağların, aygıtların, sahip, grup ve izinlerin kopyalanmasını
destekler
o GNU tar'a benzer exclude ve exclude-from seçenekleri
o CVS'nin yok sayacağı dosyaların yoksayılmasını sağlayan CVS dışlama
(exclude) kipi
o rsh, ssh gibi uzak şeffaf kabukları kullanabilir
o root kullanıcısının yetkilerine ihtiyaç duymaz
o görünmeyen maliyetleri asgari düzeyde tutmak için dosya
aktarımlarında borulama yapar
o hem anonim hem de kimlik doğrulamalı rsync sunucu desteği (yansılama
için ideal)
GENEL
rsync sekiz farklı yöntemle kullanılabilir:
o yerel dosyaları kopyalamak için. Bu çağrıda ne kaynak ne de hedef
dosya yolu bir : ayracı içermez.
o yerel makineden uzaktaki bir makineye bir uzak kabuk uygulaması (ssh
veya rsh gibi) kullanarak dosyaları kopyalamak için. Bu çağrıda
sadece hedef dosya yolu tek bir : ayracı içerir.
o uzaktaki bir makineden yerel makineye bir uzak kabuk uygulaması (ssh
veya rsh gibi) kullanarak dosyaları kopyalamak için. Bu çağrıda
sadece kaynak dosya yolu bir : ayracı içerir.
o uzaktaki bir rsync sunucusundan yerel makineye kopyalama yapmak
için. Bu çağrıda sadece kaynak dosya yolu bir :: ayracı veya bir
rsync:// URL'si içerir.
o yerel makineden uzaktaki bir rsync sunucusuna kopyalama yapmak için.
Bu çağrıda sadece hedef dosya yolu bir :: ayracı veya bir rsync://
URL'si içerir.
o uzaktaki makinede bulunan rsync sunucusunu ve bir uzak kabuk
uygulamasını kullanarak, uzaktaki makineden yerel makineye kopyalama
yapmak için. Bu çağrıda kaynak dosya yolunun bir :: ayracı içermesi
yanında --rsh=komut (ya da -e komut) seçeneği de kullanılır.
o uzaktaki makinede bulunan rsync sunucusunu ve bir uzak kabuk
uygulamasını kullanarak, uzaktaki makineye yerel makineden kopyalama
yapmak için. Bu çağrıda hedef dosya yolunun bir :: ayracı içermesi
yanında --rsh=komut (ya da -e komut) seçeneği de kullanılır.
o uzaktaki makinede bulunan dosyaların listesini almak için. Bu işlem
uzaktaki makineden kopyalama iÅŸlemindeki gibi ancak yerel hedefi
belirtmeden yapılır.
Tüm durumlarda (burada listelenenler dışında kalanlar dahil) kaynak ve
hedef belirtimlerinden biri daima yerel olmalıdır (yani rsync ile iki
uzak makine arasında işlem yapamazsınız).
AYARLAR
Kurulum işlemleri için README dosyasına bakınız.
Kurduktan sonra, bir uzak kabuk üzerinden eriştiğiniz (veya rsync
artalan kipi protokolü kullanarak eriştiğiniz) her makinede rsync
kullanabilirsiniz. Uzak dosya aktarımları için, günümüzde rsync
iletişimde ssh kullanmasına rağmen öntanımlı olarak kullanacağı uzak
kabuk rsh veya remsh gibi bir kabuk olarak da ayarlanabilir.
Bundan başka -e komut satırı seçeneğinin argümanı olarak veya RSYNC_RSH
ortam değişkenine atayarak da istediğiniz bir uzak kabuk uygulamasını
belirtebilirsiniz.
Yüksek derecede güvenlik istendiğinde ortak kanaat ssh kullanmaktır.
Yalnız, rsync'in hem yerel hem de uzak makine üzerinde kurulu olması
gerektiğini unutmayın.
KULLANIMI
rsync'i rcp'yi nasıl kullanıyorsanız öyle kullanabilirsiniz. Biri uzak
makine olmak üzere bir kaynak ve bir hedef belirtmelisiniz.
Şüphesiz sözdizimini açıklamanın en kolay yolu bir örnek vermektir:
rsync -t *.c foo:src/
Bu komut çalışma dizinindeki *.c kalıbı ile eşleşen tüm dosyaları foo
makinesinin src dizinine kopyalayacaktır. Bu dosyalardan uzak makinede
mevcut olanları için rsync uzak güncelleme protokolü kullanılarak
sadece farklar gönderilir. Bu konuda daha ayrıntılı bilgi için teknik
rapora bakınız.
rsync -avz foo:src/bar /data/tmp
Bu komut, foo makinesindeki src/bar dizinindeki tüm dosyaları varsa
altdizinlerdekileri de içererek yerel makinenin /data/tmp dizinine
kopyalar. Dosyaların, sembolik bağların, aygıtların, özniteliklerinin,
izinlerinin, sahiplerinin, v.s.sinin korunmasını sağlayan "arşiv"
kipinde aktarım yapılır. Buna ek olarak, aktarım işleminin verileri
içeren kısımlarının boyutunu küçültmek için sıkıştırma uygulanır.
rsync -avz foo:src/bar/ /data/tmp
Kaynak yolunun sonuna eklenen / iÅŸareti hedefte ek bir dizin
oluşturmaktan kaçınılması davranışını değiştirir. Sona eklenen bu /
işaretinin "dizini ismiyle kopyala" davranışının zıddı olarak "bu
dizinin içeriğini kopyala" anlamına geldiğini düşünebilirsiniz, fakat
her iki durumda da dizinin öznitelikleri hedefteki dizine
kopyalanacaktır. Başka bir deyişle, aşağıdaki komutların her biri ile
dosyalar aynı şekilde, /dest/foo dizininin öznitelikleri ayarlanarak
kopyalanır:
rsync -av /src/foo /dest
rsync -av /src/foo/ /dest/foo
Ayrıca, rsync'i sadece yerel kipte de kullanabilirsiniz. Bu durumda
hedef ve kaynak dosya yollarının ikisi de isimlerinde ':'
içermeyecektir. Kopyalama işlemi güçlendirilmiş bir kopyalama komutu
verilmiş gibi yürüyecektir.
rsync somehost.mydomain.com::
Bu komut, somehost.mydomain.com makinesindeki kullanılabilecek tüm
anonim rsync modüllerini listeleyecektir. (Daha fazla bilgi için
aşağıdaki bölümlere bakınız.)
İLERİ DÜZEY KULLANIM
Bir uzak makineden çok sayıda dosya için istek yaparken aralarında
boşluk bırakılmış kaynak dosya yollarını tırnak içine alarak
belirtebilirsiniz. Bazı örnekler:
rsync makine::'modülismi/dizin1/dosya1 modülismi/dizin2/dosya2' /hedef
Bu komut, bir rsync sunucusundan /hedef dizinine dosya1 ve dosya2
dosyalarını kopyalayacaktır. Her argüman aynı "modülismi/" önekini
içermeli ve arada sadece bir boşluk karakteri bulunmalıdır. Diğer tüm
boşlukların dosya isimlerine ekleneceği varsayılır.
rsync -av makine:'dizin1/dosya1 dizin2/dosya2' /hedef
Bu komut dosya1 ve dosya2 dosyalarını /hedef dizinine kopyalayacaktır.
Sözcük ayırma işlemi uzak kabuk tarafından yapılır, yani eğer sözcük
ayırma gerçekleşmemişse, bunun sebebi uzak kabuğun bu işlem için
yapılandırılmamış olmasıdır (nedendir bilinmez, çok yaygındır). İsmi
boşluk içeren bir dosyayı kopyalamak isterseniz, ya bunu uzak kabuğun
anlayabileceği bir yöntemle yapmalı ya da boşlukların yerine dosya ismi
kalıpları kullanmalısınız. İki örnek:
rsync -av makine:'isminde\ boÅŸluk\ olan\ dosya' /hedef
rsync -av makine:isminde?boÅŸluk?olan?dosya /hedef
İkinci örnekte, eşleşmeyen kalıpları kabuğunuzun anlayacağı
varsayılmıştır. Bu takdirde bunları tersbölü öncelemeli hale
getirecektir.
BİR RSYNC SUNUCUSUNA BAĞLANMAK
Dosya aktarımı için rsync'i bir uzak kabuk olmaksızın da kullanmak
mümkündür. Bu durumda, TCP 873. port üzerinde çalışan bir uzak rsync
sunucusuna bağlanacaksınız.
RSYNC_PROXY ortam değişkenine bir makine:port çifti belirterek bir
vekil sunucu üzerinden de bağlantı sağlayabilirsiniz. Burada, vekil
sunucunuzun yapılandırmasının 873. port üzerinden bağlantıya izin
verdiğinden emin olmalısınız.
rsync'i bu yöntemle kullanmanın bir uzak kabuk üzerinden kullanmaya
farkları şunlardır:
o ya makine ismini dosya yolundan ayırmak için tek bir : yerine ::
kullanırsınız ya da bir rsync:// URL biçimini kullanırsınız.
o uzak sunucu bağlandığınızda günün iletisini basabilir.
o uzak sunucu için bir dosya yolu belirtmezseniz, sunucu üzerinde
erişilebilir olan dosya yollarının listesini alırsınız.
o bir yerel hedef belirtmezseniz, uzak sunucu istediğiniz dosyaların
bir listesini yollar.
Uzak sunucu üzerindeki bazı dosya depoları kimlik doğrulaması
gerektirebilir. Böyle bir durumda bağlanmak istediğinizde sizden parola
istenecektir. Parola istemi almamak için parolanızı RSYNC_PASSWORD
ortam değişkenine kaydedebileceğiniz gibi, --password-file seçeneğini
de kullanabilirsiniz. Bu kullanım rsync'i bir betik ile kullandığınız
durumlarda yararlıdır.
Uyarı: Bazı sistemlerde ortam değişkenlerini tüm kullanıcılar
görebilmektedir. Bu tür sistemlerde --password-file seçeneğinin
tercih edilmesi önerilir.
BİR RSYNC SUNUCUSUNA BİR UZAK KABUKTAN BAĞLANMAK
Bağlantı için ssh veya rsh kullanarak ve dosya aktarımını rsync
sunucusunun yeteneklerinden yararlanarak yapmanın mümkün olması bazan
kullanışlı olabilmektedir. Özellikle, bir uzak makineye ssh üzerinden
bağlanmak istediğinizde (şifreleme için ya da güvenlik duvarından
geçebilmek için) ama bunun yanında rsync sunucusunun yeteneklerinden de
yararlanmak istediğiniz durumlarda bu yararlıdır (BİR UZAK KABUKTAN BİR
RSYNC SUNUCUSU ÇALIŞTIRMAK bölümüne bakınız).
Kullanıcı açısından, rsync'in bu yöntemle kullanılması, komut
satırından uzak kabuk uygulamasının --rsh=komut ile belirtilmesi
dışında bir rsync sunucusuna bağlanmaktan farksızdır. (Burada,
RSYNC_RSH ortam değişkenine bir atama yaparak uzak kabuk uygulaması
belirtmek, beklenen işlevselliği sağlamayacaktır.)
Uzak kabuk kullanıcısını, rsync sunucu kullanıcısından ayırmak için
uzak kabuk komutunda '-l kullanıcı' seçeneğini kullanabilirsiniz:
rsync -av --rsh="ssh -l ssh-kullanıcısı" \
rsync-kullanıcısı@makine::modül[/yol] yerel-yol
"ssh-kullanıcısı" ssh seviyesinde kullanılmalıdır; "rsync-kullanıcısı"
ise uzak makinenin rsyncd.conf dosyasından sınanacaktır.
BİR RSYNC SUNUCUSU ÇALIŞTIRMAK
Bir rsync sunucusu bir yapılandırma dosyası kullanılarak
yapılandırılır. Daha ayrıntılı bilgi için rsyncd.conf(5) kılavuz
sayfasına bakınız. rsync'i bir uzak kabuk uygulaması üzerinden ve root
olarak çalıştırmadıkça, öntanımlı olarak /etc/rsyncd.conf dosyası
kullanılır. Aksi takdirde, uzak makinedeki çalışma dizininde
(genellikle $HOME) bulunan rsyncd.conf öntanımlıdır.
BİR UZAK KABUKTAN BİR RSYNC SUNUCUSU ÇALIŞTIRMAK
rsync sunucusu yapılandırma dosyası ile ilgili tüm bilgiyi
rsyncd.conf(5) kılavuz sayfasında bulabilirsiniz.
Uzak kullanıcı root (chroot, setuid/setgid, v.s.) olmadıkça bazı
yapılandırma seçenekleri kullanılamaz olacaktır. Eğer rsync sunucusunu
bir uzak kabuk uygulaması üzerinden kullanıyorsanız, services
dosyasında rsync sunucu portunun bulunması ya da inetd'nin
yapılandırılması gerekli değildir.
Bir tek kullanımlık ssh anahtarı dışında bir rsync sunucusu çalıştırmak
için rsyncd.conf(5) kılavuz sayfasındaki bu bölüme bakınız.
ÖRNEKLER
Burada rsync kullanımıyla ilgili bazı örnekler bulacaksınız.
Büyük MS Word dosyaları ve eposta dizinlerinden oluşan eşimin ev
dizinini yedeklemek için şöyle bir cron işi çalıştırıyorum:
rsync -Cavz . arvidsjaur:backup
Her gece bir PPP bağlantısı üzerinden bu dizini ayrıca, kendi makinemin
arvidsjaur dizinine kopyalıyorum.
Samba kaynak ağacını eşzamanlı tutmak için şu Makefile hedeflerini
kullanıyorum:
get:
rsync -avuzb --exclude '*~' samba:samba/ .
put:
rsync -Cavuzb . samba:samba/
sync: get put
Bu sayede bağlantının öbür ucundaki bir CVS diziniyle benimkini
güncellememi sağlıyor. Uzak makinede bir takım CVS işlemleri yaptıktan
sonra uzak CVS protokolü ile bunları kendi makinemde güncellemek
gecikmelerden dolayı pek verimli olmuyor.
"eski" ve "yeni" ftp sitelerim arasında bir dizini şu komutla
yansılıyorum:
rsync -az -e ssh --delete ~ftp/pub/samba nimbus:"~ftp/pub/tridge"
Bu komut her saat başı cron'dan çalıştırılıyor.
ÖZETLE SEÇENEKLER
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
AÇIKLAMALARIYLA SEÇENEKLER
rsync GNU uzun seçenekler paketini kullanır. Çoğu komut satırı seçeneği
hem kısa hem de uzun seçenek içerir. Bazı seçenekler ise sadece uzun
seçeneklerden oluşur. `=' işareti içeren seçeneklerdeki parametreler
isteğe bağlıdır; `=' yerine boşluk kullanılabilir.
-h, --help
rsync tarafından kabul edilen seçenekleri açıklayan kısa bir
yardım iletisi basar.
--version
rsync sürüm numarasını basar ve çıkar.
-v, --verbose
Bu seçenek aktarım sırasında verilen bilgi miktarını arttırır.
rsync öntanımlı olarak sessiz çalışır. Tek -v belirtildiğinde,
hangi dosyaların aktarıldığını gösterip sonunda bir özet basar.
İki -v belirtildiğinde atlanan dosyaları gösterir ve sonunda
daha fazla bilgi verir. İkiden fazla -v kullanımı sadece rsync
hata ayıklaması yapıyorsanız anlamlıdır.
Aktarılan dosya isimlerinin çıktılanmasında --log-format
seçeneğinin öntanımlı olarak "%n%L" ile kullanıldığı
varsayılarak sadece dosyaların isimleri ve varsa sembolik bağlar
hedefleri ile belirtilir. Tek -v seviyesinden bir ayrıntıda bir
dosyanın öznitelikleri değişmişse bu gösterilmez. Değiştirilen
özniteliklerin öğelere göre listelenmesi isterseniz
(--itemize-changes seçeneğiyle ya da --log-format seçeneğine
"%i" ekleyerek), istemcideki çıktıda değiştirilen tüm öğelerin
ayrıntı düzeyi arttırılır. Daha fazla bilgi için --log-format
seçeneğinin açıklamasına bakınız.
-q, --quiet
Bu seçenek aktarım sırasında verilen bilgi miktarını azaltır.
Özellikle uzak sunucudaki bilgi iletileri baskılanır. Bu seçenek
rsync'i cron'dan çalıştırırken yararlıdır.
-I, --ignore-times
Normalde rsync hedefte de aynı boyutta ve aynı değişiklik
zamanına sahip dosyalar varsa bunları atlayacaktır. Bu seçenek
bu "hızlı sınama" davranışını kapatır.
--size-only
Normalde rsync hedefte de aynı boyutta ve aynı değişiklik
zamanına sahip dosyalar varsa bunları atlayacaktır. Bu
seçenekle, dosyaların zamanlarına bakılmaksızın hedefte de aynı
boyutta iseler aktarılmazlar. Zaman değerlerinin doğru
tutulmadığı başka bir yansılama sistemini kullandıktan sonra
rsync'i kullanmaya başlayacaksanız bu seçenek yararlıdır.
--modify-window=sayı
İki zaman değerini karşılaştırırken, fark sayı'ya eşitse rsync
bu değerleri eşit kabul eder. Bu fark normalde 0 dır (tam
eşitlik), ancak bu farkı bazı durumlarda daha büyük bir değere
ayarlamak daha yararlıdır. Örneğin, MS Windows FAT dosya sistemi
(zaman değerleri 2 saniyelik çözünürlüğe sahiptir) taraflardan
biri olduğunda --modify-window=1 yararlıdır (1 saniyelik
farklara izin vermek).
-c, --checksum
Bu seçenek göndericiyi aktarımdan önce tüm dosyaları 128 bitlik
MD4 sağlama toplamını kullanarak sınamaya zorlar. Sağlama
toplamı doğrudan alıcıda sınanır ve mevcut olanlar arasında aynı
sağlama toplamlı, aynı boyutlu ve aynı isimli olanlar
aktarılmaz. Bu seçenek aktarım işlemini oldukça yavaşlatabilir.
-a, --archive
Bu seçenek -rlptgoD seçeneklerine eşdeğerdir. Alt dizinlere
inerek işlem yapılmasını ve hemen hemen herşeyin korunmasını
istemenin en kestirme yoludur; bir şey dışında: --files-from
belirtilmişse -r uygulanmayacaktır.
Çok sayıda bağlı dosyanın varlığı pahalıya mal olacağından -a
seçeneği sabit bağları korumaz. Bunu istiyorsanız -H seçeneğini
ayrıca belirtmelisiniz.
-r, --recursive
Bu seçenek alt dizinlerinde ardışık olarak kopyalanmasını
sağlar. Ayrıca --dirs (-d) seçeneğine de bakınız.
-R, --relative
Göreli dosya yolları kullanılır. Yani, komut satırının gönderici
kısmında belirtilen dosya yolunun son parçası değil, dosya
yolunun tamamı kopyalanır. Bu seçenek aynı anda çok sayıda
dizini göndermek için yararlıdır. Örneğin şöyle bir komut,
rsync /foo/bar/foo.c remote:/tmp/
uzak makinede /tmp/foo.c dosyasını oluşturur. Bunun yerine şu
komutu kullansaydınız,
rsync -R /foo/bar/foo.c remote:/tmp/
uzak makinede /tmp/foo/bar/foo.c dosyası oluşturulacaktı (dosya
yolunun tamamı kopyalanır). Karşıya yollanacak yol uzunluğunu
sınırlamak için şöyle yapabilirsiniz:
cd /foo
rsync -R bar/foo.c remote:/tmp/
Bu komut uzak makinede /tmp/bar/foo.c dosyasını oluşturur.
--no-relative
--relative seçeneğini iptal eder. Bu özellikle --files-from
seçeneğinin gerektiği durumlarda --relative seçeneği
uygulanmaksızın dosyaları işleme sokmakta yararlıdır.
--no-implied-dirs
--relative seçeneği ile birlikte kullanıldığında her dosya
yolundaki dolaylı dizinler, aktarımın parçası olarak yinelenmez.
Bu dosya aktarımını daha elverişli yaptığı gibi ayrıca dosya
yolunun dolaylı parçalarında iki tarafta eşleşmeyen sembolik
bağların varlığını mümkün kılar. Örneğin, "/path/foo/file"
dosyasını -R ile aktarırsanız, hedefte "/path" ve "/path/foo"
ile kaynağın dizin ve sembolik bağları tamamen
eşleştirilecektir. --no-implied-dirs seçeneğinin kullanımı bu
dolaylı dizinlerin her ikisinin de atlanmasına yol açar. Yani,
eğer "/path" bir makine üzerinde gerçek bir dizin, ancak diğer
makinede bir sembolik baÄŸ ise, rsync bunu deÄŸiÅŸtirmeye
çalışmayacaktır.
-b, --backup
Bu seçenekle, evvelce mevcut hedef dosyaların her aktarımında ya
da silinmesinde bu dosyaların isimleri değiştirilir. Yedek
dosyaların nereye gideceğini ve nasıl bir sonek alacaklarını
--backup-dir ve --suffix seçenekleri ile belirtebilirsiniz.
Eğer --backup-dir seçeneğini belirtmezseniz, --omit-dir-times
seçeneği etkin kılınacaktır.
--backup-dir=dizin
--backup seçeneği ile birlikte kullanıldığında bu seçenekle
yedek dosyaların hangi dizinde saklanacağı belirtilebilir. Bu,
arttırımlı yedekleme yaparken çok yararlıdır. Buna ek olarak
--suffix seçeneğini kullanarak bir yedek soneki de
belirtebilirsiniz (aksi takdirde dosyalar belirtilen dizine
kendi isimleri ile yedeklenir).
--suffix=sonek
Bu seçenek --backup (-b) ile kullanıldığında, belirtilen sonek
öntanımlı yedekleme sonekinin yerine kullanılır. --backup-dir
belirtilmemişse, öntanımlı sonek ~ işaretidir, aksi takdirde boş
bir dizgedir.
-u, --update
Bu seçenek, hedefte mevcut olan bir dosyanın değişiklik
zamanının kaynak dosyanınkinden daha yeni olduğu durumda
atlanmasını sağlar. (Eğer hedef dosyanın değişiklik zamanı
kaynağınkiyle aynıysa, ama boyutları farklıysa güncelleme
yapılacaktır.)
--update seçeneğinin şu anki gerçekleniminde gönderici ve alıcı
arasında dosya biçimlerinde bir fark varsa, bu, güncelleme için
tarihlerden daha önemli olarak ele alınır. Başka bir deyişle,
hedef bir dosyaya sahipken, kaynak bir dizin veya bir sembolik
bağa sahipse, aktarım dosyalarını zaman değerlerine
bakılmaksızın yapılır. Bu davranış ileride değişebilir (bu
konuda bir fikriniz varsa, eposta listesinde bunu açıklamaktan
çekinmeyin).
--inplace
Bu seçenek rsync'in dosyanın yeni bir kopyasının
oluşturulmamasına ve yerine taşınmamasına sebep olur. Bunun
yerine rsync mevcut dosyanın üzerine yazacaktır,yani rsync
algoritması ağ yükünü tamamen azaltmayı başaramaz (henüz veriyi
uyumlu sıralamayı denemediğinden). Buna bir istisna, rsync yedek
dosyaları aktarımda temel dosya olarak kullanma yeterliğinde
olduğundan, seçeneğin --backup ile birlikte kullanılmasıdır.
Bu seçenek blok temelli değişiklikler olan ya da sonuna ekleme
yapılan çok büyük dosyalarla, disk ve ağ bakımından sınırlı
sistemlerde yararlıdır.
Bu seçenek --partial (kesilmeye uğramış bir aktarımda dosya
silinmez) seçeneğini uygular, fakat --partial-dir ve
--delay-updates seçenekleriyle çelişir. rsync 2.6.4 öncesinde
--inplace ayrıca --compare-dest ve --link-dest seçenekleriyle de
çelişiyordu.
Uyarı: Dosya verisi aktarım sırasında kararsız bir durumda
olacaktır (ve büyük ihtimalle aktarım kesintiye
uğradıktan sonra da), dolayısıyla, kullanılmakta olan
dosyaları bu seçeneği kullanarak güncellememelisiniz.
Ayrıca, alıcı kullanıcının yazma izni olmayan dosyaların
rsync tarafından yerinde güncellenemeyeceğini de
unutmayın.
-d, --dirs
Gönderen tarafın saptanan her dizini içereceğini söyler.
--recursive seçeneğinin tersine, bir dizinin içeriği, dizin
komut satırında "." ya da bir bölü çüzgisi ile biten bir isim
("foo/" gibi) ile belrtilmedikçe kopyalanmaz. Bu seçenek ya da
--recursive seçeneği olmaksızın, rsync saptadığı tüm dizinleri
atlayacaktır (ve herbiri için bir ileti çıktılayacaktır).
-l, --links
Saptanan her sembolik baÄŸ hedefte oluÅŸturulur.
-L, --copy-links
Sembolik bağ saptandığında sembolik bağ değil, hedefindeki dosya
kopyalanır. rsync'in eski sürümlerinde, bu seçenek ayrıca alıcı
tarafa, dizin sembolik bağı gibi sembolik bağları izlemesini
söylemek gibi bir yan etkiye sahipti. Günümüzde ise, rsync,
böyle bir durumda, bu ek davranışı sağlamak için sizin
--keep-dirlinks (-K) seçeneğini belirtmenizi gerektirir. Buna
tek istisna, -K seçeneğini anlayacak çok eski bir rsync ile
dosyaların gönderilmesidir -- bu durumda -L seçeneği daha eski
bir rsync ile hala -K seçeneğinin yan etkisine sahip olacaktır.
--copy-unsafe-links
Bu seçenek rsync'e, kopyalanan ağacın dışındaki bir hedefi
gösteren sembolik bağları kopyalamasını söyler. Mutlak sembolik
bağlar ayrıca sıradan dosyalar olarak ele alınır, böylece bunlar
--relative kullanıldığında kaynak dosya yolunun kendindeki
sembolik baÄŸlar olurlar.
safe-links
Bu seçenek rsync'e, kopyalanan ağacın dışındaki bir hedefi
gösteren sembolik bağları yoksaymasını söyler. Bu seçeneğin
--relative seçeneğiyle birlikte kullanılması beklenmedik
sonuçlara yol açabilir.
-H, --hard-links
Bu seçenek rsync'e, sabit bağları aynı kaynak sistemdeki gibi
yeniden oluşturmasını söyler. Bu seçenek olmaksızın sabit bağlar
sıradan dosyalar olarak ele alınırlar.
rsync'in, eğer bağın her iki parçası da dosya listesi ile
gönderilmişse, sabit bağları saptayabileceğini unutmayın.
Bu seçenek işlemi yavaşlatabilir, gerçekten bu işlevselliğe
ihtiyacınız varsa kullanın.
-K, --keep-dirlinks
Alıcı tarafta, bir sembolik bağ bir dizini gösteriyorsa, bunun
gönderici tarafta bir dizinle eşleştiği varsayılacaktır.
-W, --whole-file
Bu seçenekle arttırımlı rsync algortiması kullanılmaz ve bunun
yerine dosya olduğu gibi gönderilir. Eğer kaynak ile hedef
arasındaki band genişliği diskin band genişliğinden (özellikle
disk, ağ dosya sisteminin bir parçası ise) daha yüksekse bu
seçenek daha hızlı olabilir. Kaynak ve hedef, yerel dosya
yolları olarak belirtilmişse bu seçenek öntanımlıdır.
--no-whole-file
--whole-file öntanımlı olduğunda bu seçenek onu kapatır.
-p, --perms
Bu seçenek rsync'e, izinleri hedefte aynı kaynak sistemdeki gibi
belirlemesini söyler.
Bu seçenek olmaksızın, her yeni dosya izinlerini kaynak dosyanın
izinlerine ve alıcı taraftaki umask'a göre belirlenir, diğer tüm
dosyalar (güncellenenler dahil) kendi mevcut izinleriyle kalır
(bu, cp gibi diğer dosya kopyalama araçlarında da böyledir).
-o, --owner
Bu seçenek rsync'e, hedef dosyanın sahibini aynı kaynak
dosyadaki gibi belirlemesini söyler. Çoğu sistemde sadece
ayrıcalıklı kullanıcı dosya aidiyetini belirleyebilir. Öntanımlı
olarak, koruma isim tarafında yapılır, fakat bazı durumlarda son
çare olarak kullanıcı kimliği kullanılır. Bu konu --numeric-ids
seçeneğinin açıklamasında daha ayrıntılı incelenmiştir.
-g, --group
Bu seçenek rsync'e, hedef dosyanın grubunu aynı kaynak dosyadaki
gibi belirlemesini söyler. Alıcı tarafta rsync'i ayrıcalıklı
kullanıcı çalıştırmıyorsa, sadece alıcının üyesi olduğu gruplar
için bu yapılabilir. Öntanımlı olarak işlem grup ismine göre
yapılır, ancak bazı durumlarda son çare olarak grup kimliği de
kullanıabilir. Bu konu --numeric-ids seçeneğinin açıklamasında
daha ayrıntılı incelenmiştir.
-D, --devices
Aktarılan karakter ve blok aygıtları hedefte yeniden
oluşturulur. Bu seçeneği sadece ayrıcalıklı kullanıcı
kullanabilir.
-t, --times
Bu seçenek rsync'e, dosyaları değişiklik zamanlarına göre
aktarmasını ve bunları uzak sistemde güncellemesini söyler. Bu
seçenek kullanılmazsa, eniyileme yüzünden değiştirilmemiş
dosyaların dışlanması verimli olamaz; başka bir deyişle, -t veya
-a seçeneğinin yokluğu sonraki aktarımda -I kullanılmış gibi tüm
dosyaların güncellenmesine yol açar (rsync algoritması
güncellemeyi oldukça verimli yapacağından, eğer dosyalar
gereçekten değişmemişse, -t kullanmanız çok daha iyi olacaktır).
-O, --omit-dir-times
Eğer rsnc değişiklik zamanlarını güncelliyorsa (--times ile), bu
seçenek belirtildiğinde dizinleri bunun dışında tutar. Eğer
alıcı tarafta NFS dizinleri paylaştırıyorsa, -O seçeneğini
kullanmak daha iyidir. Bu seçenek --backup seçeneği --backup-dir
olmaksızın kullanılmış gibi sonuç verir.
-n, --dry-run
Bu seçenek rsync'e, herhangi bir dosya aktarımı yapmamasını,
sadece yapıyormuş gibi işlemleri raporlamasını söyler.
-S, --sparse
Bu seçenekle rsync, seyrek dosyaların hedefte daha az yer
kaplayacak şekilde elde edilmesini sağlamaya çalışır.
Bilgi: Bu seçeneği hedefteki dosya sistemi Solaris "tmpfs" ise
kullanmayın. Boş bölgelerin düzgünce atlanmasını
saÄŸlayamaz ve dosya sonunda bozulmalar oluÅŸur.
-x, --one-file-system
Bu seçenek rsync'e, aktarım sırasında dosya sistemi sınırlarının
dışına çıkmamasını söyler. Bu seçenek, tek bir dosya sisteminin
içeriğini aktarmak için yararlıdır.
--existing
Bu seçenek rsync'e, hedefte yeni dosya oluşturulmasını
gerektirecek aktarımları yapmamasını sadece güncelleme yapmasını
söyler.
--ignore-existing
Bu seçenek rsync'e, hedefte mevcut olan dosyaları
güncellememesini söyler.
--remove-sent-files
Bu seçenek rsync'e, hedefte yeni oluşturulan dosyalarla içeriği
güncellenenleri, gönderen taraftan silmesini söyler. Dizinler ve
aygıtlar ile sadece öznitelikleri değiştirilmiş dosyalar
silinmez.
--delete
Bu seçenek rsync'e, hedefte olup kaynakta olmayan dosyaları
hedeften silmesini söyler, fakat sadece dosyalar dizinleri ile
belirtilmişse bu yapılır. Yani, rsync'den tüm dizini ("dir" veya
"dir/" gibi) göndermesini istemeli, dizin içeriğini belirten
dosya kalıpları ("dir/*" gibi) belirtmemelisiniz. Dosya
kalıpları belirtildiğinde kalıp kabuk tarafından yorumlanır ve
kabuk rsync'den dosyaları kapsayan dizini değil, tek tek
dosyaları aktarmasını ister. Aktarımdan dışlanan dosyalardan
biriyse, --delete-excluded kullanılmamışsa ya da kurallar sadece
gönderen tarafla eşleşenleri imliyorsa hedefte silinecek olanlar
da dışlanır (SÜZME KURALLARI bölümündeki içerme/dışlama
belirteçlerine bakınız).
Alt dizinlere inilmiyorsa bu seçenek etkisizdir.
Bu seçenek doğru şekilde kullanılmazsa tehlikeli olabilir. Önce
--dry-run (-n) seçeneğiyle silinecek dosyaları görüp, önemli
dosyaların silinmeyeceğinden emin olduktan sonra asıl işlemi
başlatmak çok daha iyidir.
Gönderen tarafta bir G/Ç hatası saptandığında hedefteki dosya
silme işlemi iptal edilir. Bu, gönderen tarafın alıcı taraftaki
dosyaları tümden silmesi gibi geçici dosya sistemi hatalarına
karşı (NFS hataları gibi) bir önlemdir. Bu davranışı
--ignore-errors seçeneğiyle iptal edebilirsiniz.
--delete seçeneği silme zamanını belirten --delete-*
seçenekleriyle, --delete-excluded dahil, herhangi bir sorun
olmaksızın birleştirilebilir. Ancak, silme zamanını belirten
--delete-* seçeneklerinden biri belirtilmemişse, rsync öntanımlı
olarak --delete-before algoritmasını seçer. İleri sürümlerde bu
seçim --delete-during algoritmasıyla değiştirilebilir. Ayrıca,
--delete-after seçeneğine de bakınız.
--delete-before
Alıcı taraftaki dosya silme işlemlerinin aktarımın başlangıcında
yapılmasını sağlar. Bu seçenek --delete veya --delete-excluded
seçeneği ile birlikte silme zamanını belirten --delete-*
seçeneklerinden biri belirtilmemişse öntanımlıdır. Dosya
silinmesi ile ilgili daha ayrıntılı bilgi için --delete
seçeneğinin açıklamasına bakınız.
Aktarımın başında silme yapılması, eğer dosya sistemi doluluk
bakımından sınırda ise ve ancak fazlalıkların kaldırılmasıyla
dosya aktarımı mümkün olabilecekse yararlıdır. Ancak, bu seçenek
aktarımın başlamasını geciktirdiğinden aktarımın zamanaşımına
uğramasına (--timeout belirtilmişse) sebep olabilir.
--delete-during, --del
Alıcı taraftaki dosya silme işlemlerinin aktarımı sırasında
yapılmasını sağlar. Bu yöntem silme işleminin aktarımdan önce ve
sonra yapıldığı algoritmalardan daha hızlıdır. Fakat ilk olarak
rsync'in 2.6.4 sürümüyle kullanılabilir olmuştur. Dosya
silinmesi ile ilgili daha ayrıntılı bilgi için --delete
seçeneğinin açıklamasına bakınız.
--delete-after
Alıcı taraftaki dosya silme işlemlerinin aktarım tamamlandıktan
sonra yapılmasını sağlar. Eğer aktarımın bir parçası olarak
dizin bazında yeni dosya birleşimleri yapıyorsanız ve bunların
ihracının aktarımın silme fazında etkin olmasını istiyorsanız bu
seçenek yararlı olacaktır. Dosya silinmesi ile ilgili daha
ayrıntılı bilgi için --delete seçeneğinin açıklamasına bakınız.
--delete-excluded
Alıcı tarafta olup, gönderici tarafta olmayan dosyaların alıcı
tarafta silinmesine ek olarak, alıcı tarafta dışlanan
dosyalarında silinmesini sağlar (--exclude seçeneğine bakınız).
Alıcı tarafta tek tek dosyaların dışlanmasının bu yöntemle
silinmesi ve silinmesi istenmeyen dosyaların bu seçenekten
korunması ile ilgili bilgiler için SÜZME KURALLARI bölümüne
bakınız. Dosya silinmesi ile ilgili daha ayrıntılı bilgi için
ise --delete seçeneğinin açıklamasına bakınız.
--ignore-errors
G/Ç hataları olsa bile --delete işleminin sürdürülmesini sağlar.
--force
Gönderici tarafta olmayan ancak alıcı tarafta olan dizinlerin
içleri dolu bile olsa silnmesini sağlar. Bu sadece --delete
seçeneği olmaksızın böyledir, çünkü silme işlemleri artık içiçe
dizinler içeren bir tepe dizinin silinmesi şeklinde
yapılmaktadır. Etkin olması için --recursive seçeneği (-a
tarafından uygulanır) gerekir.
--max-delete=sayı
sayı'dan fazla dosya ya da dizin silinmez. Yansılama yapılırken
çok büyük ağaçların yıkıma yol açmaması için yararlıdır.
--max-size=boyut
boyut bayttan dha büyük dosyalar aktarılmaz. boyut
belirtilirken, sonek olarak K, M, G gibi bayt çarpanları
belirtilebileceÄŸi gibi kesirli deÄŸerler de belirtilebilir
(--max-size=1.5m gibi).
-B, --block-size=blokboyu
rsync algoritmasında sabit bir blok boyunun kullanımına zorlar.
Normalde, bu değer güncellenen her dosya için ayrı ayrı seçilir.
Daha ayrıntılı bilgi için teknik rapora bakınız.
-e, --rsh=komut
Bu seçenek rsync'in yerel ve uzak kopyaların arasında iletişim
için bir uzak kabuk uygulaması belirleyebilmeyi sağlar. Genelde,
rsync öntanımlı olarak ssh kullanacak şekilde yapılandırılır,
fakat bir yerel ağda rsh kullanmayı da tercih edebilirsiniz.
Bu seçenek [kullanıcı@]makine::modül/yol ile kullanılırsa, uzak
makinedeki rsync sunucusunu çalıştırmak için belirtilen uzak
kabuk komut'u kullanılacak ve aktarım için uzak makinede çalışan
rsync suncusunun soket bağlantısı değil, uzak kabuk bağlantısı
kullanılacaktır. Ayrıca, yukarıdaki BİR RSYNC SUNUCUSUNA BİR
UZAK KABUKTAN BAĞLANMAK bölümüne de bakınız.
komut içinde rsync sadece tek bir argümana izin verir. Örnek:
-e "ssh -p 2234"
Bilgi: ssh kullanıcıları makineye özel bağlantı seçeneklerini
kendi .ssh/config dosyası ile kişiselleştirebilirler.
Uzak kabuk uygulamasını seçmek için RSYNC_RSH ortam değişkenini,
-e seçeneğinde belirtilebilen bir değeri atayarak
kullanabilirsiniz.
Ayrıca, bu seçenekten etkilenen --blocking-io seçeneğinin
açıklamasına da bakınız.
--rsync-path=uygulama
Uzak makinede başlangıçta hangi uygulamanın çalıştırılacağını
belirtmek için kullanılır. Çoğunlukla, rsync'in uzak kabuğun
öntanımlı yolları dışında bulunduğu durumda kullanılır
(--rsync-path=/usr/local/bin/rsync gibi). uygulama kabuk
tarafından çalıştırılacağından herhengi bir uygulama, betik ya
da bir dizi komut olabilir. Bir dizi komut belirtiyorsanız
rsync'in iletişimde kullanacağı standart girdi ve standart
çıktının devredışı kalmamasına dikkat etmelisiniz.
Aşağıdaki örnekte uzak makinede --relative seçeneği ile
kullanmak için farklı bir öntanımlı yol belirtilmektedir:
rsync -avR --rsync-path="cd /a/b && rsync" makine:c/d /e/
-C, --cvs-exclude
Sistemler arasında aktarımı istenmeyen geniş bir dosya kümesinin
dışlanması için bir kısayol olarak kullanışlıdır. CVS'nin
yoksayılacak dosyaları saptamakta kullandığı algoritma
kullanılır.
Dışlanan dosyaların listesi şöyle ilklendirilmiş olsun:
RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS
.make.state .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak
*.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj *.so *.exe
*.Z *.elc *.ln core .svn/
$HOME/.cvsignore içindeki dosyalarla CVSIGNORE ortam
değişkeninde (tüm isimler bir boşlukla ayrılarak belirtilir)
listelenen her dosya bu listeye eklenecektir.
Son olarak, .cvsignore dosyası ile aynı dizindeki dosyalardan
.cvsignore dosyasında listelenmiş kalıplarla eşleşen dosyalar
yok sayılır. rsync'in süzme ve dışlama uyguladığı dosyaların
aksine bu kalıplar boşluklarla ayrılır. Daha fazla bilgi için
cvs(1) kılavuz sayfasına bakınız.
Bu seçeneği kendi --filter kurallarınızla birlikte
belirtirseniz, -C seçeneğinin komut satırının neresinde olduğuna
bakılmaksızın, CVS dışlananlarının sizin kurallarınızın sonuna
ekleneceğini unutmayın. Bu, onlara sizin belirttiğiniz kurallara
göre daha düşük öncelik verir. CVS dışlananlarının süzme
kurallarınız arasındaki yerini kendiniz belirlemek isterseniz,
komut satırı seçeneği olarak -C belirtmek yerine --filter=:C ve
--filter=-C seçeneklerini belirtmelisiniz (bu şekilde komut
satırında belirtebileceğiniz gibi bir süzme dosyasına ":C" ve
"-C" kurallarını yerleştirerek de belirtebilirsiniz). İlk kural
her dizinde .cvsignore dosyalarına bakılmasını, ikinci kural ise
yukarıda bahsedilen CVS dışlananlarını bir seferliğine dahil
edilmesini saÄŸlar.
-f, --filter=kural
Bu seçenek aktarılacak dosyalar listesinden belli dosyaların
seçilerek dışlanması için kurallar eklemenizi mümkün kılar. Bu
seçenek alt dizinlerin ardışık aktarıldığı aktarımlarda
kullanıldığında çok yararlıdır.
Dışlanacak dosyaların listesini oluşturmak içim komut satırında
çok sayıda --filter seçeneği belirtebilirsiniz.
Bu seçenek hakkında daha ayrıntılı bilgi için SÜZME KURALLARI
bölümüne bakınız.
-F Bu seçenek iki defa belirtildiğinde komuta iki --filter kuralı
eklemeye eşdeğerdir. İlk seçenek şu kuralı ekler:
--filter=': /.rsync-filter'
Bu kural, rsync'in dizin hiyerarÅŸisi dahilinde serpiÅŸtirilmiÅŸ
.rsync-filter dosyalarına bakmasını ve aktarımda bu dosyalardaki
süzme kurallarını kullanmasını sağlar. -F seçeneği ikinci kez
kullanılmışsa şu kuralı uygular:
--filter='- .rsync-filter'
Bu kural .rsync-filter dosyalarının aktarılmamasını sağlar.
Bu seçenek hakkında daha ayrıntılı bilgi için SÜZME KURALLARI
bölümüne bakınız.
--exclude=kalıp
Bu seçenek bir dışlama kuralı tanımlanmasını sağlayan --filter
seçeneğinin basitleştirilmiş bir biçimidir. Seçenek, normal
süzme kurallarının kural çözümleme sözdizimine izin vermez.
Bu seçenek hakkında daha ayrıntılı bilgi için SÜZME KURALLARI
bölümüne bakınız.
--exclude-from=dosya
Bu seçenek, dışlama kurallarının belirtilen dosyadan alınmasını
sağlaması dışında --exclude seçeneğinin benzeridir. dosya
içindeki boş satırlar ile ';' veya '#' ile başlayan satırlar
yoksayılır. dosya olarak - belirtilmişse girdiler standart
girdiden okunur.
--include=kalıp
Bu seçenek bir içerme kuralı tanımlanmasını sağlayan --filter
seçeneğinin basitleştirilmiş bir biçimidir. Seçenek, normal
süzme kurallarının kural çözümleme sözdizimine izin vermez.
Bu seçenek hakkında daha ayrıntılı bilgi için SÜZME KURALLARI
bölümüne bakınız.
--include-from=dosya
Bu seçenek, içerme kurallarının belirtilen dosyadan alınmasını
saÄŸlar. dosya olarak - belirtilmiÅŸse girdiler standart girdiden
okunur.
--files-from=dosya
Bu seçeneği kullanarak aktarılacak dosyaların tam listesini
belirtebilirsiniz. Liste dosya'dan ya da "-" belirtilmiÅŸse
standart girdiden okunur. Ayrıca, bu seçenekle birlikte
öntanımlı uygulanan seçeneklere bağlı olarak rsync'in öntanımlı
davranışını kolayca değiştirebilirsiniz:
o --relative (-R) seçeneği uygulanarak dosya içindeki her
öğede belirtilen yol bilgisi korunmuştur (bu davranışı
kapatmak için --no-relative seçeneğini kullanın).
o --dirs (-d) seçeneği uygulanarak listede belirtilen
dizinlerin atlanmayıp, hedefte oluşturulması sağlanmıştır.
o --archive (-a) seçeneği uygulanmasına rağmen bu seçeneğin
uygulamalarından biri olan --recursive (-r) seçeneği
uygulanmadığından, bu davranışın uygulanmasını istiyorsanız
--recursive (-r) seçeneğini ayrıca belirtmelisiniz.
dosya'dan okunan dosya isimlerinin hepsi kaynak dizine göre
değerlendirilir -- öğelerin başındaki "/"lar ile daha üst
dizinlere çıkılmasını sağlayan "../"lar kaldırılır. Örnek:
rsync -a --files-from=/tmp/foo /usr uzak:/yedek
/tmp/foo içinde "bin" (hatta "/bin") diye bir girdi varsa,
/usr/bin dizini hedefte /yedek/bin dizini olarak oluÅŸturulur
(ancak, dosya içinde dosyalar açıkça listelenmemişse ya da komut
satırında -r seçeneği yoksa /usr/bin dizinindeki dosyalar
aktarılmaz). Ayrıca, --relative seçeneğinin etkisini (öntanımlı
olarak etkindir) sadece dosyadan okunan yol bilgisini yinelemek
için saklar ancak, kaynak için belirtilmiş yolun yinelenmesine
zorlamaz (örnekte /usr).
Ek olarak, eğer dosya'yı "uzak:" öneki ile belirtirseniz, bu
dosya yerel makineden deÄŸil, uzak makineden okunur (uzak: ile
belirtilen makine, aktarımın yapıldığı makine olmalıdır). Bir
kısaltma olarak, "aktarımın yapıldığı uzak makine" anlamında
sadece ":" önekini de kullanabilirsiniz. Örnek:
rsync -a --files-from=:/yol/dosya-listesi uzak:/ /tmp/kopya
Bu komut "uzak" makinesindeki /yol/dosya-listesi dosyasında
listelenmiş dosyaları kopyalayacaktır.
-0, --from0
Bu seçenek rsync'e, bir dosyadan okunan dosya isimlerinin
sonlandırılmasının satırsonu karakteri (LF) veya satırbaşı
karakteri (CR) ya da her bu ikisinin birlikte kullanılmasıyla
(CR+LF) değil sadece boş karakterle ('\0') yapıldığını belirtir.
Bu seçenek --exclude-from, --include-from, --files-from ve bir
--filter kuralı ile belirtilen dosyaları etkiler. Dosya
isimlerinin boşluk ile ayrıldığı .cvsignore dosyalarını kullanan
--cvs-exclude seçeneğini etkilemez.
-T, --temp-dir=dizin
Bu seçenekle, dosyalar aktarılırken alıcı tarafta geçici olarak
oluşturulan dosyaların nereye konulacağını belirtmek için
kullanılır. Öntanımlı davranış, geçici dosyaların alıcı dizinde
oluşturulmasıdır.
-y, --fuzzy
Bu seçenekle, hedefte bulunmayan bir dosya için benzer bir dosya
aranacağını belirtilir. Şimdiki algoritma, hedef dosya için aynı
dizinde, aynı boyda ve aynı değişiklik zamanlı ya da aynı isimli
bir dosya arar. Böyle bir dosya varsa, bu dosya bulanık bir
hedef dosya olarak aktarımın hızlandırılması amacıyla
kullanılır.
Bilgi: --delete seçeneği bu amaçla kullanılabilecek bir dosyanın
işlem öncesinde silinmesine yol açabileceğinden, bunun
yerine ya --delete-after seçeneğini kullanın ya da
dosyanın silme işlemine konu olmayacak şekilde olmasına
dikkat edin.
--compare-dest=dizin
Bu seçenekle, alıcı makinede hedef dizinde olmayan dosyalar için
karşılaştırmanın dizin dizinine göre yapılacağı belirtilir. Eğer
dizin içinde göndericinin dosyasının aynısı varsa bu dosya
aktarılmaz. Bu, sadece bir önceki yedeklemeden beri değişmiş
dosyaların yedeklenmesi için kullanışlıdır.
2.6.4 sürümünden başlayarak, çok sayıda --compare-dest dizini
belirtilebilmektedir. EÄŸer hedefte bir eÅŸleÅŸme bulunamazsa,
dosya bu dizinlerde aranır.
Eğer dizin göreli bir dizin olarak belirtilmişse bu dizinin
hedef dizinde olduğu kabul edilir. Ayrıca --link-dest seçeneğine
de bakınız.
--link-dest=dizin
Bu seçenek, dizin içindeki değişmemiş dosyaların hedef dizine
sabit bağlı yapılması dışında --compare-dest seçeneği gibi
davranır. Sabit bağlı yapılacak dosyalar öznitelikleri (izinler,
sahipler, v.s) bakımından kaynaktakilerle tamamen aynı
olmalıdır. Örnek:
rsync -av --link-dest=$PWD/öncü-dizin \
makine:kaynak-dzn/ yeni-dzn/
2.6.4 sürümünden başlayarak, çok sayıda --link-dest dizini
belirtilebilmektedir. EÄŸer hedefte bir eÅŸleÅŸme bulunamazsa,
dosya bu dizinlerde aranır.
Eğer dizin göreli bir dizin olarak belirtilmişse bu dizinin
hedef dizinde olduğu kabul edilir. Ayrıca --compare-dest
seçeneğine de bakınız.
Bilgi: 2.6.1 sürümünden önceki sürümlerde, -o seçeneği (-a
seçeneği de bu seçeneği uygular) belirtilmişse,
--link-dest seçeneği root olmayan bir kullanıcı için
istendiği gibi çalışmayacaktır (yazılım hatası). Bu
hatadan korunmak için böyle bir rsync ile -o seçeneğini
kullanmamalısınız.
-z, --compress
Bu seçenekle hedef makineye gönderilen dosyaların verilerini
rsync, aktarım miktarını azaltmak için sıkıştıracaktır.
Özellikle, yavaş bağlantılar için çok yararlıdır.
Bilgi: Hedef makinede sıkıştırma için aynı araçlar
kullanılıyorsa, sıkıştırılmış veri sıkıştırma ile ilgili
dolaylı bilgileri içermeyeceğinden aktarımda daha iyi
sıkıştırma yapılabilmektedir.
--numeric-ids
Bu seçenekle rsync, her iki uçta kullanıcı ve grup isimlerini
değil, kullanıcı ve grup kimliklerini eşleştirmeye çalışacaktır.
Öntanımlı olarak rsync, dosyaların sahibini belirlemekte
kullanıcı ve grup isimlerini kullanır. Özel kullanıcı ve grup
kimliği olan 0 kimliği, bu seçenek belirtilmemiş olsa bile,
kullanıcı ve grup isimleriyle asla eşleştirilmez.
Eğer kullanıcı ve grup isimleri her iki uçta eşleşmiyorsa,
bunların yerine kaynak sistemdeki kullanıcı ve grup kimlikleri
kullanılır. chroot ayarlarının rsync'in kullanıcı ve grup
isimlerini arama yeteneklerini nasıl etkilediğini ve bunları
nasıl değiştirebileceğinizi öğrenmek için rsyncd.conf(5) kılavuz
sayfasındaki use chroot modül seçeneğinin açıklamasına bakınız.
--timeout=süre
Bu seçenekle G/Ç zamanaşımını saniye cinsinden
belirtebilirsiniz. Belirtilen süre içinde bir aktarım
gerçekleşmezse, rsync işlemi sonlandıracaktır. Öntanımlı değer,
bir zamanaşımı olmadığını belirten 0 değeridir.
--port=port
Öntanımlı 873. port yerine kullanılacak portu belirtmek için
kullanılır. URL sözdizimi port belirtmek için zaten bir yöntem
içerdiğinden, bu sadece bir rsync sunucusuna "::" kullanarak
bağlanıyorsanız gerekir. Bu seçeneğin SUNUCU SEÇENEKLERİ
bölümündeki açıklamasına da bakınız.
blocking-io
Uzak kabuk aktarımı başlatılırken engellenebilen G/Ç
kullanılmasını belirtir. Uzak kabuk rsh veya remsh ise, rsync
öntanımlı olarak engellenebilen G/Ç, aksi takdirde
engellenemeyen G/Ç kullanır (ssh ile engellenemeyen G/Ç tercih
edilir).
no-blocking-io
Öntanımlı olarak engellenebilen G/Ç kullanılıyorsa, bunu
kapatır.
-i, --itemize-changes
Her dosyanın öznitelik değişikliklerini de içererek yapılmış
değişikliklerin dosyalara göre tasnif edilmiş bir listesini
ister. Bu, --log-format='%i %n%L' belirtmekle aynıdır.
"%i" belirtimi 9 karakter uzunlukta şifresel bir çıktıya
sahiptir. Genel biçimi UXcstpoga dizgesine benzer. Burada U
karakteri yapılan güncellemenin çeşidini, X karakteri dosya
türünü diğer karakterler ise güncellenmişlerse öznitelikleri
belirten bir karakterle deÄŸiÅŸtirilir.
U karakterinin yerini alan güncelleme türleri şunlardır:
o < karakteri yerel makineye aktarılan (alınan) bir dosyayı
belirtir.
o > karakteri yerel makineye aktarılan (gönderilen) bir dosyayı
belirtir.
o c karakteri yerel makinede deÄŸiÅŸtirilen/oluÅŸturulan bir
dosyayı belirtir (bir dizin ya da sembolik bağın
oluşturulması gibi).
o h karakteri başka bir öğeye sabit bağ olan bir öğeyi belirtir
(--hard-links gerektirir).
o . (nokta) karakteri sadece öznitelikleri değişmiş bir dosya
belirtir.
o = karakteri öğenin iki uçta da aynı olduğunu belirtir (bu
sadece ve sadece yüksek bir ayrıntı seviyesinde çıktılanır).
X karakterinin yerini alan dosya türleri şunlardır: bir dosya
için f, bir dizin için d, bir sembolik bağ için L ve bir aygıt
için D.
UXcstpoga dizgesinin diğer harfleri, gerçek karakterler olup,
öğenin ilgili öznitelikleri güncellenmişse çıktılanırlar, aksi
takdirde "." ile değiştirilirler. Bunun üç istisnası vardır:
1. yeni oluşturulmuş bir öğe için her harf bir "+" ile
deÄŸiÅŸtirilir.
2. İki uçtada aynı olan öğelerde her harf bir boşlukla
deÄŸiÅŸtirilir.
3. Bilinmeyen her öznitelik bir "?" ile değiştirilir (bu, daha
eski bir rsync ile konuşurken ortaya çıkar).
Harflerin belirttiği öznitelikler şunlardır:
o c dosyanın sağlama toplamlarının farklı olduğunu ve dosyanın
aktarımla güncelleneceğini belirtir (--checksum gerektirir).
o s dosyanın boyutlarının farklı olduğunu ve dosyanın aktarımla
güncelleneceğini belirtir
o t değişklik zamanlarının farklı olduğunu ve sunucudaki değer
ile güncelleneceğini belirtir (--times gerektirir). Bazan bu
karakterin yerine T kullanılır ve zamanın aktarım zamanına
ayarlanacağını belirtir. T harfi, bir bir dosya ya da dizin
--times seçeneği belirtilmeksizin aktarılırken ya da bir
sembolik bağ aktarılırken çıktılanır.
o p izinlerin farklı olduğunu ve sunucudaki değer ile
güncelleneceğini belirtir (--perms gerektirir).
o o sahiplerin farklı olduğunu ve sunucudaki değer ile
güncelleneceğini belirtir (--owner ve root yetkileri
gerektirir).
o g grupların farklı olduğunu ve sunucudaki değer ile
güncelleneceğini belirtir (--group ve grup yetkileri
gerektirir).
o a harfi gelecekte ACL'ler gibi geniÅŸletilmiÅŸ dosya
özniteliklerini desteklemek üzere yedek olarak ayrılmıştır.
Olası diğer bir çıktı daha vardır: dosyalar silinirken silinecek
her öğe için "%i" belirtimi "deleting" dizgesini çıktılar
(yeterince son sürüm bir rsync ile konuşulduğu ve bunun silme
işlemlerini bir ayrıntı olarak çıktılamayıp günlük kaydı tuttuğu
varsayımıyla).
--log-format=biçim
İşlenen her dosya için kullanıcıya rsync istemcisinin nasıl bir
çıktı göstereceğini belirlemenizi sağlar. biçim her biri %
karakteri ile öncelenmiş tek karakterli belirtimlerden oluşan
bir dizgedir. Olası belirtimlerin listesi için rsyncd.conf(5)
kılavuz sayfasındaki log format seçeneğinin açıklamasına
bakınız. (--log-format seçeneği bir sunucunun günlük kaydında ne
çıktılayacağını belirlemez.)
biçim dizgesinde --itemized-changes belirtimi (%i)
kullanılmamışsa, belli bir yolla (bir dosyanın aktarılması, bir
sembolik bağ veya aygıtın yeniden oluşturulması, bir dizine
dokunulması) güncellenen her dosya için çıktı üretilecektir,
aksi takdirde, çıktılama herhangi bir yolla güncellenen her
öğeye genişletilir (alıcı tarafın sürümü en azından 2.6.4 ise).
"%i" belirtiminin çıktısı ile ilgili ayrıntılar için
--itemized-changes seçeneğinin açıklamasına bakınız.
--verbose seçeneği "%n%L" biçiminin uygulanmasını sağlar.
--log-format seçeneğini isterseniz, -v (--verbose) seçeneğini
belirtmeksizin kullanabileceğiniz gibi bu seçeneği de kullanarak
her dosya için bu biçimdeki bir çıktının üretimesini de
saÄŸlayabilirsiniz.
Günlüklemenin aktarımın sonunda yapılmasını sağlayan aktarım
istatistiği belirtimlerinden biri belirtilmedikçe rsync, günlük
biçimi dizgesini bir dosyanın aktarımından önce çıktılayacaktır.
Bu geç günlükleme etkin olduğunda ve ayrıca --progress
belirtilmişse rsync ayrıca aktarılan dosyanın ismini işlem
bilgisinden önce (şüphesiz, --log-format çıktısından sonra)
çıktılayacaktır.
--stats
Bu seçenek rsync'e, rsync algoritmasının verileriniz için ne
kadar verimli olduğunu görmenizi sağlayacak dosya aktarım
istatitiklerini ayrıntılı olarak basmasını söyler.
--partial
Aktarım kesintiye uğramışsa, öntanımlı olarak rsync, aktarımı
yarım kalmış dosyayı silecektir. Bazı durumlarda kısmen
aktarılmış dosyaları silinmemesi istenebilir. Aktarımın bir
sonraki bağlantıda tamamlanmasını hızlandırmak üzere kısmen
aktarılmış dosyaların silinmemesi için bu seçeneği
kullanabilirsiniz.
--partial-dir=dizin
Aktarımı yarım kalmış dosyaların silinmesini önlemenin daha iyi
bir yolu bu tür dosyalar için ayrı bir dizin belirtmektir.
Sonraki aktarımda, rsync bu dosyanın aktarımını tamamlamak için
belirtilen dizin içindeki dosyayı kullanacak ve dosyanın
aktarımı tamamlandıktan sonra bu dosyayı silecektir. Yalnız,
eğer --whole-file belirtilmişse (ya da dolaylı uygulanıyorsa),
rsync arttırımlı algoritmayı kullanmaksızın dosyaları
göndereceğinden, dizin içinde tamamlanmayı bekleyen bir dosya
bulunursa basitçe silinecektir.
Eğer dizin mevcut değilse, rsync dizin'i oluşturacaktır (sadece
son dizin, yolun tamamı değil). Bu davranışın sonucu olarak,
hedef dosyanın bir dizin oluşturmayı gerektirdiği durumlarda
göreli yol belirtmek (--partial-dir=.rsync-partial gibi) daha
iyidir, bu takdirde eksik dosya iÅŸlem sonunda silindiÄŸinde bu
dizin de silinir.
EÄŸer dizin ile mutlak bir yol belirtilmemiÅŸse, mevcut
dışlamalarınızın sonunda rsync ayrıca --exclude değeri olarak
bir dizin ekleyecektir. Böylece dizin içindeki dosyaların
aktarımı ve ayrıca alıcı tarafta bu dosyaların zamanından önce
silinmesi engellenecektir. Bir örnek: yukarıdaki --partial-dir
seçeneği diğer süzme kurallarının sonuna bir
"--exclude=.rsync-partial/" kuralı ekleyecektir. Eğer kendiniz
bir takım süzme kuralları kullanıyorsanız, bu kuralın daha
yüksek öncelik alması için kendi kurallarınız içinde uygun bir
yerde belirtebilirsiniz (kurallarınızın sonunda bir
--exclude='*' kuralı varsa, özdevimli eklenen bir kural hiçbir
zaman erişilebilir olmayacaktır).
Önemli:
--partial-dir ile belirtilen dizine diğer kullanıcılar
yazamamalıdır, aksi takdirde bu bir güvenlik açığı
oluÅŸturur. Yani "/tmp" gibi bir dizin belirtmekten
KAÇININ.
Ayrıca dizin değerini RSYNC_PARTIAL_DIR ortam değişkeninde
belirtebilirsiniz. Bu değişkene bir değerin atanmış olması
--partial seçeneğinin etkin olmasını sağlamaz ama komut
satırında --partial seçeneğini belirtmekle --partial-dir
seçeneğine dizin belirtilmiş gibi işlem yapılması sağlanır.
Örneğin, --partial-dir=.rsync-tmp ile --progress seçeneğini
birlikte kullanmak yerine, kabukta RSYNC_PARTIAL_DIR=.rsync-tmp
şeklinde bir atama yaptığınızı ve .rsync-tmp dizinini eksik
kalan aktarımı tamamlamak için komut satırında sadece -P
seçeneğini belirterek kullandığınızı varsayalım. --partial
seçeneğinin bu ortam değişkenine bakmadığı durumlar, (1)
--inplace seçeneğinin belirtilmiş olması (--inplace seçeneği
--partial-dir ile çeliştiğinden), (2) --delay-updates
seçeneğinin belirtilmiş olmasıdır (aşağıya bakınız).
Sunucu yapılandırmasının refuse options ayarı, amacı gereği
--partial-dir seçeneğinin --partial seçeneğini uygulamamasına
sebep olur. Bu, yani, --partial seçeneğinin reddedilmesi,
--partial-dir tarafından sağlanan daha güvenilir üsluba hala
izin veriyor olmakla, aktarımı yarım kalmış hedef dosyaların
tekrar yazılmasına izin vermemekte kullanılabilir.
--delay-updates
Bu seçenek, güncellenen her dosyayı aktarımın sonunda isimleri
değiştirilmek suretiyle yerine taşınmak üzere bir dizin içinde
geçici bir dosyaya koyar. Bu dosyaların güncellenmesini daha
atomik yapmayı amaçlar. Öntanımlı olarak bu dosyalar her
dosyanın hedef dizini içindeki ".~tmp~" isimli bir dizine konur,
fakat bu davranışı --partial-dir seçeneğini belirterek
değiştirebilirsiniz. Bu seçenek --inplace seçeneği ile çelişir.
Bilgi: Bu seçeneğe özel olarak, --partial-dir yerine
RSYNC_PARTIAL_DIR ile --partial belirtmek
RSYNC_PARTIAL_DIR değerinin kullanılmasını sağlamaz.
Ayrıca, sunucu yapılandırmasının refuse options ayarı,
amacı gereği --partial-dir seçeneğine özel uygulamalar da
yapılmaz.
Bu seçenek alıcı tarafta biraz daha fazla bellek kullanımına
(aktarılan dosya başına bir bit) ve güncellenen tüm dosyaları
tutacak kadar boş disk alanına gereksinim duyar. Ayrıca, yol
mutlak olduğunda güncellenen dosyaların hepsi tek bir dizine
konulacağından, aktarımda dosyaların herhangi birinin aynı
isimde olma olasılığının olmaması durumu dışında, --partial-dir
ile mutlak dosya yolu belirtmemelisiniz.
Ayrıca, çok daha atomik bir güncelleme algortiması içeren, rsync
paketinin "support" alt dizinindeki "atomic-rsync" perl betiÄŸine
de bakın (--link-dest seçeneğini ve dosyalar için paralel bir
hiyerarşi kullanır).
--progress
Aktarımın gelişimini gösteren çıktı üretilmesini sağlar. Bu,
bezgin kullanıcıya bazı şeyleri kollayabilme imkanı verir.
Açıkça belirtilmemişse, --verbose seçeneğini de uygulanır.
Bir dosya aktarılırken, üretilen çıktı şöyle görünür:
782448 63% 110.64kB/s 0:00:04
Bu çıktı kullanıcıya o anki dosya boyunu, aktarılmış verinin
yüzdesini (hattaki veri ile aktarılmış verinin toplamı olarak),
aktarım hızını ve aktarımın tamamlanması için gerekli kalan
süreyi gösterir.
Bir dosya aktarıldıktan sonra, üretilen çıktı şöyle görünür:
1238099 100% 146.38kB/s 0:00:08 (5, 57.1% of 396)
Bu çıktı kullanıcıya aktarımı biten dosyanın son boyutunu,
aktarımın %100 tamamlandığını, dosyanın son aktarım hızını,
dosyanın aktarımı için kullanılan süreyi ve ek olarak toplam
aktarımın boyut ve adet olarak ne kadarının tamamlandığını
parantez içinde gösterir.
-P --partial --progress seçenkleri için kısayoldur. Amacı,
kesintiye uğraması muhtemel uzun bir aktarım için bu iki
seçeneğin birlikte belirtilmesini kolaylaştırmaktır.
--password-file=dosya
Uzak rsync sunucusuna erişim için parola içeren bir dosya
belirtebilmeyi sağlar. Bu seçenek, aktarım için bir uzak kabuk
kullanıldığında değil, sadece yerleşik aktarım kullanarak bir
rsync sunucusuna erişirken yararlıdır. Dosya herkesçe okunabilir
olmamalı ve içinde parolayı içerek tek bir satır bulunmalıdır.
--list-only
Bu seçenek dosyaların aktarılmasına değil, kaynak dosyaların
listelenmesine sebep olur. Bu seçenek, eğer bir hedef
belirtilmezse çalışır, dolayısıyla doğrudan kullanmaya ihtiyaç
duymazsınız. Ancak, alt dizinlere inilmeyen bir liste üretmek
için tecrübeli bir kullanıcının -r --exclude='/*/*'
seçeneklerini kullanmaktan kaçınabilmesi için bir kolaylık
saÄŸlar.
--bwlimit=kbps
Azami aktarım hızının kB/s cinsinden belirtilebilmesini sağlar.
rsync'i çok büyük dosyaları (MB'larca) aktarmak için kullanırken
oldukça verimlidir. rsync aktarımlarının doğası gereği, veri
bloklar halinde gönderilir, eğer rsync aktarımın oldukça hızlı
olduğunu saptarsa, sonraki bloku göndermeden önce bekler.
Sonuçta, aktarım hızının ortalaması belirtilen hıza eşit olur.
Sıfır değeri bir sınırlama olmadığı anlamına gelir.
--write-batch=dosya
Aynı hedefe yapılacak eşdeğer bir çağrı için --read-batch
seçeneği ile kullanılmak üzere bir dosya oluşturur. Ayrıntılar
için BETİK KİPİ bölümüne bakınız.
--read-batch=dosya
Evvelce --write-batch ile oluşturulan dosya içindekileri
uygular. EÄŸer dosya olarak "-" belirtilirse betik verisi
standart girdiden okunur. Ayrıntılar için BETİK KİPİ bölümüne
bakınız.
-4, --ipv4, --6, --ipv6
rsync'e soketleri oluştururken IPv4/IPv6 tercih etmesini söyler.
Bu sadece rsync'in doğrudan kendi denetimi altındaki soketleri
etkiler. Ayrıca, bu seçeneklerin SUNUCU SEÇENEKLERİ bölümündeki
açıklamasına da bakınız.
--checksum-seed=tamsayı
MD4 sağlama toplamı tohumunun tamsayı olarak belirtilebilmesini
sağlar. Bu 4 baytlık tohum her blok ve dosyanın MD4 sağlama
hesaplamasında kullanılır. Öntanımlı olarak bu tohum o anki
zaman değeri olarak sunucu tarafından üretilir. Bu seçenek,
yinelenebilir blok ve dosya sağlamaları isteyen uygulamalar için
ya da kullanıcının daha bir rasgele tohum kullanmak istediği
yerlerde kullanışlıdır. tamsayı olarak sıfır değeri verilirse
öntanımlı tohum kullanılacaktır.
SUNUCU SEÇENEKLERİ
Bir rsync sunucu başlatılırken kullanılan seçenekler:
--daemon
Bu seçenek rsync'in artalanda çalışacağını belirtir.
Başlattığınız sunucuya bir rsync istemcisi makine::modül veya
rsync://makine/modül/ sözdizimini kullanarak erişebilir.
Eğer standart girdi bir soket ise, rsync, inetd üzerinden
çalıştığını varsayacaktır, aksi takdirde, uçbirimini bırakıp bir
artalan süreci haline gelecektir. rsync istemcileri tarafından
yapılan her bağlantı isteğinde süreç, yapılandırma dosyasını
(rsyncd.conf) okuduktan sonra isteğe yanıt verecektir. Daha
fazla bilgi için rsyncd.conf(5) kılavuz sayfasına bakınız.
--address=adres
Öntanımlı olarak rsync, --daemon seçeneği ile başlatıldığında ya
da bir rsync sunucuya bağlanırken bir şablon adres kullanır. Bu
seçenekle kullanılacak adres olarak belli bir IP adresi (veya
konakismi) belirtebilirsiniz. Bu --config seçeneği ile birlikte
kullanılarak sanal adresleme yapabilmeyi mümkün kılar. Ayrıca,
rsyncd.conf(5) kılavuz sayfasındaki address seçeneğinin
açıklamasına da bakınız.
--bwlimit=kbps
Sunucu sürecinin gönderdiği veri için kilobayt/s cinsinden azami
aktarım hızını belirtmek için kullanılır. İstemci bu durumda
bile bir --bwlimit deÄŸeri belirtebilir, ancak bu istemci
taraftaki band genişliğini daraltmak için yapılabilir. Eğer
sunucunun belirttiği hız bu yolla aşılmak istenirse değer
aşağıya, sunucunu hızına yuvarlanır. Bazı ek ayrıntılar için bu
seçeneğin istemci seçeneklerindeki açıklamasına da bakınız.
--config=dosya
Öntanımlı yapılandırma dosyasında farklı bir yapılandırma
dosyası belirtmek için kullanılır. Sunucu süreci root dışında
bir uzak kullanıcı tarafından, bir uzak kabuk uygulaması
üzerinden çalıştırılıyorsa öntanımlı yapılandırma dosyası
çalışma dizinindeki (genellikle $HOME) rsyncd.conf dosyası, aksi
takdirde /etc/rsyncd.conf'dur.
--no-detach
Bir sunucu olarak çalışmada rsync'in uçbirimini bırakıp bir
artalan süreci haline gelmesini engeller. Bu seçenek, rsync,
Cygwin üzerinde bir hizmet olarak çalıştırılırken gereklidir.
Ayrıca, daemontools ya da AIX'in Sistem Özkaynak Denetçisi gibi
bir uygulama tarafından yönetildiğinde yararlıdır. Seçeneğin
ayrıca, rsync bir hata ayıklayıcı altında çalıştırılırken de
kullanılması tavsiye edilir. Bu seçenek, rsync, inetd veya sshd
üzerinden çalışıyorsa etkisizdir.
--port=port
Sunucu tarafından öntanımlı olarak kullanılan 873. port yerine
başka bir port belirtmek için kullanılır. Ayrıca rsyncd.conf(5)
kılavuz sayfasındaki port seçeneğinin açıklamasına da bakınız.
-v, --verbose
Sunucu sürecinin başlatılması sırasında günlük bilgilerinin
miktarını arttırmak için kullanılır. Sunucunun, istemci
bağlandıktan sonraki ayrıntı seviyesi istemci tarafından
kullanılan seçeneklerle ve modülün yapılandırma bölümündeki max
verbosity deÄŸeriyle denetlenir.
-4, --ipv4, --6, --ipv6
rsync sunucusunun bağlantıları dinleyeceği soketleri
oluştururken IPv4/IPv6 tercih etmesini sağlarlar. Çekirdekteki
bir yazılım hatası nedeniyle Linux'un eski sürümlerinde bu
seçeneklerden biri gerekli olabilir (port kullanılacağı zaman
bir "adres zaten kullanımda" hatası alıyorsanız, rsync
sunucusunu başlatırken --ipv6 veya --ipv4 belirtmeyi deneyin).
-h, --help
--daemon seçeneğinden sonra belirtilirse, rsync sunucusu
başlatılırken kullanılabilecek seçenekleri kısaca açıklayan bir
yardım sayfası basar.
SÜZME KURALLARI
Süzme kuralları hangi dosyaların aktarılacağını (içerileceğini -
include), hangi dosyaların atlanacağını (dışlanacağını - exclude)
seçmek için esnek bir yöntem sağlar. Kurallar ya doğrudan
include/exclude seçenekleri ile ya da daha hassas içerme/dışlama
kalıpları ile (bir dosyadan okuyarak) belirtilebilir.
rsync, aktarılacak dosya/dizinlerin listesindeki her isim için ayrı
ayrı içerme/dışlama kurallarını tarar ve ilk eşleşen kalıbı uygular:
bir dışlama kalıbıyla eşleşen dosya atlanır; bir içerme kalıbı ile
eşleşen dosya atlanmaz; eşleşen bir kalıp yoksa dosya atlanmaz.
rsync, komut satırında belirtilen include/exclude seçeneklerinden
sıralı bir süzme kuralları listesi oluşturur. Süzme kurallarının
sözdizimi şöyledir:
kural [kalıp_veya_dosyaismi]
kural,belirteç [kalıp_veya_dosyaismi]
kural ismi olarak, aşağıda açıklanan kısa ya da uzun kural isimlerinden
birini kullanabilirsiniz. Eğer kısa isimli bir kural kullanırsanız,
isteğe bağlı olan belirteç'ten kuralı bir ',' ile ayırın. kalıp veya
dosyaismi'ni (varsa) bir boşluk veya altçizgiden sonra yazmalısınız.
Kullanılabilecek kural önekleri:
uzun kısa açıklama
--------------------------
exclude - dışlama kalıbı belirtir
include + içerme kalıbı belirtir.
merge . ek kuralları okumak için katıştırılacak dosya,
dir-merge : bir dizin içi katıştırma dosyası belirtir.
hide H aktarımdan gizlenecek dosyalar için kalıp.
show S aktarımdan gizlenmeyecek dosyalar için kalıp.
protect P silinmekten koruncak dosyalar için kalıp.
risk R silinmekten korunmayacacak dosyalar için kalıp.
clear ! o anki include/exclude listesini temizler (argümansız)
Kurallar bir dosyadan okunduğunda, "#" ile başlayan açıklama satırları
ile boş satırlar yoksayılır.
--include ve --exclude komut satırı seçenekleri yukarıdaki kural
sözdizimini değil, sadece kalıplarla ek olarak listeyi temizleyen ünlem
(!) imini (ve kalıplar bir dosyadan okunuyorsa boş ve açıklama
satırlarını) kabul ederler. Bir include seçeneği için, bir kalıp "- "
(tire ve boşluk) veya "+ " (artı ve boşluk) ile başlamıyorsa, kural bir
"+ " olarak değerlendirilir. Bir --exclude seçeneği için bir kalıp bir
"- " ile başlamalıdır.
Bir --filter seçeneği ise kuralın başlangıcında daima bir uzun ya da
kısa kural ismi içermelidir.
Ayrıca, --filter, --include ve --exclude seçenekleri tek bir
kalıp/kural alabilir. Çok sayıda kalıp/kural eklemek için komut
satırında bu seçenekleri tekrarlayabilir veya --filter, --include-from
ve --exclude-from seçeneklerinin dosya katıştırma sözdizimini
kullanabilirsiniz.
İçerme/Dışlama Kalıpları
Yukarıda SÜZME KURALLARI bölümünde bahsedildiği gibi dosyaları "+", "-"
gibi kalıpları kullanarak aktarabilir ya da atlayabilirsiniz. İçerme ve
dışlama kurallarının herbirinde aktarılacak dosyaların isimleriyle
eşleşen kalıplar belirtilir. Bu kalıplar çeşitli biçimler alabilir:
o Eğer kalıp bir / ile başlıyorsa, dosya hiyerarşisi içinde belli bir
noktaya demirlenir, aksi takdirde yol isminin sonuna eÅŸlenir. Bu
düzenli ifadelerde kalıbı ^ ile başlatmaya benzer. Örneğin, "/foo"
kalıbı ya "aktarımın kökü"ndeki (genel bir kural için) ya da
katıştırılan dosyanın dizinindeki (dir-merge kuralı için) "foo"
isimli bir dosya ile eşleşirdi. Nitelenmemiş bir "foo" ise, ağacın
herhangi bir yerindeki "foo" isimli bir dosya veya dizin ismi ile
eşleşirdi, çünkü algoritma kökten uca doğru alt dizinlere inilerek
uygulanır; yani, her yol elemanı sonunda dosya ismi olacak bir
sırada ele alınır. "sub/foo" ise hiyerarşinin herhangi bir
noktasındaki "sub" isimli bir dizin içindeki bir "foo" ile
eşleşirdi. Aktarımın kökü ile eşleşen bir kalıbın nasıl
belirtileceğinin ayrıntılı açıklaması için İçerme/Dışlama
Kalıplarının Kök Dizinle İlişklendirilmesi bölümüne bakınız..
o Eğer kalıp bir / ile bitiyorsa, sadece bir dizinle eşleşecektir, bir
dosya, bağ ya da aygıtla değil.
o Eğer kalıp *?[ dosyaismi kalıp karakterlerinden birini içeriyorsa,
ifade kabuğun dosyaismi eşleştirme kuralları kullanılarak
eşleştirilir. Aksi takdirde basit bir dizge eşleme kullanılır.
o Tek yıldızlı bir kalıp ("*") bölü çizgilerinde duracakken, çift
yıldızlı kalıp ("**") çok sayıda bölü çizgisi ile eşleşecektir.
o Eğer bir kalıp bir / (sonda değil) ya da bir "*" içeriyorsa baştan
sona tüm dizinleri dahil tam dosya yolu ile eşleştirilir. Eğer kalıp
bir / ya da "**" içermiyorsa, sadece dosyaisminin son bileşeni ile
eşleştirilir (algoritmanın altdizinlere inilerek uygulandığını
hatırlayın, yani "tam dosyaismi" başlangıç dizininden başlayarak son
dizine kadar yolun herhangi bir parçası ile eşleşebilir).
Şuna dikkat edin, --recursive (-r) seçeneğini (-a ile uygulanan)
kullandığınızda, her yolun her alt bileşeni yukarıdan aşağıya ziyaret
edilir, yani içerme/dışlama kalıpları altdizinlere inilerek her alt
bileşenin tam ismine uygulanır (örn, "/foo/bar/baz" içerilirken "/foo"
ve "/foo/bar" dışlanamaz). rsync göndereceği dosyaları ararken, dışlama
kalıpları aslında dizin basamaklama aşamasını kısadevre eder. Eğer bir
kalıp belli bir üst dizini dışlıyorsa, bir daha derin içerme kalıbını
sonuçsuz bırakabilir, çünkü rsync, hiyerarşinin dışlanan bir bölümünden
daha derine inmez. Bu özellikle "*" ile biten bir kural kullanırken
önem kazanır. Örneğin, bu çalışmayacaktır:
+ /bir/yol/bu-dosya-bulunmaz
+ /bu-dosya-bulunur
- *
Bu kural listesi, "bir" üst dizini '*' kuralından dolayı
dışlayacağından başarısız olur, yani rsync, "bir" ve "bir/yol"
dizinleri içindeki hiçbir dosyayı ziyaret etmez. Hiyerarşideki tüm
dizinleri ziyaret ettirmenin bir yolu tek bir kuralın listeye dahil
edilmesidir: "+ */" ("- *" kuralından önce herhangi bir yere
yerleştirebilirsiniz). Diğer bir çözüm ise ziyaret edilmesi gereken üst
dizinlerin hepsi için belirli bir içerme kuralı eklemektir. Örneğin, bu
kural kümesi doğru çalışır:
+ /bir/
+ /bir/yol/
+ /bir/yol/bu-dosya-bulunur
+ /bu-dosya-da-bulunur
- *
Dışlama/içerme eşleştirme örnekleri:
o "- *.o" kalıbı *.o ile eşleşen tüm dosya isimlerini dışlar.
o "- /foo" kalıbı aktarımın kök dizinindeki "foo" isimli bir dosyayı
dışlar.
o "- foo/" kalıbı "foo" isimli hehangi bir dizini dışlar.
o "- /foo/*/bar" kalıbı aktarımın kök dizinindeki "foo" dizininden iki
seviye aşağıdaki "bar" isimli dosyayı dışlar.
o "- /foo/**/bar" kalıbı aktarımın kök dizinindeki "foo" dizininden
iki veya daha alt seviyedeki "bar" isimli dosyayı dışlar.
o "+ */", "+ *.c" ve "- *" kalıplarının birleşimi tüm dizinler ve C
kaynak dosyaları dışında herşeyi dışlar.
o "+ foo/", "+ foo/bar.c" ve "- *" kalıplarının birleşimi sadece
"foo" dizinini ve "foo/bar.c" dosyasını içerecektir ("foo" dizini
açıkça içerilmelidir yoksa "*" tarafından dışlanırdı).
Katıştırma Dosyası Süzme Kuralları
Yukarıda SÜZME KURALLARI bölümünde bahsedildiği gibi dosyaları bir
merge (.) ya da bir dir-merge (:) süzme kuralı belirterek süzme
kurallarınıza tüm dosyaları katıştırablirsiniz.
İki çeşit katıştırma dosyası vardır: tek dosyalık ('.') ve diziniçi
dosyalar (':'). Tek dosyalık bir katıştırma dosyası bir defa okunur ve
"." kuralındaki süzme listesi ile birlikte işleme sokulur. Diziniçi
katıştırma dosyası türünde ise, rsync adım adım bütün altdizinleri
tarayarak ismi belirtilen dosyayı buldukça dosya içeriğini o anki kural
listesine ekler. Bu diziniçi kural dosyaları aktarım alt dizinlerinde
aranması gerektinden gönderen tarafta oluşturulmalıdır. Ayrıca, bu
kural dosyalarının silinmeyecek dosyaları etkilemesi isteniyorsa, alıcı
tarafa aktarılmaları gerekecektir (aşağıda, Diziniçi Katıştırma
Kuralları ve Silme bölümüne bakınız).
Bazı örnekler:
merge /etc/rsync/default.rules
. /etc/rsync/default.rules
dir-merge .per-dir-filter
dir-merge,n- .non-inherited-per-dir-excludes
:n- .non-inherited-per-dir-excludes
Bir merge veya dir-merge kuralı şu belirteçleri kabul eder:
o Bir - belirteci, dosyaiçi açıklamalar hariç başka bir kural
çözümleme olmaksızın, sadece dışlama kalıplarından oluşan bir dosya
belirtir.
o Bir + belirteci, dosyaiçi açıklamalar hariç başka bir kural
çözümleme olmaksızın, sadece içerme kalıplarından oluşan bir dosya
belirtir.
o Bir C belirteci, bir dosyanın CVS uyumluluğu anlamında okunması
gerektiğini belirtir. Bu 'n', 'w', ve '-' belirteçlerini etkin
kılar, fakat ayrıca, belirtilecek liste temizleme imine de (!) izin
verir. Bir dosyaismi belirtilmemiÅŸse dosya isminin ".cvsignore"
olduğu varsayılır.
o Bir e belirteci, katıştırma dosyasını aktarımdan dışlayacaktır;
örneğin, "dir-merge,e .rules" kuralı "dir-merge .rules" ve "-
.rules" kuralları gibidir.
o Bir n belirteci, kuralların altdizinlerde miras alınmayacağını
belirtir.
o Bir w belirteci, kurallar için satırlara göre değil boşluklara göre
sözcük ayırma uygulanacağını belirtir. Bu ayrıca açıklamalara da
izin vermeyecektir.
Bilgi: Bir kuralın öneki olan boşluklar özel olarak ele alınır, yani
"- foo + bar" dizgesi iki kurala ayrılacaktır (ek olarak önek
çözümlemesinin iptal edilmediği varsayımıyla).
o Ayrıca, "+" veya "-" kuralı için aşağıdaki belirteçlerden herhangi
birini belirtebilirsiniz. Örneğin, "dir-merge,s .filt" ve ":sC"
kurallarının herbiri sadece sunucu tarafında uygulanacak diziniçi
katıştırma kurallarını oluştururken, "merge,-/ .excl" kuralıyla
.excl dosyasının içeriği mutlakyol dışlamaları olarak ele alınır.
Bir "+" veya "-" kuralından sonra kullanılabilecek belirteçler:
o Bir "/" belirteci kuralın dosya sisteminin köküne göre bir mutlak
yol olarak ele alınacağını belirtir. Örneğin, "-/ /etc/passwd"
kuralı aktarım sırasında "/etc" dizininden gönderilen dosyalardan
passwd dosyasının dışlanacağını belirtir.
o Bir "!" belirteci kuralın, kalıbın eşleşmediğinde etkili olacağını
belirtir. Örneğin, "-! */" kuralı dizin olmayan herşeyi
dışlayacaktır.
o Bir "C" belirteci, tüm genel CVS dışlama kurallarının yerinde "-C"
dışlamaları olarak yerleştirileceğini belirtmek için kullanılır. Bir
argüman almaz.
o Bir "s" belirteci, kuralın sadece gönderen tarafta uygulanacağını
belirtir. Bir kural gönderen tarafta etkin olduğunda, dosyaların
aktarılmasını engeller. --delete-excluded belirtilmedikçe, bir
kuralın her iki tarafı da etkilemesi öntanımlıdır, aksi takdirde
kuralın sadece gönderen tarafı etkilemesi öntanımlıdır. Sunucu
tarafında etkili içerme/dışlama kuralları belirtmenin diğer yolları
için hide (H) ve show (S) kurallarına da bakınız.
o Bir "C" belirteci, kuralın alıcı tarafa uygulanacağını belirtir. Bir
kural alıcı tarafta etkili olduğunda, dosyaların silinmesini
engeller. Daha fazla bilgi için üstteki "s" belirtecine bakınız.
Ayrıca, alıcı tarafta etkili içerme/dışlama kuralları belirtmenin
diğer yolları için protect (P) ve risk (R) kurallarına da bakınız.
dir-merge kuralları n belirteci kullanılmadıkça katıştırma dosyasının
bulunduğu her alt dizinde miras alınır. Her alt dizinin kuralları,
miras alınan kurallara göre daha yüksek öncelik almak üzere üst
dizindeki dir-merge kurallarının başına eklenir. Birleşik kural kümesi
katıştırma dosyasının bulunduğu noktalara göre gruplanır, böylece genel
kurallar listesinde evvelce belirtilmiş bir kuralın dir-merge kuralları
ile değiştirilmesi mümkün olur. Bir diziniçi katıştırma dosyasında bir
liste temizleme kuralına rastlandığında, sadece o katıştırma dosyasının
bulunduğu noktaya kadar miras alınan kurallar temizlenir.
Bir tek dosyalık kuralın bir dir-merge dosyasından miras alınmasını
engellemenin diğer bir yolu, dosyanın başına bir / getirmektir. Bir
diziniçi katıştırma dosyasındaki bu tür kurallar katıştırma dosyasının
bulunduğu dizine göre ele alınır, böylece bir "/foo" kalıbı dir-merge
süzme kuralı dosyasının bulunduğu dizindeki "foo" dosyasıyla eşleşir.
--filter=". dosya" üzerinden belirteceğiniz örnek süzme dosyası:
merge /home/user/.global-filter
- *.gz
dir-merge .rules
+ *.[ch]
- *.o
Bu, bu listenin başına /home/user/.global-filter dosyasının içeriğini
ve ayrıca, bunu da alt dizinde ".rules" dosyasının sonuna ekleyecektir.
Her dizinin başında önce tüm kurallar okunup üst dizinden alınan genel
kurallar buna eklenir.
Eğer bir diziniçi katıştırma dosyası, ilk aktarım dizininin üst dizini
olan bir dosya yolu ile belirtilmişse, rsync belirtilen dosya için,
aktarım dizininin başlangıcından itibaren tüm üst dizinleri
tarayacaktır. Örneğin, böyle bir süzgeç (-F seçeneğine bakınız),
--filter=': /.rsync-filter'
rsync'e .rsync-filter dosyasını kökten aşağı doğru, aktarımın bir
parçası olarak gönderilen dizinlerde dosyaı normal taramaya başlamadan
önce aktarımın üst dizininden itibaren tüm dizinlerde aramasını söyler
(Bilgi: bir rsync sunucusu için kök dizin daima modülün dizinidir).
Diziniçi katıştırma dosyaları için bu tür öntarama örnekleri:
rsync -avF /src/path/ /dest/dir
rsync -av --filter=': ../../.rsync-filter' /src/path/ /dest/dir
rsync -av --filter=': .rsync-filter' /src/path/ /dest/dir
İlk iki komut ".rsync-filter" dosyasını "/src/path" içinde aramaya
başlamadan önce "/" ve "/src" dizinlerinde arar. Son komut ise, üst
dizin taramasından kaçınır ve ".rsync-filter" dosyasını sadece
aktarımın parçası olan dizinlerde arar.
Bir ".cvsignore" dosyasının içeriğini kalıplarınıza dahil etmek
isterseniz, ":C" kuralını kullanmalısınız. Bu kural, .cvsignore
dosyalarını diziniçi katıştırma dosyaları haline getirir, fakat dosya
CVS uyumluluğu bağlamında ayrıştırılır. --cvs-exclude (-C) seçeneğinin
bulunduğu yerde etkili olmasını istiyorsanız kurallarınızın arasına bu
noktada ":C" kuralını yerleştirebilirsiniz. Bu olmaksızın, rsync
.cvsignore dosyası için dir-merge kuralını diğer kurallarınızın sonuna
ekleyecektir (komut satırı seçeneklerinizden daha düşük bir öncelik
vererek). Örnek:
cat <<EOT | rsync -avC --filter='. -' a/ b
+ foo.o
:C
- *.old
EOT
rsync -avC --include=foo.o -f :C --exclude='*.old' a/ b
Yukarıdaki rsync komutlarının ikisi de aynı işi yapar. Her ikisi de
diziniçi .cvsignore kurallarını listenin sonuna değil, ortasına
katıştıracaktır. Bu, onların dizine özel kurallarının sizin
kurallarınızın tümünden daha düşük önemde olması yerine :C'ye kadar
olan kuralların yerine geçmesini mümkün kılar. Diğer CVS dışlama
kurallarını etkilemek için (örn, öntanımlı dışlananlar listesi,
$HOME/.cvsignore dosyasının içeriği ve $CVSIGNORE değişkeninin değeri),
-C komut satırı seçeneğini belirtmemeli, onun yerine kurallarınıza bir
"-C" kuralı yerleştirmelisiniz; örn, "--filter=-C".
Liste Temizleyen Süzme Kuralı
Yukarıda SÜZME KURALLARI bölümünde bahsedildiği gibi mevcut
içerme/dışlama listesini "!" süzme kuralını kullanarak
temizleyebilirsiniz. "Mevcut" liste ya genel kural listesi (kural,
süzme seçenekleri çözümlenirken saptanmışsa) ya da diziniçi katıştırma
dosyası kurallarından (bunlar kendi alt listelerinde miras alınırlar,
dolayısıyla üst dizinin kurallarını bu kuralla temizleyebilirsiniz)
oluÅŸur.
İçerme/Dışlama Kalıplarının Kök Dizinle İlişklendirilmesi
Evvelce de bahsedildiği gibi, genel içerme/dışlama kalıpları aktarımın
kök dizini ile ilişkilendirilebilir (katıştırma dosyasının dizini ile
ilişklendirilen diziniçi kalıplarının tersine). Aktarımı, göndericiden
alıcıya bir isim altağacının gönderilmesi olarak düşünürseniz,
aktarımın kök dizini hedef dizinde yinelenecek olan ağaç başlangıcıdır.
Bu kök, bir / ile başlayan kalıplarla ilişkilendirilir.
Eşleşme aktarımın köküne göre yapıldığından, kaynak yolun sonundaki
bölü çizgisini değiştirmek ya da --relative seçeneğinin kullanımında
değişiklik yapmak eşleştirmenizde kullanılması gereken yolu etkiler.
Aşağıdaki örneklerde bu davranış modellenmiştir.
Biri "/home/ben/foo/bar", diğeri "/home/sen/bar/baz" olan iki dosyamız
olsun. Aşağıda bu iki dosyanın çeşitli komut kullanımlarında nasıl
farklı aktarıldıkları gösterilmiştir.
Örnek komut: rsync -a /home/ben /home/sen /hedef
+/- kalıbı: /ben/foo/bar
+/- kalıbı: /sen/bar/baz
Hedef dosya: /hedef/ben/foo/bar
Hedef dosya: /hedef/sen/bar/baz
Örnek komut: rsync -a /home/ben/ /home/sen/ /hedef
+/- kalıbı: /foo/bar (dikkat: "ben" yok)
+/- kalıbı: /bar/baz (dikkat: "sen" yok)
Hedef dosya: /hedef/foo/bar
Hedef dosya: /hedef/bar/baz
Örnek komut: rsync -a --relative /home/ben/ /home/sen /hedef
+/- kalıbı: /home/ben/foo/bar (dikkat: tam dosyayolu)
+/- kalıbı: /home/sen/bar/baz (keza bu da)
Hedef dosya: /hedef/home/ben/foo/bar
Hedef dosya: /hedef/home/sen/bar/baz
Örnek komut: cd /home; rsync -a --relative ben/foo sen/ /hedef
+/- kalıbı: /ben/foo/bar (belirtilen yolla başlar)
+/- kalıbı: /sen/bar/baz (keza bu da)
Hedef dosya: /hedef/ben/foo/bar
Hedef dosya: /hedef/sen/bar/baz
Hangi ismi süzdüğünüzü görmenin en kolay yolu, --verbose kullanarak
çıktıya bakmak ve ismin önüne bir / koymaktır (herhangi bir dosya
kopyalamaya hazır değilseniz, --dry-run seçeneğini kullanın).
Diziniçi Katıştırma Kuralları ve Silme
Bir silme seçeneği olmaksızın, diziniçi katıştırma dosyası kuralları
sadece gönderen tarafta konuyla ilgilidir, dolayısıyla aktarımı
etkilemeksizin rahatça katıştırma dosyalarını dışlayabilirsiniz. Bunu
kolayca yapmanın yolu, örnekte görüldüğü gibi bu dışlamaya 'e'
belirtecini eklemektir:
rsync -av --filter=': .haric' --exclude=.haric mkn:kaynak/dizin /hedef
rsync -av --filter=':e .haric' mkn:kaynak/dizin /hedef
Buna rağmen, alıcı tarafta bir silme yapmak VE bazı dosyaların da
silinerek dışlanmasını isterseniz, alıcı tarafın dışlanacak dosyaları
bilmesini sağlamanız gerekecektir. En kolayı, aktarıma diziniçi
katıştırma dosyalarını dahil etmek ve --delete-after kullanmaktır. Bu
yolla, birşeyleri silmeden önce alıcı tarafta gönderen taraftaki
dışlama kuralları alınmış olacaktır:
rsync -avF --delete-after mkn:kaynak/dizin /hedef
Yine de, katıştırma dosyaları aktarımın bir parçası değilse, ya bazı
genel dışlama kuralları belirtmeli (komut satırında belirtilebilir) ya
da alıcı tarafta diziniçi katıştırma dosyalarının bulunmasını kendiniz
sağlamalısınız. İlkine bir örnek (uzak .kural dosyalarının kendilerini
dışladıkları varsayılıyor):
rsync -av --filter=': .kural' --filter='. /benim/ek.kuralım'
--delete mkn:kaynak/dizin /hedef
Bu örnekte ek.kuralım dosyası aktarımın her iki tarafını da
etkileyebilir, fakat (gönderen tarafta) kurallar diziniçi katıştırma
kuralından sonra belirtildiğinden .kural dosyasından katıştırılan
kurallardan daha düşük öncelikli olurlar
Son örnekte, uzak taraf .rsync-filter dosyalarını aktarımdan
dışlamaktadır, ancak biz alıcı tarafta neyin silineceğini denetim
altına almak için kendi .rsync-filter dosyalarımızı kullanmak
istiyoruz. Bunu yapmak için diziniçi katıştırma dosyalarını özellikle
dışlamalı (böylece silinmezler) ve neyin silinip silinmeyeceğini
denetim altına almak için kuralları yerel dosyalara koymalıyız. Bu
komutlardan biri gibi:
rsync -av --filter=':e /.rsync-filter' --delete \
mkn:kaynak/dizin /hedef
rsync -avFF --delete mkn:kaynak/dizin /hedef
BETİK KİPİ
Betik kipi bir çok sistem için aynı olan güncellemeleri uygularken
kullanılabilir. Bir dizin ağacının çok sayıda makine üzerinde
kopyalarının bulunduğunu varsayalım. Şimdi, kaynak ağacında bazı
değişiklikler olduğunu ve bunların diğer makinelere de aktarılması
gerektiğini varsayalım. Bu işlemi betik kipini kullarak yapmak için,
rsync, kaynak ağacındaki değişiklikleri hedef ağaçlardan birinde
uygulayan --write-batch seçeneği ile çalıştırılır. --write-batch
seçeneği, yapılan işlemlerin aynı dizin ağacını içeren hedeflerde
uygulanmak üzere bir "betik dosyası" içinde saklanmasını sağlar.
Kaydedilen değişiklikleri diğer hedef ağaçlara uygulamak için rsync, bu
dosyanın ismi seçeneğe argüman olarak belirtilerek --read-batch
seçeneği ile çalıştırılır. rsync, betik dosyasında saklanmış bilgileri
kullanarak hedef ağacı günceller.
Rahat olsun diye, --write-batch seçeneği kullanılırken ek bir dosya
daha oluşturulur. Bu dosyanın ismi, betik dosyasının isminin sonuna
".sh" eklenerek oluşturulur. Bu .sh dosyası betik dosyasını kullanarak
hedefi güncelleyecek komut satırını içerir. Bir Bourne(-benzeri) kabuk
kullanılarak çalıştırılabilir. İsteğe bağlı olarak özgün yol yerine
hedef ağacın dosya yolu aktarılabilir. Bu, hedef ağacın kaynak ağacının
yolundan farklı olduğu durumlarda yararlıdır.
Dosya durumu, sağlama toplamı sınanması ve veri bloklarının üretimi
işlemleri betik dosyasına bir kere kaydedildi mi, hedef ağaçlarda
defalarca kullanılabilir. Aynı verileri her konağa ayrı ayrı göndermek
yerine çok sayıda konağı aynı anda güncelleyecek çok görevli aktarım
protolleri de kullanılabilir.
Örnekler:
$ rsync --write-batch=foo -a mkn:/kaynak/dzn/ /hedef1/dzn/
$ scp foo* uzak:
$ ssh uzak ./foo.sh /hedef2/dzn/
$ rsync --write-batch=foo -a /kaynak/dzn/ /hedef1/dzn/
$ ssh remote rsync --read-batch=- -a /hedef2/dzn/ <foo
Bu örneklerde, rsync /kaynak/dzn/'den /hedef1/dzn/'i güncellemekte
kullanılmış ve bu işlemi yinelemek için işlemler "foo" ve "foo.sh"
dosyalarına kaydedilmiştir. "uzak" konağı betiğe kayıtlı veri
/hedef2/dzn/ dizinine gönderilerek güncellenir. Bu iki örnek arasındaki
farklar betik dosyalarının hangi esneklikte kullanılabileceğini
göstermek içindir:
o İlk örnek ilk kopyanın yerel olmayacağını gösterir -- her iki yönde
de aktarım için ister uzak kabuk sözdizimini, ister rsync sunucu
sözdizimini kullanabilirsiniz.
o İlk örnek uzak makine üzerinde --read-batch seçenekli komutu
çalıştırırken doğru rsync seçeneklerini oluşturulan "foo.sh"
dosyasından alır.
o İkinci örnek betik verisini standart girdiden okur, böylece betik
dosyasının önce uzak makineye kopyalanması gerekmez. Bu örnekte
değiştirilmiş bir --read-batch seçeneği kullanılmasını
gerektirdiğinden "foo.sh" betiği kullanılmamıştır, fakat betiği
kullanmak için dosyayı kendiniz düzenleyebilirsiniz. (Ancak, başka
bir seçeneğin (--exclude-from=- gibi) standart girdiyi
kullanmadığından emin olmalısınız.)
Yetersizlikler
Betik okuma seçeneği, hedef ağacın, betiğin oluşturulduğu hedefteki
ağaçla aynı olacağı kabulüne dayanır. Hedef ağaçta bir fark
saptandığında işlem ya bir hata verilmeksizin iptal edilir (dosya
güncel görünüyorsa) ya da dosya güncellemesi yapılmaya çalışılır ve
bundan sonra eğer dosyanın doğrulanması başarısız olursa işlem bir hata
üretilerek iptal edilir. Bu, eğer işlem kesintiye uğratılırsa bir betik
okuma işleminin yeniden başlatılmasının güvenli olması gerektiği
anlamına gelir. Eğer betikli güncellemenin dosyanın boyutuna ve
tarihine bakılmaksızın daima yapılabilmesini isterseniz, -I seçeneğini
kullanın (betik okunurken). Eğer bir hata oluşursa, hedef ağaç bir
ihtimal, kısmen güncellenmiş durumda olacaktır. Bu durumda, rsync
betikli güncelleme ile değil, normal işlemle kullanılarak hedef ağaç
düzeltilebilir.
Tüm hedeflerde kullanılan rsync sürümü, betik dosyasını üretmekte
kullanılandan en azından biraz daha yeni olmalıdır. Eğer, betik
dosyasının protokol sürümü onu okuyan rsync'in sürümünden daha yeni ise
rsync bir hata vererek sonlanacaktır.
--dry-run (-n) seçeneği betik kipinde çalışmaz ve bir çalışma anı
hatası ile sonlanır.
Bir betik dosyası okunurken, siz belirtmemiş olsanız bile, betik
dosyası üretilirken kullanılan ve betik dosyasındaki veriler için
gerekli olan bazı seçenekler zorunlu olarak kullanılacaktır. Diğer
seçenekler değiştirilebilir, hatta değiştirilmelidir de. Örneğin,
--write-batch seçeneği --read-batch seçeneği olarak değişmeli,
--files-from kullanılmamalıdır, bunun yanında
--filter/--include/--exclude seçenekleri ise --delete seçeneklerinden
biri belirtilmedikçe gerekli olmaz.
betik.sh dosyasını oluşturan kod, kabuk betiğinin sonuna tek bir
listeye dönüştürerek --filter/--include/--exclude seçeneklerini bir
belge niteliğinde ekler. Tecrübeli bir kullanıcı bu bilgiyi --delete
tarafından silinmesi istenenlerde bir değişiklik varsa, dışlama
listesini değiştirmekte kullanabilir. Normal bir kullanıcı ise, bu
ayrıntıları yoksayabilir ve betikli veriyi uygun --read-batch komutuyla
çalıştıran kabuk betiğini kullanabilir.
rsync'deki özgün betik kipi "rsync+" üzerine inşa edilmiş olsa da en
son sürümde yeni bir gerçeklenim kullanılmaktadır.
SEMBOLİK BAĞLAR
rsync kaynak dizini içinde bir sembolik bağ saptadığında üç temel
davranış sözkonusudur:
· Öntanımlı olarak, sembolik bağlar oldukları gibi aktarılmazlar. Bir
sembolik baÄŸ varsa, "skipping non-regular file" (normal dosya
olmadığından atlanıyor) iletisini alırsınız ve dosya atlanır.
· Eğer --links seçeneği belirtilmişse, sembolik bağlar alıcı tarafta
aynı hedefle yeniden oluşturulurlar. BİLGİ: --archive seçeneği
dolaylı olarak --links seçeneğini uygular.
· Eğer --copy-links seçeneği belirtilmişse, alıcı tarafa sembolik
bağın ismiyle hedefindeki dosya aktarılır.
rsync ayrıca, "güvenilir" ve güvensiz" sembolik bağları ayrımsayabilir.
Bunun kullanıldığı yere bir örnek olarak, bir sanalyöre yansılaması
yapılırken, yörenin genel bölümündeki /etc/passwd sembolik bağının
aktarımda içerilmediğinden emin olunmak istenmesi gösterilebilir.
--copy-unsafe-links seçeneğinin kullanımı sembolik bağların hedefindeki
dosyaların kopyalanmasına sebep olacaktır. --safe-links seçeneğinin
kullanımı ise güvensiz bağların atlanmasına sebep olacaktır.
Mutlak yol içeren (/ ile başlayan) sembolik bağlarla, bulunulan
dizinden daha yukarıdaki dizinleri gösteren ".." bileşenlerini içeren
sembolik bağlar güvensiz olarak kabul edilir.
TANI KOYMA
rsync ara sıra biraz şifreli gibi görünen hata iletileri üretir.
Bunlardan biri en kafa karıştıcı olan "protocol version mismatch -- is
your shell clean?" (protokol sürümü yanlış -- kabuğunuz temiz mi?)
iletisidir.
Bu ileti genellikle, rsync'in aktarım için kullandığı akım üzerinde
istenmeyen veriler üreten uzak kabul oluşumları ya da başlatma
betiklerinizden kaynaklanır. Bu soruna tanı koymanın yolu, uzak kabuğu
şöyle çalıştırmaktır:
ssh uzakmakine /bin/true > out.dat
Bundan sonra oluşturulan out.dat dosyasına bakın. Herşey yolunda
gitmişse dosya sıfır uzunlukta olacaktır. Eğer yukarıdaki hatayı
alıyorsanız, dosya bazı veriler içerecektir. Dosyanın içeriğine bakarak
bunları nelerin üretebileceğini bulmaya çalışın. Çok yapılan bir hata,
etkileşimsiz oturum açmak için komutlar içeren yanlış yapılandırılmış
kabuk betikleridir (.cshrc veya .profile gibi).
Süzme kalıplarında hata ayıklamak istiyorsanız, -vv seçeneğini
belirtmeyi deneyin. rsync, bu ayrıntı seviyesinde dosyaların tek tek
neden içerildiğini veya dışlandığını gösterecektir.
ÇIKIŞ DEĞERLERİ
0 Başarılı
1 Sözdizimi ya da kullanım hatası
2 Protokol uyumsuzluÄŸu
3 girdi/çıktı dosyalarını, dizinlerini seçerken oluşan hatalar
4 İstenen eylem desteklenmiyor; 64 bitlik dosyaları desteklemeyen
bir platformda bu tür dosyalarla çalışılmak isteniyor; istemci
tarafından desteklendiği halde sunucu tarafından desteklenmeyen
bir seçenek kullanılmış.
5 Sunucu/istmeci protokolü başlatılırken hata.
10 Soket G/Ç hatası
11 Dosya G/Ç hatası
12 rsync protokolü veri akımında hata
13 Uygulama tanılarında hata
14 Süreçlerarası iletişim (IPC) kodunda hata
20 Bir SIGUSR1 veya SIGINT alındı
21 waitpid() bazı hatalar döndürdü
22 nüve bellek tamponları ayrılırken hata
23 Hatadan dolayı kısmî aktarım
24 Gözden kaçan kaynak dosyalarından dolayı kısmî aktarım
30 Veri aktarımında zamanaşımı
ORTAM DEĞİŞKENLERİ
CVSIGNORE
.cvsignore dosyalarındaki gibi yoksayılacak kalıpları belirtmek
için kullanılır. Daha fazla bilgi için --cvs-exclude seçeneğinin
açıklamasına bakınız.
RSYNC_RSH
rsync tarafından kullanılan öntanımlı kabuğun yerine
kullanılacak kabuğu belirtmek için kullanılır. Komut isminden
sonra komut satırı seçeneği olarak sadece -e seçeneği
kullanılabilir.
RSYNC_PROXY
rsync sunucusuna bağlanırken rsync istemcisi tarafından
kullanılacak vekil sunucuyu belirtmek için kullanılır. Değeri
bir konakadı:port çifti olarak belirtmelisiniz.
RSYNC_PASSWORD
Kimlik kanıtlaması gerektiren bir rsync sunucusuna bağlanırken
komut satırında parola belirtmek zorunda kalmamak için parola bu
değişkene atanabilir. Aktarım ssh gibi bir kabuk üzerinden
gerçekleştiriliyorsa bu değişkene bakılmayacaktır.
USER veya LOGNAME
USER veya LOGNAME değişkenleri bir rsync sunucusuna gönderilecek
kullanıcı ismini saptamak için kullanılır. Böyle bir tanım
yapılmamışsa, öntanımlı kullanıcı ismi olarak "nobody"
kullanılır.
HOME Kullanıcının öntanımlı .cvsignore dosyasını bulmakta kullanılır.
İLGİLİ DOSYALAR
/etc/rsyncd.conf veya rsyncd.conf
İLGİLİ BELGELER
rsyncd.conf(5)
HATALAR
Zamanlar unix time_t türünden değerler olarak aktarılır.
Dosyalar FAT dosya sistemine aktarılırken, rsync dosyalarda değişiklik
yapmayabilir. --modify-window seçeneğinin açıklamasına bakınız.
Dosya izinleri, aygıtlar, vs. temel sayısal değerleriyle aktarılır.
Ayrıca, --delete seçeneğinin açıklamasına da bakınız.
Lütfen hataları raporlayınız! Hataları raporlamak için
http://rsync.samba.org/ adresine bakınız.
RSYNC HAKKINDA
rsync GNU kamu lisansı altında dağıtılmaktadır. Ayrıntılar için COPYING
dosyasına bakınız.
Sanalyöremize http://rsync.samba.org/ adresinden erişebilirsiniz. Bu
kılavuz sayfasında yanıtlarını bulamadığınız sorular için
sanalyöremizde bir FAQ-O-Matic bulunmaktadır.
rsync'in ana ftp'si: ftp://rsync.samba.org/pub/rsync.
Bu uygulamayı istiyorsanız, sizden bunu duymak bizi mennun edecektir.
Bu uygulamada, Jean-loup Gailly ve Mark Adler tarafından yazılmış zlib
sıkıştırma kütüphanesi kullanılmaktadır.
TEŞEKKÜR
rsync'in yamanması, sınanması ve önerileri için Richard Brent, Brendan
Mackay, Bill Waite, Stephen Rothwell ve David Bell'e teşekkür
ederiz. Burada bahsetmeyi unuttuğum kişiler kalmışsa, affola.
Ayrıca, David Dykstra, Jos Backus, Sebastian Krahmer, Martin Pool,
Wayne Davison ve J.W. Schultz'a özellikle teşekkür ederiz.
YAZANLAR
rsync ilk olarak Andrew Tridgell ve Paul Mackerras tarafından yazıldı.
Daha sonra bir çok kişi tarafından geliştirildi.
Destek ve geliştirme için http://lists.samba.org adresindeki eposta
listelerine bakınız.
ÇEVİREN
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Mart 2005
28 Åžubat 2005 rsync(1)