Scroll to navigation

RSYNC(1) Kullanıcı Komutları RSYNC(1)

İSİM

rsync - hızlı, becerikli, uzak (ve yerel) dosya kopyalama aracı

KULLANIM

Yerel:

[SEÇENEK...] KAYNAK... [HEDEF]

Uzak bağlantı:

Alım:

[SEÇENEK...] [KULL@]KONAK:KAYNAK... [HEDEF]

Gönderim:

[SEÇENEK...] KAYNAK... [KULL@]KONAK:HEDEF

rsync sürecinden erişim:

Alım:

[SEÇENEK...] [KULL@]KONAK::KAYNAK... [HEDEF]
[SEÇENEK...] rsync://[KULL@]KONAK[:PORT]/KAYNAK... [HEDEF]

Gönderim:

[SEÇENEK...] KAYNAK... [KULL@]KONAK::HEDEF
[SEÇENEK...] KAYNAK... rsync://[KULL@]KONAK[:PORT]/HEDEF

 

HEDEF belirtmeksizin yalnızca KAYNAK belirtilen kullanımda kopyalama yapılmaz, kaynak dosyalar listelenir.
Bu kılavuz sayfasının belge içi bağlarla gezilebilir sürümü için bkz:
http://tlbp.gen.tr/man/man1/man1-rsync.html

AÇIKLAMA

rsync hızlı ve olağanüstü becerikli bir dosya kopyalama aracıdır. Yerel olarak veya herhangi bir uzak kabuk ya da uzak rsync sunucusu üzerinden başka bir konağa/konaktan kopyalama yapabilir. Davranışının her yönünü denetleyebilen çok sayıda seçenek sunar ve kopyalanacak dosyaların çok esnek belirlenmesine olanak sağlar. Yalnızca kaynak dosyalar ile hedefteki mevcut dosyalar arasındaki farkları göndererek ağ üzerinden gönderilen veri miktarını azaltan delta aktarım algoritmasıyla ünlüdür. rsync, yedekleme ve yansılama için ve günlük kullanım için geliştirilmiş bir kopyalama komutu olarak yaygın olarak kullanılır.

rsync boyutuna veya son değişiklik zamanında bakarak değişen dosyaları bulan "hızlı denetim" algoritmasını (öntanımlıdır) kullanarak aktarılacak dosyaları saptar. Hızlı bir denetimle dosya verisinin güncellenmesinin gerekmediği saptandığında bile ilgili seçenekler belirtilerek istendiği takdirde diğer öznitelikler de hedef dosyaya aktarılır.

rsync’e özgü bazı ek özellikler:

bağların, aygıtların, sahip, grup ve izinlerin kopyalanmasını destekler
GNU tar’a benzer exclude ve exclude-from seçenekleri
CVS’nin yok sayacağı dosyaların yoksayılmasını sağlayan CVS dışlama (.ignore) kipi
rsh, ssh gibi uzak geçirgen kabukları kullanabilir
ayrıcalıklı kullancının yetkilerine ihtiyaç duymaz
görünmeyen maliyetleri asgari düzeyde tutmak için dosya aktarımlarında borulama yapar
hem anonim hem de kimlik doğrulamalı rsync sunucu desteği (yansılama için ideal)

GENEL

rsync dosyaları, uzak konaktan yerele veya yerelden uzak konağa ya da yerel dosya sistemi içinde kopyalayabilir. İki uzak konak arasında dosya kopyalamayı desteklememektedir.

rsync’in uzak bir sisteme bağlanmasının iki yolu vardır: ssh(1) veya rsh(1) gibi uzak kabuk uygulamalarından birini kullanarak ya da doğrudan TCP üzerinden rsync sunucusuna bağlanarak. Kaynak veya hedef, konak belirtiminden sonra tek bir : imi ile ayrılarak belirtiliyorsa uzak kabuk aktarımı uygulanır. Kaynak veya hedef, konak belirtiminden sonra bir çift : imi (::) ile ayrılarak belirtiliyorsa veya rsync://URL belirtimi kullanılmışsa doğrudan rsync sucucusuna bağlanmaya çalışılır. (İkinci kuralın bir istisnası için bkz: RSYNC ARTALAN SÜRECİNE UZAK KABUKTAN BAĞLANMAK).

Özel bir durum olarak, hedef belirtmeksizin tek bir kaynak belirtilmesi durumunda dosyalar "ls -l" çıktısına benzer biçemde listelenir.

Beklendiği gibi, ne hedefte ne de kaynakta uzak bir konak belirtilmiyorsa dosya sistemi içinde kopyalama yapılır (ayrıca, bkz: --list-only seçeneği).

rsync yerel tarafı istemci, uzak tarafı sunucu olarak ele alır. Sunucu ile rsync artalan sürecini karıştırmayın. Artalan süreci daima sunucudur fakat sunucu (uzak taraf) bir artalan süreci olabileceği gibi uzak kabuğun çatalladığı bir süreç de olabilir.

AYARLAR

Kurulum işlemleri için README.md dosyasına bakınız.

Kurduktan sonra, bir uzak kabuk üzerinden erişelebilen (veya rsync artalan kipi protokolü kullanarak erişilebilen) her makinede rsync kullanılabilir. Uzak dosya aktarımları için, günümüzde rsync iletişiminde ssh kullanmasına rağmen öntanımlı olarak kullanacağı uzak kabuk rsh veya remsh gibi bir kabuk olarak da ayarlanabilir.

Bundan başka, istediğiniz uzak kabuk uygulamasını -e komut satırı seçeneğinin girdisi olarak veya RSYNC_RSH ortam değişkenine atayarak da belirtebilirsiniz.

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. Komut satırında belirtilen *.c kalıbını yorumlayarak dosyaları bulma işlemini rsync değil, rsync’i çalıştırmadan önce kabuk yapar (tüm diğer Posix tarzı uygulamalar için de bu böyledir).

rsync -avz foo:src/bar /data/tmp

Bu komut, foo makinesindeki src/bar dizinindeki tüm dosyaları varsa alt dizinlerdekileri de içererek yerel makinenin /data/tmp/bar 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şturma 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, geçerli dizinin içeriğini kopyalarken konak ve modül gönderimlerinde de sona eğik çizgi koymak gerekmez. Örneğin, aşağıdakilerin ikisi de uzak dizinin içeriğini "/hedef" dizinine kopyalayacaktır:

rsync -av konak: /hedef
rsync -av konak::modul /hedef

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.

Son olarak, belli bir rsync sunucusundaki modüllerden listelenebilir olanlar modül ismi boş bırakılarak listelenebilir:

rsync somehost.mydomain.com::

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ı, ilkinden sonra uzak konağı belirterek de belirtmeyerek de yazılabilir. Aşağıdakilerin hepsi çalışacaktır:

rsync -aiv konak:dosya1 :dosya2 konak:dosya{3,4} /hedef/
rsync -aiv konak::modismi/dosya{1,2} konak::modismi/ek /hedef/
rsync -aiv konak::modismi/first ::modismi/ek{1,2} /hedef/

Günümüz rsync’inde, yerel kabukta bir şeyleri tırnak içine almak veya ters eğik çizgi ile öncelemek gerekirse bunu ayrıca uzak konak için de yapmak gerekmez:

rsync -aiv konak:’basit bir dosya.pdf’ /hedef/

rsync’in oldukça eski sürümlerinde, tek bir konak girdisne izin verilirdi, dolayısıyla diğer tarafın girdileri boşluklara göre ayıklaması gerekirdi. --old-args seçeneği belirtilerek eski tarz girdi ayıklaması hala kullanabilmektedir:

rsync -ai --old-args konak:’dzn1/dosya1 dzn2/dosya2’ /hedef
rsync -ai --old-args konak::’modismi/dzn1/dosya1 modismi/dzn2/dosya2’ /hedef

Eski toplu işlem dosyalarına yardımcı olmak üzere atanabilecek ortam değişkeni için --old-args seçeneğinin açıklamasına bakınız.

RSYNC ARTALAN SÜRECİNE BAĞLANMAK

Dosya aktarımı için rsync’i bir uzak kabuk olmaksızın kullanmak da mümkündür. Bu durumda, TCP 873. port üzerinde çalışan bir uzak rsync sunucusuna bağlanırsınız. Bu açıkça artalan sürecinin uzak makinada çalışıyor olmasını gerektirir. Bu konuda daha ayrıntılı bilgi için bkz: RSYNC ARTALAN SÜRECİNE UZAK KABUKTAN BAĞLANMAK

rsync’i bu yöntemle kullanmanın bir uzak kabuk üzerinden kullanmaya göre farkları şunlardır:

Ya makine ismini dosya yolundan ayırmak için tek bir : yerine :: kullanırsınız ya da rsync://URL biçimini kullanırsınız.
Dosya yolunun ilk sözcüğü aslında bir modül ismidir.
Sunucu bağlandığınızda günün iletisini basabilir.
Sunucu için bir dosya yolu belirtmezseniz, sunucu üzerinde erişilebilir olan dosya yollarının listesini alırsınız.
Bir yerel hedef belirtmezseniz, uzak sunucu istediğiniz dosyaların bir listesini yollar.
--rsh (-e) seçeneğini belirtmemelisiniz (yoksa ssh bağlantısı bir süreç çatallayacağından sunucuda çalışan artalan süreci yoksayılır -- bkz: RSYNC ARTALAN SÜRECİNE UZAK KABUKTAN BAĞLANMAK)

"kaynak" adlı uzak modüldeki dosyaların tümünü kopyalayan bir örnek:

rsync -av konak::kaynak /hedef

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 toplu işlem dosyası ile kullandığınız durumlarda yararlıdır.

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.

RSYNC_PROXY ortam değişkenine bir konak: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.

Doğrudan soket bağlantısı yapmak yerine RSYNC_CONNECT_PROG ortam değikenine çalıştırmak istediğiniz komutları atayarak bir uygulamayı vekil olarak kullanmak suretiyle artalan sürecinin ağa bağlanması sağlanabilir. Komut dizgesi, rsync komutunda belirtilen konak adını ifade etmek üzere "%H" değişkenini içerebilir (dizgede tek bir % belirtmek gerekirse yerine %% kullanılabilir). Örnek:

export RSYNC_CONNECT_PROG=’ssh vekilkonak nc %H 873’
rsync -av hedefkonak1::modul/kaynak/ /hedef/
rsync -av rsync://hedefkonak2/modul/kaynak/ /hedef/

Yukarıda, ilk komutta, tüm verileri hedefkonaktaki (%H) 873. porta (rsync artalan sürecine) ileten vekilkonak üzerinde nc(1) (netcat) çalıştırmak için ssh(1) kullanılmaktadır. Ayrıca, RSYNC_SHELL ortam değişkenine bir uygulama tanımlanırsa, RSYNC_CONNECT_PROG komutunu çalıştırmak için system(3) çağrısının öntanımlı kabuğu yerine bu uygulama kullanılır.

RSYNC ARTALAN SÜRECİNE UZAK KABUKTAN BAĞLANMAK

rsync artalan sürecinin, (isimli modüller gibi) çeşitli özelliklerini kullanarak, fazladan bir soket bağlantısı yapmadan, sisteme uzak kabukla bağlanmak bazen yararlıdır. rsync, bir konağa uzak kabuk kullanarak bağlanmayı ve ardından uzak kullanıcının ev dizinindeki bir yapılandırma dosyasını okuyacak tek kullanımlık bir "artalan" sunucusu çatallamayı destekler. Artalan süreci tarzı bir aktarımda verilerin şifrelenmek istenmesi durumunda bu yararlı olabilir, ancak artalan süreci uzak kullanıcı tarafından başlatıldığından, chroot(1) gibi özellikler kullanılamayabilir veya artalan süreci tarafından kullanılan kullanıcı kimliği değiştirilemeyebilir. (Artalan süreci aktarımını şifrelemenin başka bir yolu da, ssh(1) kullanarak yerel bir portu uzak bir konağa tünellemek ve uzak konaktaki normal rsync artalan sürecini yalnızca "localhost" bağlantılarına izin verecek şekilde yapılandırmaktır.)

Kullanıcı açısından, uzak kabuk bağlantısıyla uzak artalan süreci çatallayarak aktarımda, normal rsync artalan süreci aktarımında kullanılanla hemen hemen aynı komut satırı sözdizimi kullanılır. Tek fark, uzak kabuğun --rsh=KOMUT seçeneğiyle komut satırında açıkça belirtilmesi gerekliliğidir. (RSYNC_RSH ortam değişkeninin kullanımı aynı işlevselliği sağlamaz.) Örnek:

rsync -av --rsh=ssh konak::modul /hedef

Farklı bir uzak kabuk kullanıcısı belirtmeniz gerekiyorsa, konaktan önce belirtilen kullanıcının (kullanıcı tabanlı kimlik doğrulaması gerektiren bir modül için) rsync kullanıcısını belirttiğini unutmayın. Yani, --rsh seçeneğinin kısa sürümünün kullanıldığı aşağıdaki örnekte olduğu gibi, Uzak kabuk kullanıcısını, rsync kullanıcısından ayırmak için uzak kabuk komutunda ’-l kullanıcı’ seçeneğini kullanmak gerekir:

rsync -av -e "ssh -l ssh-kull" rsync-kull@konak::modul /hedef

ssh-kullanıcısı ssh(1) seviyesinde kullanılmalıdır; rsync-kullanıcısı ise "modul"e oturum açmak için kullanılacaktır.

Bu kullanımda, rsync artalan süreci ssh(1) tarafından sisteme erişilerek başlatılmaktadır (istenirse, ~/.ssh/authorized_keys dosyası üzerinden de zorlanabilir). Ancak, artalan sürecine (uzak kabuk uygulaması ile değil) doğrudan erişilecekse sürecin önceden çalıştırılmış olması gerekir.

BAĞLANTI BEKLEYECEK RSYNC ARTALAN SÜRECİNİ BAŞLATMAK

Bir rsync artalan sürecine bağlanabilmek için uzak sistemde rsync artalan sürecinin çalışmakta olması gerekir (veya belli bir porttan gelen bağlantıda bir rsync artalan sürecini çatallaması için inetd benzeri bir sürecin yapılandırılması gerekir). Gelen soket bağlantılarını işleyecek bir artalan sürecinin nasıl başlatılacağı hakkında bilgi için bkz: rsyncd.conf(5) -- bu, artalan sürecinin yapılandırma dosyasıdır ve artalan sürecinin nasıl çalıştırılacağına ilişkin tüm ayrıntıları içerir (artalan süreci ve inetd yapılandırmaları dahil).

Uzak kabuk aktarımlarından biri kullanılacaksa rsync artalan sürecini başlatmak gerekmez.

AKTARIM SIRALAMASI

rsync, belirtilen dosya adlarını her zaman dahili aktarım listesinde sıralar. Aynı adlı dizinlerin içerikleri birleştirilerek, yinelenen dosya adlarını kaldırmak kolaylaşır, yoksa dosyalar komut satırında verilenden farklı bir sırada aktarıldığında birilerinin kafası karışabilirdi.

Belli bir dosyanın diğerlerinden önce aktarılması gerekirse, dosyalar farklı rsync oturumlarında aktarılabileceği gibi --delay-updates seçeneği de kullanılabilir (ikincisi sıralı dosya aktarımını etkilemez ama son dosya güncelleme aşaması daha hızlı olur).

ÖRNEKLER

Burada rsync kullanımıyla ilgili bazı örneklere yer verilmiştir.

Büyük MS Word dosyaları ve eposta dizinlerinden oluşan eşimin ev dizinini yedeklemek için her gece bir PPP bağlantısı üzerinden bunları kendi makinemin arvidsjaur dizinine şöyle bir cron işi ile aktarıyorum:

rsync -Cavz . arvidsjaur:backup

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(8)’dan çalıştırılıyor.

ÖZETLE SEÇENEKLER

Burada rsync’de kullanılabilen seçeneklerin bir özetine yer verilmiştir. Bu seçenekler bir sonraki bölümde ayrıntılı olarak açıklanmıştır.

--verbose, -v            çıktı daha ayrıntılı olur
--quiet, -q              hatalar dışında bilgi verilmez
--info=SÇNK              ince taneli bilgilendirici ayrıntılama
--debug=SÇNK             ince taneli hata ayıklayıcı ayrıntılama
--stderr=e|a|c           std hata çıktı kipi değişir (ön: errors)
--quiet, -q              hata olmayan iletiler baskılanır
--no-motd                süreç kipi MOTD baskılanır
--checksum, -c           sadece toplam sağlamaya bakılır, zaman ve

boyut değişikliklerine bakılmaz --archive, -a arşiv kipi; -rlptgoD (-H’sız) ile aynı --no-SEÇENEK belirtilen seçeneği olumsuzlar (--no-D gibi) --recursive, -r dizinlerin alt dizinlerine inilir --relative, -R göreli dosya yolları kullanılır --no-relative --relative kapatılır --no-implied-dirs -R uygulanmış dizinler gönderilmez --backup, -b 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) --update, -u hedeftekiler daha yeniyse bu dosyalar
atlanır --inplace hedef dosyaları yerinde günceller --append hedef kısaysa ve eşit olacaksa veriyi ekler --append-verify eski veri sağlama toplamına eklenir --dirs, -d altdizinlere inmeden dizinleri aktarır --old-dirs, --old-d eski rsync ile iletişimde --dirs gibidir --mkpath hedefin yol bileşeni oluşturulur --links, -l sembolik bağları sembolik bağ olarak
kopyalar --copy-links, L 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 --munge-links sembolik bağı bağ değil dosya olarak aktarır --copy-dirlinks, -k sembolik bağı hedefindeki dosyaya dönüştürür --keep-dirlinks, -K sembolik bağlı dizinler alıcıda dizin
yapılır --hard-links, -H sabit bağlar korunur --perms, -p izinler korunur --executability, -E çalıştırılabilirlik korunur --chmod=CHMOD dosya ve/ya dizin izinleri korunur --acls, -A ACLler korunur (--perms uygular) --xattrs, -X ek öznitelikler korunur --owner, -o sahip korunur (sadece root) --group, -o grup korunur --devices, -D aygıtlar korunur (sadece root) --copy-devices aygıt içeriğini normal dosya gibi kopyalar --write-devices aygıtlara dosya gibi yaz (--inplace uygula) --specials özel dosyalar korunur -D --devices --specials kullanımına eşdeğer --times, -t zamanlar korunur --atimes, -U erişim zamanları korunur --open-noatime açılan dosyaların erişim zamanı değiştrlmez --crtimes, -N oluşturulma zamanları korunur (yeni-lik) --omit-dir-times, -O zamanlar korunurken dizinler bunun
dışında tutulur --super alıcıya root’un işlerini de yapmasını söyler --fake-super xattr’lerle ayrıcalıklıları saklar/kurtarır --sparse, -S seyrek dosyaları en verimli şekilde
elde eder --preallocate hedef dosyaları yazmadan önce yer ayırır --dry-run, -n işlemi yapıyormuş gibi gösterir ama yapmaz --whole-file, -W dosyaları tamamen kopyalar
(rsync algoritması ile farkları değil) --checksum-choice=AD sağlama toplamı algoritmasını seçer (--cc gibi) --one-file-system, -x dosya sistemi sınırlarının dışına çıkılmaz --block-size=BOYUT, -B sabit bir blok boyunda sağlama toplamına
zorlar --rsh=KOMUT, -e 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-source-files gönderen dosyaları eşzamanlı siler (dizinsiz) --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-delay silinenleri saptar, aktarım sonrası siler --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-missing-args kaynakta belirtilmeyenleri hatasız yoksayar --delete-missing-args kaynakta belirtilmeyenler hedefte 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 büyük dosyalar aktarılmaz --min-size=BOYUT BOYUTtan küçük dosyalar aktarılmaz --max-alloc=BOYUT bellek ayırma sınırını değiştirir --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 --prune-empty-dirs, -m dosya listesindeki boş dizinleri budar --numeric-ids kullanıcı/grup kimliklerini isimlerle
eşleştirmez --usermap=İSİM özel kullanıcı adı eşlemi --groupmap=İSİM özel grup adı eşlemi --chown=KULL:GRUP basit kullanıcı/grup eşlemi --timeout=SÜRE G/Ç zamanaşımını SÜRE saniyeye ayarlar --contimeout=SÜRE bağlantı zamanaşımını SÜRE saniyeye ayarlar --ignore-times, -I 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 --temp-dir=DİZİN, -T geçici dosyaları DİZİNde oluşturur --fuzzy, -y hedefte dosya yoksa benzerini bulur --compare-dest=DİZİN alınan dosyaları ayrıca DİZİNdekilerle
karşılaştırır --copy-dest=DİZİN DİZİNde değişmemiş dosyaları hedefe kopyalar --link-dest=DİZİN değişmediyse DİZİNdeki dosyalara sabit bağ --compress, -z aktarım sırasında dosya verisi sıkıştırılır --compress-choice=STR sıkıştırma algoritması belirtir (--zc gibi) --compress-level=SAYI sıkıştırma seviyesi belirtir (--zl gibi) --skip-compress=LISTE uzantısı LİSTEdeki dosyalar sıkıştırılmaz --cvs-exclude, -C dosyalar CVS’nin yaptığı gibi yoksayılır --filter=KURAL, -f 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 --from0, -0 *from seçeneklerindeki dosya listeleri boş
karakter sonlandırmalı kabul edilir --old-args eski tarz boşluk ayıklaması etkin olur --protect-args, -s boşluk ayıklama yok; yalnız jokerler --copy-as=KULL[:GRUP] kopyalama içim kullanıcı ve seçimlik grup --address=ADRES giden soketine adresi bağlar --port=PORT başka bir port belirtmek için --sockopts=SÇNK özel TCP SeÇeNeKleri belirtilir --blocking-io uzak kabukta engellemeli G/Ç kullanılır --outbuf=N|L|B çıktı tamponu biçim: None, Line, Block
yok, satır, blok --stats dosya aktarımı sırasında durum bilgileri
verir --8-bit-output, -8 yüksek bitli karakterler çıktıda öncelenmez --human-readable, -h okunabilen sayılar çıktılanır --progress aktarım sırasında gelişimi gösterir -P --partial --progress ile aynı --itemize-changes, -i tüm güncellemeler için bir değişiklik
özeti çıktılar --remote-option=SÇN, -M SEÇENEK sadece uzak taraf gönderilir --out-format=BÇM çıktı belirtilen BiÇeMde güncellenir --log-file=DOSYA günlük belritilen DOSYAya kaydedilir --log-file-format=BÇM günlük belirtilen BiÇeM ile güncellenir --password-file=DOSYA parola DOSYAdan okunur --early-input=DOSYA sürecin başta çalıştıracağı DOSYA --list-only dosyaları kopyalamaz, sadece listeler --bwlimit=KBPS saniyede kBayt cinsinden G/Ç band genişliği --stop-after=DAK DAK dakika sonra rsync durdurulur --stop-at=y-m-dTh:m rsync belirtilen zamanda durdurulur --write-batch=DOSYA bir toplu işlemli güncellemeyi DOSYAya yazar --only-write-batch=DOSYA --write-batch gibi ama hedef güncellenmez --read-batch=DOSYA bir toplu işlemli güncellemeyi DOSYAdan okur --protocol=SAYI eski protokol sürümüne zorlar --iconv=DNŞM dosyalara karakter kümesi dönüşümü ister --checksum-seed=SAYI blok/dosya sağlama toplamı tohumunu ayarlar --ipv4, -4 IPv4 tercih edilir --ipv6, -6 IPv6 tercih edilir --version, -V sürüm + diğer bilgileri basar ve çıkar --help, -h bu yardım iletisini gösterir ve çıkar

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
--dparam=YENİSİ, -M       genel sunucu yapılandırması geçersiz olur
--no-detach               üst süreçten ayrık çalışmaz
--port=PORT               belirtilen PORTu dinler
--log-file=DOSYA          "günlük dosyası" ayarları geçersiz olur
--log-file-format=BÇM     "günlük biçemi" ayarları geçersiz olur
--sockopts=SÇNKLER        özel TCP seçenekleri belirtilir
--verbose, -v             ayrıntı düzeyini arttırır
--ipv4, -4                IPv4 tercih edilir
--ipv6, -6                IPv6 tercih edilir
--help, -h --daemon       bu yardım iletisini gösterir ve çıkar

AÇIKLAMALARIYLA SEÇENEKLER

rsync hem kısa (tek tire artı harf) hem de uzun seçenekleri (çift-tire artı sözcük) kabul eder. Aynı amaca yönelik birden fazla seçenek varsa aralarına virgül konarak listelenmiştir. Bir seçenek girdi alıyorsa ve sadece uzun seçenekte belirtilmişse, girdinin kısa seçenekte için de kullanılması zorunludur. Bazı seçenekler ise sadece uzun seçeneklerden oluşur, kısaları yoktur. ’=’ işareti içeren seçeneklerde ’=’ isteğe bağlıdır; ’=’ yerine boşluk kullanılabilir. girdileri kabuk yorumlamasından korumak için önceleyerek belirtmek gerekebilir. Bir dosya yolundaki yaklaşık imi (~) kabuk tarafından ev dizininiz olarak yorumlanır, bu nedenle --option=~/foo kullanımında yaklaşık iminin kabuk tarafından ev dizininiz olarak yorumlanabilmesi için ’=’ işareti yerine boşluk kullanılmalıdır.

rsync tarafından kabul edilen seçenekleri açıklayan kısa bir yardım iletisi basar ve çıkar. Normalde --human-readable seçeneğinin kısa kullanımı olan --h seçeneğini başka seçenekler olmadan --help yerine de kullanabilirsiniz.

rsync sürüm numarasını ve ek bilgiler basar ve çıkar.

Çıktıda, lisans ve telif hakkı bilgilerinden başka rysnc sitesine bir bağlantı, öntanımlı sıkıştırma ve sağlama toplamı algoritmalarının listesi ile derlenmiş yeteneklerin listesi bulunur.

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.

Çalıştırma sonu özeti, oturum boyunca uzak rsync’e (yerel kopyalamada alıcı tarafa) gönderilen ve alınan bayt sayısını ve saniyede aktarılan bayt sayısını gösterir. İkinci satır, rsync’in oturumda aktaracağı dosyaların toplam bayt sayısı ile gönderilen ve alınan baytların bunların toplamına oranları (bunlar gerçekten daha iyi hissettiren, daha büyüğün daha iyi olduğu sayılardır) gösterilir. Bu değerler ayrıca, --human-readable (veya --no-human-readable) seçenekleri kullanılarak insan tarafından daha fazla (veya daha az) okunabilir duruma da getirilebilir.

Günümüz rsync’inde, -v seçeneği --info ve --debug seçeneklerinin birlikte kullanımına eğdeğer bir çıktı üretir. Ayrıntı düzeyi arttıkça her bilginin ayrıntı düzeyi aynı oranda artmadığından -v seçeneği yerine veya birlikte bu yeni seçeneklerin kullanımı tercih edilebilir. Hem --info hem de --debug, ayrıntıdaki her artış için tam olarak hangi ayarlamaların yapıldığını belirten bir yardım istemine de sahiptir.

Bununla birlikte, artalan sürecinin "azami ayrıntı" ayarlarının, artalan süreci tarafında hangi seçenekleri ne kadar yüksek bir ayrıntıyla sınırlayabileceği de dikkate alınmalıdır. Örneğin azamilik 2 ise, -vv ile ayarlanandan daha yüksek bir değere ayarlanan info ve debug seçeneklerinin ayrıntı düzeyi, artalan süreci oturumunun -vv düzeyine indirilir.

--info çıktıda görmek istenilen bilgiler üzerinde ince ayar yapılabilmesini sağlar. Her SEÇENEK sonunda bir rakam içerir. 0 çıktıda sessizliğe, 1 öntanımlı çıktı düzeyine, daha yüksek değerler de (daha yüksek ayrıntı düzeyini destekleyenler için) daha yüksek ayrıntı düzeyine karşılık gelir. Kullanılabilecek seçenek isimlerini, bunların ne çıktıladıklarını ve ayrıntı düzeyindeki her artış için hangi seçenek isimlerinin ekleneceğini görmek için rsync --info=help komutu verilebilir. Bazı örnekler:

rsync -a --info=progress2 kaynak/ hedef/
rsync -avv --info=stats2,misc1,flist0 kaynak/ hedef/

--info=name çıktısının --out-format ve --itemize-changes (-i) seçeneklerinden etkileneceği dikkate alınmalıdır. Bu seçeneklerin ne zaman ne çıktılayacaklarını görmek için seçeneklerin açıklamalarına bakılabilir.

Bu seçenek 3.1.0 sürümünde eklenmiştir, bu nedenle sunucu tarafındaki daha eski bir rsync, ince ayar girişimlerini reddedebilir (sunucuya bir veya daha fazla seçenek gönderilmesi gerekiyorsa ve sunucu bunları anlamayacak kadar eskiyse). Bir artalan süreciyle çalışılacaksa yukarıdaki azami ayrıntı uyarısına da bakmakta yarar vardır.

--debug çıktıda görmek istenilen bilgiler üzerinde ince ayar yapılabilmesini sağlar. Her SEÇENEK sonunda bir rakam içerir. 0 çıktıda sessizliğe, 1 öntanımlı çıktı düzeyine, daha yüksek değerler de (daha yüksek ayrıntı düzeyini destekleyenler için) daha yüksek ayrıntı düzeyine karşılık gelir. Kullanılabilecek seçenek isimlerini, bunların ne çıktıladıklarını ve ayrıntı düzeyindeki her artış için hangi seçenek isimlerinin ekleneceğini görmek için rsync --debug=help komutu verilebilir. Bazı örnekler:

rsync -avvv --debug=none kaynak/ hedef/
rsync -avA --del --debug=del2,acl kaynak/ hedef/

Bazı hata ayıklama iletilerinin, özellikle G/Ç ve tampon ile ilgili olanlarının sadece --stderr=all seçeneği belirtildiğinde çıktılanacağına dikkat edilmelidir.

3.2.0 sürümünden itibaren, her aktarım tarafı için farklı hata ayıklama değerleri belirlemenize ve rsync sürümlerinden yalnızca birinde bulunan yeni bir hata ayıklama seçeneğini belirtmenize izin vermek için bu seçenek, artık sunucu tarafına otomatik olarak iletilmemektedir. Aynı seçeneğin her iki tarafa da uygulanması istenirse, kaşlı ayraç genişletmesini kullanmak, kod yazmaktan kurtulmanın kolay bir yoludur. Aşağıdaki komut, zsh(1) ve bash(1)’ta çalışır:

rsync -aiv {-M,}--debug=del2 kaynak/ hedef/

Bu seçenek, hangi işlemlerin ve bilgi iletilerinin standart hataya çıktılanacağını belirtmekte kullanılır. Kip dizgeleri kısaltılabilir, bu nedenle tek harflik değerler de kullanılabilir. Olası 3 seçim şunlardır:

Süreç aktarımın uzak tarafında olsa bile rsync öntanımlı olarak hataları doğrudan standart hataya gönderir. İstemci tarafa bilgi iletileri ise protokol akımı üzerinden gönderilir. Standart hata kullanılabilir değilse (yani, sürece doğrudan bir soket üzerinden bağlanılıyorsa) hatalar son çare olarak protokol akımı üzerinden gönderilir.

Tüm rsync iletilerinin (bilgi ve hata) tüm (olası) süreçler tarafından doğrudan standart hataya gönderilmesini sağlar. Bu, standart hatanın (ham değil) satır tamponlu duruma gelmesine sebep olarak, bilgi ve hata iletilerinin dosya tanıtıcısına göre işlenmesi özelliğini ortadan kaldırır. Hata ayıklaması yapılan veya yüksek ayrıntı düzeyiyle kullanılan süreçler için bu seçenek, aktarım akımının tıkanmasını önlemeye yardımcı olabilir (bunun, çıkmaza girme hatasında bir şeylerin kapanma olasılığını önlemesi gerekir). Ayrıca --debug seçeneğinin G/Ç ile ilgili bazı ek iletileri etkinleştirmesini sağlar.

Tüm rsync iletilerinin istemci tarafa protokol akımı üzerinden gönderilmesini sağlar. Tüm iletileri tek istemci süreç çıktılar; hataları standart hataya, bilgi iletilerini standart çıktıya gönderir. Bu durum, eski rsync sürümlerine öntanımlıydı. Fakat, iletilerin önünde çok fazla aktarım verisi olduğunda hata gecikmelerine neden olabiliyordu. Dosyalar eski bir rsync’e gönderiliyorsa, çoğu sürümde geçerli olan --stderr=all seçeneği tercih edilebilir.

Bu seçenek rsync’e 3.2.3 sürümünde eklenmiştir. Bu sürüm ayrıca uzak tarafa öntanımlı olmayan bir ayarı iletmeye başlamasına rağmen rsync, sırasıyla all ve client ayarlarını temsil etmek üzere geriye dönük uyumlu --msgs2stderr ve --no-msgs2stderr seçeneklerini kullanıyordu. Yeni rsync sürümleri, uyumluluğu korumak için bu eski seçenek adlarını kabul etmeye devam edecektir.

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.

Artalan sürecine aktarımın başlangıcında istemci tarafından çıktılanan bilgiyi etkiler. Günün iletisini (MOTD) baskılar fakat ayrıca, (rsync protokolü ile ilgili sınırlamalar nedeniyle) artalan sürecinin rsync host:: isteğine yanıt olarak gönderdiği modül listesini de etkiler. Bu bakımdan, artalan sürecinden modül listesi isteği yapılacaksa bu seçeneğin kullanılmaması gerekir.

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ı kapatarak tüm dosyaların güncellenmesini sağlar.

Bu seçenek rsync’in daha fazla dosya aktarmasına sebep olduğundan, rsync’in birkaç dosya aktarmasına sebep olan --ignore-existing ve --ignore-non-existing seçenekleriyle karşılaştırıldığında kafa karıştırıcı olabilir.

Bu seçenek bu "hızlı sınama" davranışını değiştirerek dosyaların değişiklik zamanlarına bakılmaksızın hedefte de aynı boyutta iseler aktarılmamalarını sağlar. rsync, zaman değerlerinin doğru tutulmadığı başka bir yansılama sistemini kullandıktan sonra kullanılmaya başlanacaksa bu seçenek yararlıdır.

-@, --modify-window=SAYI
İki zaman değerini karşılaştırırken, fark SAYI’da küçükse rsync bu değerleri eşit kabul eder. Bu fark normalde 0 saniyedir (tam eşitlik). Negatif değer belirtilirse, nanosaniyeler de dikkate alınır (alıcı tarafın sürümü en az 3.1.3 olmalıdır). 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).

Tüm aktarımlarda nanosaniyelik karşılaştırmanın öntanımlı olması istenirse bir ~/.popt dosyası oluşturulup içine şu satırlar konabilir:

rsync alias -a -a@-1
rsync alias -t -t@-1

Bu artık öntanımlı olduğundan, örneğin, ext3 ve ext4 arasında kopyalama yapılacaksa ya da alıcı rsync, 3.1.3 sürümünden eskiyse nanosaniyeleri yoksaymak ve geçersiz kılmak için --modify-window=0 (yani, -@0) seçeneğinin belirtilmesi gerekecektir.

Bu seçenek rsync’in dosyaların değiştirilip değiştirilmediğini ve bir aktarıma ihtiyaç olup olmadığını denetleme şeklini değiştirir. Bu seçenek olmadan rsync, (öntanımlı olarak) her dosyanın boyutunun ve son değişiklik zamanının gönderici ve alıcı arasında eşleşip eşleşmediğini denetlemek için "hızlı sınama" yöntemini kullanır. Bu seçenek ile, her dosyanın 128 bitlik sağlama toplamıyla eşleştirilmesi sağlanmaya çalışılır. Sağlama toplamlarının oluşturulması, her iki tarafın da aktarımdaki dosyalardan tüm verileri okumak için çok fazla disk G/Ç işlemi yapılacağı anlamına gelir, bu nedenle bu seçenek, işleri önemli ölçüde yavaşlatabilir (ve bu, değiştirilen dosyaları aktarmak için yapılacak herhangi bir okumadan önce yapılır).

Gönderen taraf, kullanılabilir dosyaların listesini oluşturmak için dosya sistemini tararken sağlama toplamlarını da üretir. Alıcı taraf ise, sağlama toplamlarını değişmiş dosyaları tararken üretir ve gönderici taraftakiyle aynı boyuttaki dosyalarda sağlama yapar; boyutları veya sağlama toplamaları değişen dosyalar aktarım için seçilir.

rsync’in, dosya aktarılırken oluşturulan dosya sağlama toplamlarını sınayarak, aktarılan her dosyanın alıcı tarafta doğru şekilde yeniden oluşturulduğunu daima doğruladığı unutulmamalıdır. Ancak bu aktarım sonrası otomatik doğrulamanın, bu seçeneğin aktarım öncesi yaptığı “Bu dosyanın güncellenmesi gerekiyor mu?” sınaması ile hiçbir ilgisi yoktur.

Kullanılan sağlama toplamı üzerinde, istemci ve sunucu arasında uzlaşım otomatiktir, ancak --checksum-choice (--cc) seçeneği veya bu seçeneğin açıklamasında bahsi geçen RSYNC_CHECKSUM_LIST ortam değişkeni kullanılarak bu geçersiz kılınabilir.

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 seçeneği belirtilmişse -r uygulanmayacaktır.

ACL’lerin (-A), ek özniteliklerin (-x), erişim zamanlarının (-U), oluşturma zamanlarının (-N) korunmasını veya sabit bağların bulunmasını ve korunmasını (-H) sağlayan seçeneklerin belirtilmemesine özen gösterilmelidir.

Seçenek adının önüne --no- getirerek seçenekleri olumsuzlayabilirsiniz. Ancak olumlu seçeneklerin hepsi olumsuzlanamaz ama çoğu için bu yapılabilir. Bazıları bir işlemi kapatırken (--no-D, --no-perms gibi), bazıları da öntanımlıkları değiştirir (--no-whole-file, --no-blocking-io, --no-dirs gibi). Olumsuzlama uzun seçeneklere uygulanabildiği gibi kısa seçeneklere de uygulanabilir (--no-relative ve --no-R gibi).

Bir örnek olarak, -rlptgoD seçeneklerine eşdeğer olan -a seçeneğinde sadece -o seçeneğinin uygulanmaması istenirse -a seçeneğini -rlptgD’ye dönüştürüp kullanmak yerine -a --no-o (yani, --archive --no-owner) kullanılabilirdi.

Seçeneklerin birbirlerine göre konumları da önemlidir: -a --no-r kullanımının tersine --no-r -a kullanıldığında -r tekrar etkin olur. Bunun yanında, çeşitli seçeneklerin öntanımlı durumlarını etkileyerek -a seçeneğinin anlamını oldukça değiştiren --files-from seçeneğinin yan etkisi konumsal bile değildir. Daha fazla bilgi için bkz: --files-from

Bu seçenek alt dizinlerinde ardışık olarak kopyalanmasını sağlar. Ayrıca, tek bir dizinin taranmasını sağlayan --dirs (-d) seçeneğine de bakınız.

Aktarılacak dosyaların listesini oluşturmaya yönelik arttırımlı özyinelemeyle ilgili bilgiler için --inc-recursive seçeneğine bakılabilir.

rsync 3.0.0 ve sonrasında aktarımın her iki tarafında da --recursive seçeneği kullanılırken öntanımlı olarak etkinleştirilen yinelemeli dosya taramasının arttırımlı olmasını sağlar.

Arttırımlı özyineleme, dosyalar aktarılmaya başlanmadan önce tüm dosya hiyerarşisinin taranmasını gerektirmediğinden arttırımsız olana göre aktarımın daha çabuk başlamasını sağlar. Kaynak dosyalarda özyineleme etkin değilse bu seçenek etkisizdir.

Bazı seçenekler rsync’in dosya listesinin tamamını bilmesini gerektirir, dolayısıyla bu seçenekler arttırımlı özyineleme kipini iptal eder. Arttırımlı özyinelemeyi iptal eden seçenekler:

--delete-before (--delete seçeneğinden önce öntanımlıydı)
--delete-after
--prune-empty-dirs
--delay-updates

--delete seçeneğinin arttırımlı özyineleme ile uyumlu olması için rsync 3.0.0’da --delete-during öntanımlı silme kipi yapıldı (silme kipi 2.6.4 sürümünde eklenmişti).

Arttırımlı özyinelemenin tek yan etkisi, özyinelemeli olarak taranan bir dizindeki eksik alt dizinlerin (öntanımlı olarak) özyinelemeden önce oluşturulmasıdır. Bu erken oluşturma aşaması (arttırımsız olanın tersine) rsync’in bitmiş dizinin değişiklik zamanını (özyinelemeli kopyalama bitene kadar geciktirmek zorunda kalmadan) hemen tanımlamasını sağlar. Ancak, daha sınırlayıcı ayrıcalıklar bu alt dizinlere kopyalama bitmeden atanmaz. --omit-dir-times seçeneği kullanılarak bu erken oluşturma aşamasından kaçınılabilir.

Arttırımlı özyineleme --no-inc-recursive (--no-i-r>) seçeneği ile iptal edilebilir.

--recursive seçeneğinin yeni arttırımlı özyineleme algoritmasını iptal eder. Böylece rsync dosyaları aktarmaya başlamadan önce tüm dosya listesini tarar. Daha fazla bilgi için bkz: --inc-recursive

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 farklı 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). Bu fazladan yol elemanlarına rsync terminolojisinde örtük dizin adı verilir (yukarıdaki foo ve foo/bar dizinleri).

rsync 3.0.0 ve sonrasında, dosya yolu aslında sembolik bağ olsa bile dosya listesindeki örtük dizinler daima gerçek dizin olarak gönderilir. Bu, dosya yolunu kopyalarken bir sembolik bağın varlığını fark etmediğiniz durumda beklenmeyen bazı davranışları önler. Bir sunucu tarafı sembolik bağlı kopyalamak istiyorsanız, hem yolu ile birlikte sembolik bağı hem de gerçek yolu ile birlikte hedef dizini ekleyin. Gönderen tarafta daha eski bir rsync ile uğraşıyorsanız, --no-implied-dirs seçeneğini kullanmanız gerekebilir.

Ayrıca, belirtilen her yol için, örtük dizin olarak gönderilen dizin miktarını da sınırlamak mümkündür. Gönderen tarafta 2.6.7 ve üstü bir rsync olması durumunda, kaynak yola aşağıdaki gibi bir nokta ve eğik çizgi yerleştirebilirsiniz:

rsync -avR /foo/./bar/baz.c uzak:/tmp/

Bu, uzak konakta /tmp/bar/baz.c dosyasını oluşturur. (Dikkat: Noktadan sonraki eğik çizgi zorunludur, “/foo/.” gibi bir kısaltma çalışmaz). Daha eski rsync sürümlerinde kaynak yolunu sınırlamak için cd(1) ile dizin değiştirmek gerekebilir. Örnek:

(cd /foo; rsync -avR bar/baz.c uzak:/tmp/)

(Yaylı ayraçlar komutların bir alt kabukta çalışmasını sağlar, böylece daha sonraki komutlar için dizin değişikliğinin etkisi olmaz.) Uzak dosyalar eski bir rsync’den alınıyorsa şöyle bir işlem yapılabilir (artalan süreci aktarımı olmamak koşuluyla):

rsync -avR --rsync-path="cd /foo; rsync" uzak:bar/baz.c /tmp/

Bu seçenek, --relative seçeneğinin öntanımlı davranışını etkiler. Belirtildiğinde kaynak taraftaki örtük dizinlerin öznitelikleri aktarıma dahil edilmez. Bu, hedef sistemdeki karşılık gelen yol elemanlarının varsa değişmeden bırakıldığı ve eksik örtük dizinlerin öntanımlı özniteliklerle oluşturulduğu anlamına gelir. Böylece, bu örtük yol elemanlarının alıcı taraftaki bir dizine sembolik bağ olması gibi büyük farklılıklara bile izin verilir.

Örneğin, bir komut satırı girdisini veya bir gönderici dosya girdisi ile rsync’in "yol/foo/dosya" dosyasını aktarması istenirse --relative seçeneği de kullanılmışsa buradaki "yol" ve "yol/foo" örtük dizinlerdir. "yol/foo", hedef sistemdeki ""bar"a bir sembolik bağ ise, alıcı rsync normalde "yol/foo"yu siler, onu bir dizin olarak yeniden oluşturur ve dosyayı yeni dizine yerleştirir. --no-implied-dirs seçeneği ile, alıcı rsync, mevcut yol elemanlarını kullanarak "yol/foo/dosya"yı günceller; bu, "yol/bar" dosyasının oluşturulmasının sona erdiği anlamına gelir. Bu bağ korumasını gerçekleştirmenin bir başka yolu da --keep-dirlinks seçeneğini kullanmaktır (bu, aktarımın geri kalanındaki dizin sembolik bağlarını da etkiler).

3.0.0’dan eski bir rsync’den dosya kopyalarken, gönderen tarafta bir sembolik bağ varsa ve örtük dizinlerin normal dizinler gibi aktarılması isteniyorsa bu seçeneğin kullanılması gerekebilir.

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:

1.
--omit-dir-times seçeneği etkin kılınır.
2.
--delete kullanımı (--delete-excluded olmadan), rsync’in --filter "P *~" kuralının benzeri olarak tüm mevcut süzgeçlerin sonuna yedekleme soneki için "koruyucu" bir süzme kuralı eklenmesine neden olur. Bu kural, önceden yedeklenmiş dosyaların silinmesini engeller.

Kendi süzme kurallarını sağlayanların, dışlama/koruma kurallarını, etkili olması ve yeterince yüksek bir önceliğe sahip olması için listede daha yüksek bir yere elle eklemeleri gerekebileceği unutulmamalıdır (örneğin, kurallarınız sonuna bir * içerme/dışlaması eklerseniz otomatik eklenen kurala asla ulaşılmaz).

--backup seçeneğinin uygulanmasını sağlayan bu seçenekle yedek dosyaların alıcı tarafta saklanacağı DİZİN belirtilebilir. Arttırımlı yedekleme yaparken kullanılabilir. Buna ek olarak --suffix seçeneğini kullanarak bir yedek soneki de belirtebilirsiniz (aksi takdirde dosyalar belirtilen DİZİNe kendi isimleri ile yedeklenir).

Göreli bir yol belirtilirse, yedekleme dizininin hedef dizine göreli olacağını unutulmamalıdır, bu nedenle muhtemelen mutlak bir yol veya “../” ile başlayan bir yol belirtmek gerekebilir. Alıcı rsync artalan süreciyse, yedekleme dizini modülün yol hiyerarşisinin dışına çıkamaz, bu nedenle DİZİNi silmemeye veya içine kopyalamamaya özen göstermek gerekir.

Bu seçenek --backup (-b) ile kullanıldığında, belirtilen SONEK öntanımlı yedekleme sonekinin yerine kullanılır. Öntanımlı sonek, --backup-dir belirtilmemişse ~ imi, belirtilmişse boş dizgedir.

Bu seçenek, hedefteki dosyanın değişiklik zamanı kaynak dosyanınkinden yeniyse dosyanın atlanmasını sağlar. (Eğer hedef dosyanın değişiklik zamanı kaynağınkiyle aynıysa, ama boyutları farklıysa güncelleme yapılır.)

Dizinlerin, sembolik bağların veya diğer özel dosyaların kopyalanmasını etkilemez. Ayrıca, gönderici ve alıcı arasındaki dosya biçemi farkı, nesneler üzerinde hangi tarih olursa olsun, güncelleme için her zaman yeterince önemli kabul edilir. Başka bir deyişle, hedefteki bir dosyayı içeren dizin kaynakta da varsa, aktarım zaman damgalarına bakılmaksızın gerçekleşir.

Bu seçenek bir aktarım kuralıdır, dışlama kuralı değildir, bu nedenle dosya listelerine giren verileri etkilemez ve dolayısıyla silme işlemlerini de etkilemez. Sadece alıcının aktarılmasını istediği dosyaların sayısını sınırlar.

Kesintiye uğramış bir aktarım, alıcı tarafta aktarımı bitmemiş bir dosya bırakabilir, bu durumda aktarımı yeniden çalıştırmak muhtemelen kesintiye uğrayan dosyadan devam edilmesini sağlamayacaktır. Bu nedenle, kesintiye uğrayan ve devam eden dosyaları işlemek için elle bir takım işlemler yapmak gerekiyorsa --inplace seçeneği işe yarayabilir.

Bu seçenek, verilerinin güncellenmesi gerektiğinde dosyaların aktarılma yöntemini değiştirir: Dosyanın yeni bir kopyasını oluşturma ve tamamlandığında yerine taşıma şeklindeki öntanımlı yöntem yerine, rsync güncellenecek verileri doğrudan hedef dosyaya yazar.

Bunun bazı yan etkileri vardır:

  • Sabit bağları bozmaz. Bu, yeni verilerin diğer sabit bağlar üzerinden hedef dosyaya görünür olacağı anlamına gelir. Dahası, farklı kaynak dosyaları hedefteki birden çok sabit bağlı hedefe kopyalama girişimleri, hedef verilerin ileri geri değişmesine yol açan "çekme savaşları" ile sonuçlanabilir.
  • Kullanımdaki ikil dosyalar güncellenemez (işletim sistemi bunun olmasını engeller yoksa verileri değiştirilmeye çalışılan ikil dosyalar hatalı çalışır ve çöker).
  • Aktarım sırasında tutarsız olan dosya verileri, aktarım kesintiye uğrar veya güncelleme başarısız olursa bu şekilde kalır.
  • rsync’in yazamadığı bir dosya güncellenemez. Yazma işlemi, dosyanın yazmak amacıyla açılmasını gerektirdiğinden ayrıcalıklı kullancının bu kullanıcıya bu dosyada yazma izni vermesi gerekir.
  • Aktarım sürerken hedef dosyadaki veriler, rsync dosyaya yazmadan önce değişikliğe uğrarsa, rsync’in delta-aktarım algoritmasının verimliliği düşebilir. Bu, --backup kullanıyorsanız geçerli değildir, çünkü rsync, yedekleme dosyasını aktarım için temel dosya olarak kullanacak kadar akıllıdır.

Bu seçenek, başkaları tarafından erişilen dosyaları güncellemek için kullanılmamalıdır. Kopyalama için bu seçenek kullanılacaksa buna dikkat edilmelidir.

Bu seçenek, büyük dosyalardaki blok değişiklikleri veya veri eklenmesi durumlarında özellikle ağdan değil diskten açılan sistemlerde yararlıdır. Ayrıca, ’sadece kopyada değişiklik olduğunda aslın güncellendiği’ dosya sistemlerinde, bir dosyadaki küçük değişikliklerden dolayı dosyanın tamamı için anlık kopya oluşturulmasını engellemeye de yardımcı olabilir.

--partial seçeneğinin uygulanmasını sağlar (kesintiye uğrayan aktarım dosyayı silmez), dolayısıyla --partial-dir ve --delay-updates seçenekleri ile birlikte kullanılamaz. rsync 2.6.4’ten önce bu seçenek, --compare-dest ve --link-dest ile de uyumlu değildi.

Bu özel kopyalama kipi, yalnızca, alıcı taraftaki içeriğin göndericidekiyle aynı olduğu bilindiğinde, büyüdüğü bilinen dosyaları verimli bir şekilde güncellemeye yarar. Aktarımdaki tüm dosyaların büyüyen dosyalar olduğundan %100 emin değilseniz --append kullanımı tehlikeli olabilir. Bu nedenle, bu koşula uymayan dosyaların ayıklandığından emin olmak için süzme kuralları kullanılmalıdır.

rsync, dosyada içeriğini tamamen doğrulamadan büyüyen dosyayı yerinde günceller (yalnızca eklediği içeriği doğrular). rsync, alıcı tarafta göndericideki dosyadan daha kısa olmayan tüm dosyaları atlar (bu, yeni dosyaların da aktarıldığı anlamına gelir). Ayrıca, gönderme uzlaşımları sırasında gönderen taraftaki boyutu kısalan dosyaları da atlar (bu olduğunda rsync "küçülen dosya" uyarısı yapar).

Dosyanın aktarımına gerek yoksa ya da bir dizinin veya sıradan olmayan dosyaların güncellenmesini etkilemiyorsa, dosyanın içerik dışı özniteliklerinin (örneğin, izinler, sahiplik ve benzerlerinin) güncellenmesini engellemez.

Bu özel kopyalama kipi --append gibi çalışır, farklı olarak dosyadaki tüm veriler sağlama toplamı doğrulamasına dahil edilir (bunu daha az verimli ama muhtemelen daha güvenli hale getirir). Aktarımdaki tüm dosyaların büyüyen dosyalar olduğundan %100 emin değilseniz --append-verify kullanımı tehlikeli olabilir. Daha fazla ayrıntı için ---append seçeneğine bakın.

3.0.0 sürümünden önce --append seçeneği --append-verify gibi çalışıyordu, bu nedenle böyle bir rsync ile etkileşim durumunda (veya aktarımda 30’dan eski bir protokol kullanıyorsa), ekleme seçeneklerinden herhangi birinin belirtilmesi bile --append-verify aktarımını başlatılacaktır.

Gönderen tarafta saptanan her dizinin aktarıma dahil edilmesini sağlar. --recursive seçeneğinin tersine, komut satırında dizin ismi "." ya da bölü çizgisi ile bitmedikçe (“.”, “dizin/.”, "foo/" gibi) dizinin içeriği kopyalanmaz. Bu seçenek ya da --recursive seçeneği olmaksızın, rsync saptadığı tüm dizinleri atlar (ve her biri için bir ileti çıktılar). --dirs ve --recursive seçenekleri birlikte belirtilirse, önceliği --recursive alır.

--files-from ve --list-only seçeneklerinin (örtük --list-only dahil) yanında --recursive belirtilmezse, --dirs seçeneği örtük olarak uygulanır (böylece dizinler de listede görünür). Bunun olmaması istenirse --no-dirs (veya --no-d) belirtilebilir.

Ayrıca, geriye uyumluluğa yardımcı bir seçenek de vardır: --old-dirs (--old-d) seçeneği, taraflarda eski bir rsync bulunması durumunda özyineleme olmadan tek bir dizini listelemek için -r --exclude=’/*/*’ çözümünün kullanılmasını sağlar.

girdide belirtilen ancak hedefte bulunmayan yol bileşenini oluşturur. Bu, rsyncin hedefte çok seviyeli dizinler oluşturmasına ve gerekirse adını değiştirerek tek bir dosyayı bu yola yerleştirilmesine olanak tanır. Tek bir girdi ile kopyalama yaparken hedef yolun tamamının bir dizin olarak ele alınmasını (rsync’in hedefte yol bileşeni zaten varmış gibi davranmasını) istiyorsanız, sona bir eğik çizgi yerleştirmeniz gerekir.

Aşağıdaki örnekte, foo dosyasından alt/dizin dizininde bar dosyası oluşturulmakta, "alt" ve "alt/dizin" dizinleri hedefte yoksa oluşturulmaktadır:

rsync -ai --mkpath foo alt/dizin/bar

Bunun yerine işlem aşağıdaki gibi yapılsaydı, foo dosyası hedefte alt/dizin/bar dizini altında oluşturulacaktı:

rsync -ai --mkpath foo alt/dizin/bar/

Karşılaşılan her sembolik bağ "skipping non-regular file" (normal dosya olmadığından atlanıyor) uyarısı ile yok sayılmak yerine, aktarılan dosyalara sessizce sembolik bağ eklenir. Uyarıyı --info=nonreg0 kullanarak susturmak da mümkündür.

Daha ayrıntılı bilgi için bkz: SEMBOLİK BAĞLAR

Gönderici, sembolik bağın gösterdiği dosya veya dizine giden zinciri izleyerek karşılaşılan her sembolik bağı olduğu gibi kopyalar. Sembolik bağ zinciri bozulursa, bir hata çıktılanır ve dosya aktarımdan çıkarılır.

Bu seçenek, aktarımda hiçbir sembolik bağ bırakmadığından, aktarımdaki sembolik bağları etkileyen diğer seçeneklerin yok sayılmasına sebep olur.

Bu seçenek, sembolik bağların alıcı tarafta da izlenmesine sebep olan bir yan etkiye sahip 2.6.3’ten önceki rsync sürümlerinden farklı olarak, alıcı tarafta zaten mevcut olan sembolik bağların izlenmesi işleminde bir değişiklik yapmaz. Günümüz rsync’i, bu seçeneği uzak alıcıya iletmez (çünkü yalnızca gönderenin bunu bilmesi gerekir), bu nedenle, bu yetersizliğin yalnızca 2.6.7’den eski (alıcıya -L seçeneğinin aktarımı durdurmayan) rsync istemcisi kullananları etkilemesi gerekir.

Alıcı tarafta gerçek bir dizin olarak ele alınması için bir dizine sembolik bağ gereksinimi varsa bkz: --keep-dirlinks (-K).

Daha ayrıntılı bilgi için bkz: SEMBOLİK BAĞLAR

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 haline gelir.

Kesme noktasının, rsync’in ayrıntılı çıktıda bahsetmediği yolun parçası olarak aktarımın tepe dizini oluşuna dikkat edilmelidir. “/kaynak/alt” dizinini “/hedef/” dizinine kopyalarsanız, “alt" dizini aktarımın tepe dizini değil (/kaynak için tepe dizindir) aktarım ağacının içindeki bir addır, dolayısıyla oluşturulan göreli sembolik bağlar, /kaynak ve /hedef dizinlerindeki diğer adlar için meşrudur. Bunun yerine “/kaynak/alt/” (sonda eğik çizgi ile) “/hedef/alt” dizinine kopyalanırsa, “alt" dizini dışındaki hiçbir dosyaya sembolik bağa izin verilmez.

Güvenli sembolik bağların yalnızca --links açıkça veya örtük olarak belirtilmişse kopyalanacağını unutmayın. --copy-unsafe-links seçeneğinin, --copy-links ile birlikte kullanılınca fazladan bir etkisi olmaz.

Daha ayrıntılı bilgi için bkz: SEMBOLİK BAĞLAR

Bu seçenek rsync’e, kopyalanan ağacın dışındaki bir hedefi gösteren sembolik bağları yoksaymasını söyler. Ayrıca, mutlak sembolik bağların da tamamı yok sayılır.

Yok sayma alıcı tarafta gerçekleştiğinden, gönderen taraf geçersiz sembolik bağlara sahip olsa bile (--munge-links kullanılıyorsa) bu yok sayma yine de etkili olacaktır. Ayrıca, silme işlemlerini de etkiler, çünkü dosya aktarımda mevcut ise, sembolik bağın güvenli olmadığı kabul edildiğinde ve atlandığında alıcıdaki karşılığının silinmesini önler.

Sembolik bağların aktarımda koşullu olarak yok sayılabilmesi için bu seçenek --links (veya --archive) ile birlikte kullanılmalıdır. --copy-unsafe-links seçeneğini etkisiz kılar.

Bu seçeneğin --relative ile birlikte kullanımı istenmeyen sonuçlara yol açabilir.

Daha ayrıntılı bilgi için bkz: SEMBOLİK BAĞLAR

Bu seçenek, aktarımın yalnızca bir tarafını etkiler ve rsync’e, sembolik bağ değerlerini dosya alırken geçersiz kılmasını veya dosya gönderirken geçerli kılmasını söyler. rsync’in sembolik bağları geçersiz kılmak için kullandığı yöntem, sembolik bağ (adının değil) dizgesinin önüne “/rsyncd-munged/” dizgesi koymak, geçerli kılmak için de dizgenin önüne konan “/rsyncd-munged/” dizgesini kaldırmaktır. Geçersiz kılınmış değerler, sembolik bağları diskte kullanılamaz hale getirir, ancak sembolik bağın gösterdiği dosyaya/dizine dokunulmaz.

Örneğin bir rsync artalan sürecinin yapılandırma dosyasındaki veya rrsync(1) (sınırlı rsync) betiğine aktarılan bir seçenek üzerinden rsync sunucu tarafında bu seçeneği genellikle istemcinin bilgisi dışında etkinleştirir. İstemci tarafında belirtildiğinde, geçersiz sembolik bağlara sahip olan/ihtiyaç duyan istemci tarafıysa seçenek normal olarak belirtilmelidir; geçersiz sembolik bağlara sahip olduğunda/ihtiyaç duyduğunda sunucuya seçenek vermek için -M --munge-links kullanılmalıdır. Yerel bir aktarımda, istemcinin gönderici olduğuna dikkat edin, bu nedenle seçeneğin belirtilmesi sembolik bağları doğrudan geçerli kılarken, uzak seçenek olarak belirtildiğine sembolik bağları geçersiz kılar.

Bu seçeneğin --remote-option aracılığıyla bir artalan sürecine gönderildiğinde hiçbir etkisi yoktur, çünkü artalan süreci geçersiz sembolik bağlar isteyip istemediğini "--munge-symlinks" aracılığıyla yapılandırır.

Sembolik bağ değeri, aktarıma girdikten sonra geçerli/geçersiz duruma getirilir, bu nedenle, sembolik bağları sembolik olmayanlara dönüştüren herhangi bir seçenek, alıcının yaptığı bir seçim olan --safe-links dışında, geçerli/geçersiz kılma işleminden önce gerçekleşir, bu nedenle, karar geçerli/geçersiz kılma değerine dayandırılır. Bu, bir alıcıda geçersiz kılma etkinleştirilmişse, --safe-links kullanmanın tüm sembolik bağların yok sayılmasına neden olacağı anlamına gelir (çünkü hepsi mutlaktır).

rsync’in sembolik bağları geçersiz kılmak için kullandığı yöntem, her birinin değerinin önüne “/rsyncd-munged/” dizgesi koymaktır. Bu, dizin olmadığı sürece bağların kullanılmasını engeller. Bu seçenek etkinleştirildiğinde, bu yol bir dizinse veya bir dizine bir sembolik bağ ise rsync çalışmayı reddedecektir (ancak yalnızca başlangıçta buna bakar). Bir veya daha fazla sembolik bağı yerinde geçerli/geçersiz kılmak için kaynak kodun support dizinindeki "munge-symlinks" python betiğine de bakın.

Bu seçenek, gönderen tarafın bir dizin sembolik bağını gerçek bir dizinmiş gibi ele almasına neden olur. --copy-links kullanılırken, dosya sembolik bağlarının etkilenmesi istenmiyorsa bu seçenek kullanışlıdır.

Bu seçenek olmadan, gönderen taraf bir dizini dizin sembolik bağıyla değiştirmişse, alıcı taraf yeni sembolik bağın yolunda olan her şeyi dizinler dahil siler (--force veya --delete etkili olduğu sürece).

Alıcı taraf için benzer bir seçenek --keep-dirlinks seçeneğidir.

--copy-dirlinks, kaynaktaki dizin sembolik bağlarının tamamına uygulanır. Yalnızca belli birkaç sembolik bağın izlenmesi isteniyorsa, yolların doğru eşleşmesi için --relative seçeneğini kullanarak bunları eğik çizgi sonlandırmalı kaynak girdileri olarak belirtmektir. Örnek:

rsync -r --relative kaynak/./ kaynak/./devam/ hedef/

Bunun çalışmasının nedeni, rsync’in kaynak girdide belirtildiği gibi lstat(2) çağrısı yapması ve sondaki eğik çizginin lstat() işlevinin sembolik bağı izlemesini sağlamasıyla dosya listesinde "kaynak/./” taraması sırasında bulunan sembolik bağı geçersiz kılan bir dizine yol açmasıdır.

Daha ayrıntılı bilgi için bkz: SEMBOLİK BAĞLAR

Alıcı taraftaki bir dizin sembolik bağı, göndericide gerçek bir dizinle eşleşiyorsa gerçek bir dizinmiş gibi ele alınır. Bu seçenek olmaksızın alıcıdaki sembolik bağ silinip yerine gerçek bir dizin konur.

Örneğin, "dosya" dosyasını içeren "foo" dizinini aktardığınızı, ancak "foo"nun alıcıda "bar" dizinine sembolik bağ olduğunu varsayalım. --keep-dirlinks olmadan, alıcıda "foo" sembolik bağı silinir, bir dizin olarak yeniden oluşturulur ve dosya bu yeni dizine kopyalanır. --keep-dirlinks ile alıcıdaki sembolik bağ korunur ve "dosya" içeriği "bar" dosyasına aktarılır.

--keep-dirlinks kullanıyorsanız, alıcıdaki tüm sembolik bağlara güvenmeli veya alıcı tarafta --munge-links seçeneğini etkinleştirmelisiniz! Güvenilmeyen bir kullanıcının gerçek bir dizini gösteren bir sembolik bağ oluşturması mümkünse, kullanıcı (bir sonraki kopyada) sembolik bağı gerçek bir dizinle değiştirebilir ve sembolik bağın başvurduğu dizinin içeriğini etkileyebilir. Yedekleme kopyalarında, alıcıdaki hiyerarşiyi değiştirmek için sembolik bağ kullanmak yerine dosyayı bir bağlama noktası gibi kullanmak daha iyidir.

Gönderen taraf için benzer bir seçenek --copy-dirlinks seçeneğidir.

Daha ayrıntılı bilgi için bkz: SEMBOLİK BAĞLAR

Bu seçenek rsync’e, sabit bağları aynı kaynak sistemdeki gibi yeniden oluşturmasını söyler. Bu seçenek olmaksızın kaynak taraftaki sabit bağlı dosyalar ayrı dosyalar olarak ele alınır.

Bu seçenek, hedefteki sabit bağ kalıbının kaynaktakiyle tam olarak eşleşmesini GEREKTİRMEZ. Hedefte ek sabit bağların oluşabileceği durumlar:

  • Alıcı, ikincil sabit bağlar (kaynak dosya listesinde mevcut olandan daha fazlasını) içeriyorsa, kopyalama algoritması bunların bağını açıkça kesmez. Ancak, yollardan birinin veya daha fazlasının içerik farklılıkları varsa, normal dosya güncelleme işlemi bu ek bağları kesecektir (--inplace seçeneği kullanılmıyorsa).
  • Sabit bağlar içeren bir --link-dest dizini belirtilirse, hedef dosyaların --link-dest dosyalarıyla karşılıklı bağlanması, --link-dest ilişkilendirmeleri nedeniyle hedefteki bazı yolların birbirine bağlanmasına neden olabilir.

rsync’in yalnızca aktarım listesinde bulunan dosyalar arasındaki sabit bağları algılayabildiği unutulmamalıdır. rsync, aktarımın dışındaki dosyalarla fazladan sabit bağ ilişkileri olan bir dosyayı güncellerse, bu ilişki kopacaktır. Bu kırılmayı önlemek için --inplace seçeneği kullanılmak istenirse, dosyaların nasıl güncellendiğinin bilinmesi gerekir, böylece kalıcı sabit bağlar nedeniyle istenmeyen değişikliklerin olmayacağından emin olunabilir (başka uyumsuzluklar için --inplace seçeneğine de bakılabilir).

Arttırımlı özyineleme etkinse (bkz. --inc-recursive), rsync, başka bir yerde bu içerikler için başka bir bağın bulunduğunu keşfetmeden önce eksik bir sabit bağlı dosyayı aktarabilir. Bu, aktarımın doğruluğunu (yani, hangi dosyaların birbirine sabit olarak bağlı olduğunu) değil, yalnızca verimliliğini etkiler (yani, aktarımda sabit bağlı dosya kümesinin daha sonra bulunabilecek başka bir üyesi olan sabit bağlı bir dosyanın yeni bir ilk kopyası için verilerin kopyalanması). Bu verimsizliği önlemenin tek yolu, --no-inc-recursive seçeneğini kullanarak arttırımlı özyinelemeyi devre dışı bırakmaktır.

Bu seçenek rsync’e, izinleri hedefte aynı kaynak sistemdeki gibi belirlemesini söyler. (rsync’in kaynak izinlerini hedefte nasıl değiştirdiği --chmod seçeneğinde açıklanmıştır.)

Bu seçenek belirtilmediğinde izinler şöyle belirlenir:

  • Mevcut dosyaların (güncellenmiş dosyalar dahil) mevcut izinleri korunursa da --executability seçeneği ile dosyanın çalıştırma izni değiştirilebilir.
  • Yeni dosyalar "normal" izin bitlerini, alıcı dizinin öntanımlı izinleriyle (alıcı sürecin umask’ı veya hedef dizinin öntanımlı ACL’si aracılığıyla belirtilen izinler) maskelenmiş kaynak dosya izinlerinden alır, özel izin bitleri ise, yeni bir dizinin setgid bitini kendi üst dizininden devraldığı durum dışında devre dışı bırakılır.

Bu nedenle, --perms ve --executability seçeneklerinin ikisi de devre dışı bırakıldığında, rsync’in davranışı cp(1) ve tar(1) gibi diğer dosya kopyalama uygulamalarıyla aynıdır.

Özetle: Hedef dosyalara (hem eski hem de yeni) kaynak izinlerini vermek için --perms kullanılmalıdır. Yeni dosyalara hedefin öntanımlı izinlerini vermek için (mevcut dosyaları değiştirmeden bırakarak), --perms seçeneği olmaksızın --chmod=ugo=rwX kullanılması gerekir (bu, tüm maskelenmemiş bitlerin etkinleştirilmesini sağlar). Bu seçeneklerin daha sonra kolayca yazılması için, ~/.popt adında bir dosya oluşturup komut satırının bu dosyay yazılması ve popt takma adının tanımlanması yeterli olur. Aşağıdaki örnekte, diğer seçeneklere ek olarak hedef dizinin öntanımlı grubunun kullanılması için --no-g seçeneğini de içeren bir takma ad olarak -Z seçeneği tanımlanmaktadır:

rsync alias -Z --no-p --no-g --chmod=ugo=rwX

Bu yeni seçenek komut satırında şöyle kullanılabilirdi:

rsync -avZ kaynak/ hedef/

(Önemli: -a seçeneğinin -Z seçeneğinden önce kullanılmasına dikkat edilmelidir, yoksa yukarıdaki --no-* seçeneklerinin ikisi de geçersiz olur.)

--perms seçeneğinin belirtilmediği durumda yeni oluşturulan dizinlerde hedefin setgid bitinin korunması özelliği 2.6.7 sürümünde eklenmiştir. Daha eski rsync sürümleri, yeni oluşturulan dizinde hedefin setgid bitini geçersiz kılarken, --perms belirtilmediğinde yeni oluşturulan dosyalar için üç özel izin bitini hatalı bir şekilde koruyordu. rsync 2.6.7 sürümünde ACL yamasına öntanımlı ACL gözlemi eklendi, bu nedenle daha eski (veya ACL-etkin olmayan) rsync’ler, öntanımlı ACL’ler mevcut olsa bile umask’ı kullanır. (Bu davranışları etkileyenin, alıcının rsync sürümü olduğunu unutulmamaldır.)

--perms seçeneği etkin değilse bu seçenek normal dosyaların çalıştırılabilirliğini/çalıştırılamazlığını korur. Normal bir dosyanın çalıştırılabilir olması için izinlerinde en azından bir "x" etkin olmalıdır. Mevcut bir hedef dosyanın çalıştırılabilirliği kaynaktakinden farklıysa rsync hedef dosyanın izinlerinde aşağıdaki gibi değişiklik yapar:

  • Bir dosyanın çalıştırılabilir olmaması için rsync dosyanın tüm ’x’ izinlerini kapatır.
  • Bir dosyayı çalıştırılabilir yapmak için her etkin ’r’ izni için ’x’ iznini etkin kılar.

--perms seçeneği etkinse bu seçenek yok sayılır.

Bu seçenekle hedefin ACL’si (Erişim Denetim Listesi) kaynağınkiyle aynı yapılır. Bu seçenek --perms seçeneğinin örtük olarak uygulanmasına sebep olur.

Bu seçeneğin düzgün çalışabilmesi için kaynak ve hedef ACL’lerinini uyumlu olması gerekir. Uyumlu olmayan ACL’lerin yedeklenmesi ve geri yüklenmesi ile ilgili bilgi için bkz: --fake-super.

Bu seçenek, hedefin ek özniteliklerinin kaynağınkiyle aynı olmasını sağlar.

Genişletilmiş öznitelik isim alanlarını destekleyen sistemler için, ayrıcalıklı kullancı tarafından yapılan bir kopyalama, sistem.* dışındaki tüm isim alanlarını kopyalar. Normal bir kullanıcı yalnızca user.* isim alanını kopyalar. Normal kullanıcı aidiyetinde olmayan isim alanlarının normal bir kullanıcı olarak yedeklenmesi ve geri yüklenmesi ile ilgili bilgi için bkz: --fake-super.

Yukarıdaki isim alanı yetkilendirmesi x belirteçli süzme seçenekleriyle geçersiz kılınabilir. Ek öznitelikleri etkileyen bir süzme kuralı belirtildiğinde, rsync, kullanıcının kendi sistem.*/user.* süzme kurallarını uygulamasını ve ayrıca kopyalanacak veya silinecek ek öznitelik adlarına ilişkin ek süzme işlemlerini yapmasını gerektirir. Örneğin, sistem.* isim alanını atlamak için şu belirtilebilir:

--filter=’-x system.*’

Kullanıcı isim alanı dışındaki tüm isim alanlarını atlamak için kullanıcı isim alanına olumsuzlama uygulanabilir:

--filter=’-x! user.*’

Özniteliklerin silinmesini engellemek için tüm isimleri dışlayan alıcıya özel bir kural belirtilebilir:

--filter=’-xr *’

-X seçeneği yinelenmedikçe (-XX gibi) rsync’in özel ek öznitelik değerlerini (örn, --fake-super ile kullanılanları) kopyalamaz. Bu "tüm ek öznitelikleri kopyala" kipi --fake-super seçeneğiyle birlikte kullanılamaz.

Bu seçenek, aktarımdaki dosyaların izinlerine bir veya daha fazla virgül ayraçlı chmod kipinin uygulamasını sağlar. Ortaya çıkan değer, gönderen tarafın dosya için sağladığı izinler olarak değerlendirilir; --perms seçeneği belirtilmemişse bu seçeneğin mevcut dosyalar üzerinde hiçbir etkisi olmaz.

chmod(1) kılavuz sayfasında belirtilen normal çözümleme kurallarına ek olarak, ’D’ ile öncelenerek belirtilen öğeler yalnızca dizinlere, ’F’ ile öncelenerek belirtilen öğeler ise yalnızca dosyalara uygulanır. Örneğin, aşağıdakiler tüm dizinlerin setgid olarak imlenmesini, dosyalara başkaları tarafından yazılamamasını, kullanıcı ve grup tarafından yazılabilmesini ve tüm bitlerle tutarlı çalıştırılabilirlik sağlayacaktır:

--chmod=Dg+s,ug+w,Fo-w,+X

Ayrıca sekizlik gösterime de izin verilir:

--chmod=D2775,F664

Çok sayıda --chmod seçeneği belirterek bunların yapılacak değiklikler listesine eklenmesini sağlamak da mümküdür.

Aktarımdaki dosyalara uygulanabilen izin değerlerinin --perms ve --executability seçenekleriyle verdiği sonuçları incelemek için bu seçeneklerin açıklamalarına bakılabilir.

Alıcı taraftaki rsync ayrıcalıklı kullancının aidiyetinde çalıştırıldığı takdirde, hedef dosyanın sahibinin aynı kaynak dosyadaki gibi belirlenmesini sağlar (ayrıca, bkz: --super ve --fake-super). Çoğu sistemde sadece ayrıcalıklı kullanıcı dosya aidiyetini belirleyebilir. Bu seçenek olmaksızın yeni ve/veya aktarılan dosyaların sahibi alıcı taraftaki rsync’i çalıştıran kullanıcıdır.

Sahiplik koruması, ilişkilendirmenin öntanımlı olarak kullanıcı adıyla yapılmasını gerektirir, ancak bazı durumlarda son çare olarak kullanıcı kimliği de kullanılabilir (Bu konu --numeric-ids seçeneğinin açıklamasında daha ayrıntılı incelenmiştir).

Alıcı taraftaki rsync ayrıcalıklı kullancının aidiyetinde çalıştırıldığı takdirde, hedef dosyanın grubunun aynı kaynak dosyadaki gibi belirlenmesini sağlar. Alıcı tarafta rsync’i ayrıcalıklı kullanıcı çalıştırmıyorsa (veya --no-super belirtilmişse), yalnızca çalıştıran kullanıcının üyesi olduğu gruplar korunur. Bu seçenek olmaksızın yeni ve/veya aktarılan dosyaların grubu alıcı taraftaki rsync’i çalıştıran kullanıcının öntanımlı grubudur.

Grup koruması, ilişkilendirmenin öntanımlı olarak grup adıyla yapılmasını gerektirir, ancak bazı durumlarda son çare olarak grup kimliği de kullanılabilir (Bu konu --numeric-ids seçeneğinin açıklamasında daha ayrıntılı incelenmiştir).

Aktarılan karakter ve blok aygıtları alıcı sistemde yeniden oluşturulur. Alıcı taraftaki rsync ayrıcalıklı kullanıcının aidiyetine değilse, aygıt dosyalarını oluşturma adımı sessizce atlanır (ayrıca, bkz: --super ve --fake-super).

Bu seçenek belirtilmemişse, öntanımlı olarak rsync rastladığı her aygıt dosyası için "skipping non-regular file" (normal dosya olmadığından atlanıyor) uyarısı üretir. Uyarıyı --info=nonreg0 kullanarak susturmak mümkündür.

Soket, isimli boru gibi özel dosyaların aktarılmasını sağlar. Alıcı taraftaki rsync ayrıcalıklı kullanıcının aidiyetine değilse, bu dosyaları oluşturma adımı sessizce atlanır (ayrıca, bkz: --super ve --fake-super).

Bu seçenek belirtilmemişse, öntanımlı olarak rsync rastladığı her özel dosya için "skipping non-regular file" (normal dosya olmadığından atlanıyor) uyarısı üretir. Uyarıyı --info=nonreg0 kullanarak susturmak mümkündür.

"--devices --specials" seçeneklerine eşdeğerdir.

Bir aygıtın gönderen tarafta sıradan bir dosya olarak ele alınmasını ve alıcı tarafta normal bir dosyaya (veya --write-devices seçeneği de belirtilmişse başka bir aygıta) kopyalanmasını sağlar.

Bu seçenek rsync artalan süreci tarafından öntanımlı olarak reddedilir.

Bir aygıtın alıcı tarafta sıradan bir dosya olarak ele alınmasını ve dosya verisinin bir aygıta yazılmasını sağlar.

Örtük olarak --inplace seçeneğinin uygulanmasını sağlar.

rsync özellikle, ayrıcalıklı kullancının aidiyetinde çalışıyorsa, aktarım sırasında alıcı tarafta hangi aygıtların mevcut olduğunun bilinmesi gerekir.

Bu seçenek rsync artalan süreci tarafından öntanımlı olarak reddedilir.

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, değiştirilmemiş dosyaları dışlayan en iyileme etkili olamaz; başka bir deyişle, bu seçeneğin veya -a seçeneğinin yokluğu sonraki aktarımda -I kullanılmış gibi tüm dosyaların güncellenmesine yol açar (eğer dosyalar gerçekten değişmemişse, rsync’in delta aktarım algoritması güncellemeyi oldukça verimli yapsa da bu seçeneğin kullanılması çok daha iyi olacaktır).

Hedef dosyanın erişim zamanına kaynak dosyadaki değerin atanmasını sağlar.

Yinelenirse, aktarım tamamlandıktan sonra rsync’in bir süre daha çalıştırılması gerekmeksizin, gönderici ve alıcı sistemlerin aktarılan dosyaların erişim zamanlarını eşlemesine yardımcı olan --open-noatime seçeneğini örtük olarak etkinleştirir.

3.2.0 öncesi bazı rsync sürümleri, bu seçenek yinelendiğinde örtük olarak --open-noatime uygulamayan bir ön --atimes yamasıyla derlenmiş olabilir.

Aktarılmakta olan dosyaların erişim zamanının değiştirilmemesi için dosyaların O_NOATIME bayrağıyla (destekleyen sistemlerde) açılmasını sağlar. İşletim sisteminiz O_NOATIME bayrağını desteklemiyorsa, rsync bu seçeneği sessizce yok sayar. Ayrıca, bazı dosya sistemlerinin, O_NOATIME bayrağı belirtilmeden bile, okuma erişiminde erişim zamanın güncellenmesini önleyecek şekilde bağlanabildiği unutulmamalıdır.

Hedef dosyanın oluşturulma zamanına kaynak dosyadaki değerin atanmasını sağlar.

Değişiklik, erişim ve oluşturulma zamanlarını korumak için dizinlerin atlanmasını sağlar. Alıcı tarafta NFS’nin paylaştığı dizinler için bu seçeneği kullanmak daha iyidir. --backup bu seçenekle birlikte --backup-dir olmaksızın kullanılamaz.

Bu seçeneğin ayrıca --inc-recursive seçeneğinde incelendiği gibi arttırımlı özyineleme etkinleştirildiğinde eksik alt dizinlerin önceden oluşturulmasını önleme gibi bir yan etkisi de vardır.

Değişiklik, erişim ve oluşturulma zamanlarını korumak için sembolik bağların atlanmasını sağlar.

Bu seçenekle rsync, alıcı tarafta ayrıcalıklı kullanıcı tarafından çalıştırılmamış olsa bile ayrıcalıklı kullanıcı etkinliklerini yerine getirebilir. Bu etkinlikler şunları içerir: --owner seçeneği aracılığıyla kullanıcıları korumak, --group seçeneği aracılığıyla tüm grupları (yalnızca geçerli kullanıcının gruplarını değil) korumak ve --devices seçeneği aracılığıyla aygıtları kopyalamak. Ayrıcalıklı kullanıcı olmadan bu tür etkinliklere izin veren sistemler için ve ayrıca alıcı taraf ayrıcalıklı kullanıcı olarak çalıştırılmıyorsa hata almanızı sağlamak için kullanışlıdır. Ayrıcalıklı kullanıcı etkinliklerini kapatmak için ayrıcalıklı kullanıcı --no-super seçeneğini kullanabilir.

Bu seçenek etkinleştirildiğinde, rsync, her dosyaya eklenen özel ek öznitelikler aracılığıyla (gerektiğinde) ayrıcalıklı öznitelikleri kaydederek/geri yükleyerek ayrıcalıklı kullanıcı etkinliklerini taklit eder. Buna dosyanın sahip ve grubu (öntanımlı değilse), dosyanın aygıt bilgisi (aygıt ve özel dosyalar boş metin dosyaları olarak oluşturulur) ve gerçek dosyalara atanmasına izin verilmeyen veya sahibinin erişimini kısıtlayan (chattr +i <dosya> komutundaki gibi) izin bitleri dahildir. Bu seçenek ayrıca ACL’lerin (--acls belirtilmişse) ve kullanıcı ek özniteliklerinin (--xattrs belirtilmişse) de işlenebilmesini sağlar.

Bu seçenek, ayrıcalıklı kullanıcı olmaksızın verileri yedeklemenin ve uyumsuz sistemlerdeki ACL’leri depolamanın iyi bir yoludur.

Bu seçenek sadece seçeneği kullanan tarafı etkiler. Uzak kabuk bağlantısının uzak tarafını etkilemek için --remote-option (-M) seçeneği kullanılır:

rsync -av -M --fake-super /kaynak/ konak:/hedef/

Yerel kopya için, bu seçenek hem kaynağı hem de hedefi etkiler. Yerel kopyanın sadece hedef dosyalar için bu seçeneği etkinleştirmesi istenirse -M --fake-super seçenekleri, sadece kaynak dosyalar için ise --super ile -M -fake-super birlikte kullanılır.

Bu seçenek hem --super hem de --no-super seçeneğini geçersiz kılar.

Artalan sürecinin rsyncd.conf(5) dosyasındaki "fake super" modül seçeneğinin açıklamasına da bakılabilir.

Bu seçenekle rsync, seyrek dosyaların hedefte daha az yer kaplayacak şekilde elde edilmesini sağlamaya çalışır. --inplace ile birlikte kullanılırsa, oluşturulan dosya bazı çekirdek sürümlerinde ve/veya dosya sistemlerinde seyrek bloklarla sonuçlanmayabilir. --whole-file etkinse (örneğin yerel kopya için), güncellenmiş sürüm yazılmadan önce dosya kırpıldığından daima en iyi sonuç elde edilir.

3.1.3 öncesi rsync sürümlerinde --sparse ve --inplace birlikte kullanılamaz.

Alıcı tarafın, dosyaya veri yazmadan önce her hedef dosyaya nihai boyutunu tahsis etmesini sağlar. rsync, her bloğa boş karakter yazan yavaş glibc uygulamasını değil, yalnızca Linux’un fallocate(2) sistem çağrısı veya Cygwin’in posix_fallocate(3) çağrısı tarafından sağlanan gerçek dosya sistemi düzeyinde ön tahsis desteğini kullanır.

Bu seçenek olmadan, büyük dosyaların blokları dosya sisteminde bitişik olmayabilir, ancak bu seçenekle rsync muhtemelen daha yavaş kopyalama yapar. Hedef, genişletme destekleyen bir dosya sistemi (ext4, xfs, NTFS, vb.) değilse, bu seçeneğin hiçbir olumlu etkisi olmayabilir.

--sparse ile birlikte kullanımda çekirdek sürümü ve dosya sistemi türü, (boş karakter dizgeleri tahsisinin aksine) ayrılan veride delikler oluşturmayı destekliyorsa, dosyada yalnızca seyrek bloklar bulunacaktır.

Bu seçenek rsync’e, herhangi bir dosya aktarımı yapmamasını, sadece yapıyormuş gibi işlemleri raporlamasını söyler. rsync gerçekten çalıştırılmadan önce ne yapacağını görmek için çoğunlukla --verbose (-v) ve/veya --itemize-changes (-i) seçenekleriyle birlikte kullanılır.

--itemize-changes çıktısının, kuru çalıştırmada ve sonraki gerçek çalıştırmada tamamen aynı olması beklenir (kasıtlı hile ve sistem çağrısı hataları hariç); aynı değilse, bu yazılım hatasıdır. Diğer çıktıların çoğunlukla değişmemesi gerekir, ancak bazı alanlarda farklılık gösterebilir. Özellikle, kuru çalıştırmada dosya aktarımları için gerçek veriler gönderilmez, bu nedenle --progress seçeneğinin hiçbir etkisi olmaz, "gönderilen baytlar", "alınan baytlar", "değişmez veriler" ve "eşleşen veriler" istatistikleri çok küçüktür ve "hızlanma" değeri, dosya aktarımının gerekmediği bir çalıştırmaya eşdeğerdir.

Bu seçenekle delta aktarım algortiması kullanılmaz ve bunun yerine dosya olduğu gibi gönderilir. Eğer kaynak ile hedef konaklar arasındaki aktarım hızı disk yazma hızından (özellikle disk, ağ dosya sisteminin bir parçası ise) yüksekse bu seçenekle aktarım daha hızlı olabilir. Kaynak ve hedef yerel dosya yolları olarak belirtilmişse ve hiçbir toplu işlem dosyası yazma seçeneği etkin değilse bu seçenek öntanımlıdır.

Yerel aktarımda --whole-file öntanımlı olduğunda bu seçenek onu kapatır. Bu genellikle rsync’i yavaşlatır, ancak hedef dosyaya yazılanlar en aza indirilmeye çalışılıyorsa (--inplace ile birlikte kullanılıyorsa) veya sağlama toplamı tabanlı güncelleme algoritması sınanacaksa yararlı olabilir.

Bkz: Yukarıdaki --whole-file seçeneği.

Bu seçenek, sağlama toplamı algoritmalarını geçersiz kılar. Bir algoritma adı belirtilirse, hem aktarım sağlama toplamları hem de (--checksum belirtildiğini varsayarak) aktarım öncesi sağlama toplamları için kullanılır. Virgülle ayrılmış iki ad verilirse, ilk ad aktarım sağlama toplamlarını ve ikinci ad aktarım öncesi sağlama toplamlarını (-c) etkiler.

Algoritma seçenekleri:

auto (öntanımlı otomatik seçim)
xxh128
xxh3
xxh64 (diğer adı: xxhash)
md5
md4
none

Kurulu sürümün öntanımlı sağlama toplamı algoritmalarının listesi (yukarıdakinden farklı olabilir) için rsync --version komutu kullanılabilir.

İlk isim veya tek isim olarak "none" belirtilirse --whole-file seçeneği zorlanır ve hiçbir sağlama toplamı sınaması yapılmaz. İkinci veya tek isim olarak "none" belirtilirse --checksum seçeneği belirtilemez.

"auto" seçeneği öntanımlı olup rsync, algoritma seçimini aşağıdaki gibi istemci ve sunucu arasındaki uzlaşıma dayalı olarak yapar:

Aktarımın her iki tarafında da 3.2.0 ve üstü rsync olduğunda, istemcinin ve sunucunun seçenekler listesindeki ilk algoritma seçilir. Ortak bir sağlama toplamı seçeneği bulunamazsa, rsync hata vererek çıkar. Uzak rsync, sağlama toplamı uzlaşımını desteklemek için çok eskiyse, protokol sürümüne göre bir değer seçilir (protokol yaşına göre MD4’ün çeşitli türleri ile MD5 arasından bir seçim yapılır).

Öntanımlı sıra, RSYNC_CHECKSUM_LIST ortam değişkenine boşlukla ayrılmış kabul edilebilir sağlama toplamı adları listesi atanarak özelleştirilebilir. Dizge bir "&" karakteri içeriyorsa, liste "istemci dizgesi & sunucu dizesi" olarak ayrılır, aksi takdirde aynı dizge her ikisi için de geçerli olur. Dizge (veya dizge bölümü) boşluk olmayan karakterler içermiyorsa, öntanımlı sağlama toplamı listesi kullanılır. Bu yöntem, aktarım sağlama toplamını, aktarım öncesi sağlama toplamından ayrı olarak belirlemenize izin vermez ve "auto" ve tüm bilinmeyen sağlama toplamı adlarını yok sayar. Yalnızca geçersiz adlardan oluşan bir liste, başarısız uzlaşımla sonuçlanır.

Bu seçenek ortam değişkeninde belirtilen listeyi geçersiz kılar.

Bu seçenek rsync’e, ardışık aktarım sırasında dosya sistemi sınırlarının dışına çıkmamasını söyler. Bu, kullanıcının birden çok dosya sisteminden kopyalanacak öğeleri belirleme yeteneğini sınırlamaz, yalnızca rsync’in kullanıcının belirlediği her dizini ve alt dizinlerini ardışık taramasını ve ayrıca silme sırasında alıcı tarafta da buna benzer bir işlem yapmasını sağlar. Ayrıca, rsync’in aynı aygıta bir "bağlama" noktası oluşturup aynı dosya sistemindeymiş gibi davrandığını unutulmamalıdır.

Bu seçenek yinelenirse, rsync tüm bağlama noktası dizinlerini kopyadan çıkarır. Aksi takdirde, karşılaştığı her bağlama noktasında (bağlama noktasının bulunduğu dizininin özelliklerine erişilemediğinden bağlı dizinin özniteliklerini kullanarak) boş bir dizin oluşturur.

rsync’ten sembolik bağları daraltması istendiyse (--copy-links veya --copy-unsafe-links aracılığıyla), başka bir aygıttaki bir dizine giden bir sembolik bağ, bir bağlama noktası olarak değerlendirilir. Dizin olmayanlara sembolik bağlar bu seçenekten etkilenmez.

Bu seçenek rsync’e, hedefte yeni dosya/dizin oluşturulmasını gerektirecek aktarımları yapmamasını sadece güncelleme yapmasını söyler. --ignore-existing seçeneği ile birlikte kullanılırsa, hiçbir dosya güncellenmez (yapılmak istenen gereksiz dosyaları silmekse yararlı olabilir).

Bu seçenek bir aktarım kuralıdır, dışlama kuralı değildir, bu bakımdan dosya listelerine giden veriyi ve dolayısıyla silme işlemini etkilemez. Sadece alıcının aktarılmasını istediği dosyaları sınırlar.

Bu seçenek rsync’e, hedefte mevcut olan dosyaları güncellememesini söyler (Bu mevcut dizinleri yok saymaz ya da hiçbir şey yapılmaz). Ayrıca bkz: --ignore-non-existing

Bu seçenek bir aktarım kuralıdır, dışlama kuralı değildir, bu bakımdan dosya listelerine giden veriyi ve dolayısıyla silme işlemini etkilemez. Sadece alıcının aktarılmasını istediği dosyaları sınırlar.

Bu seçenek, --link-dest seçeneğini kullanarak yedekleme yapanlar için kesintiye uğrayan bir yedeklemeyi devam ettirmek gerektiğinde yararlı olabilir. --link-dest kullanımı (düzgün kullanıldığında) yeni bir dizin hiyerarşisine kopyalama yapılmasını sağladığından --ignore-existing seçeneği ile evvelce işlem görmüş dosyaların didiklenmemesi sağlanır (sabit bağlı dosyaların izinlerinde değişiklik yapılmasını önler). Yani, bu seçenek yalnızca hedef hiyerarşi içinde mevcut olan dosyalarla ilgilenir.

--info=skip2 kullanıldığında rsync, BİLGİ’nin "tür değişikliği", "toplam değişiklik" (-c gerektirir), "dosya değişikliği" (hızlı sınamaya dayalı olarak),"öznitelik değişikliği" veya "güncel" anlamına geldiği "DOSYA var (BİLGİ)" iletisini çıktılar. --info=skip1 kullanıldığında ise (örtük olarak -vv uygulayarak) mevcut iletiyi BİLGİ soneki olmadan çıktılar.

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.

Bu seçenek yalnızca hareket görmeyen kaynak dosyalarda kullanılmalıdır. Belirli bir dizinde görünen dosyaların başka bir konağa taşınması için kullanılıyorsa, tamamlanan dosyaların kaynak dizinde doğrudan üzerlerine yazılmadığından, isimlerinin değiştirildiğinden emin olunmalıdır, böylece rsync henüz tam olarak yazılmamış bir dosyayı muhtemelen aktaramayacaktır. Dosyalar önce farklı bir dizine yazılamıyorsa, rsync’in henüz tamamlanmamış dosyaları aktarmaktan kaçınmasını sağlayan bir adlandırma deyimi kullanılmalıdır (örneğin, dosyanın adını yazıldığında “foo.new”, işi bittiğinde “foo” yapmak ve ardından rsync aktarımı için --exclude=’*.new’ seçeneğini kullanmak gibi).

3.1.0 sürümünden başlayarak, dosyanın boyutu veya değiştirilme zamanı değişmemişse, rsync gönderen tarafı silme işlemini bir hata vererek atlayacaktır.

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).

rsync 2.6.7 öncesinde, --recursive etkin olmadıkça bu seçeneğin hiçbir etkisi olmazdı. 2.6.7 sürümünden itibaren, silme işlemi sadece içeriği kopyalanan dizinler için sadece --dirs (-d) etkin olduğunda etkili olur.

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 edilebilir.

--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, öntanımlı olarak hedefteki rsync 3.0.0 veya sonraki bir sürümse --delete-during algoritmasını, öncekilerden biri ise --delete-before algoritmasını seçer. Ayrıca bkz: --delete-after ve --delete-delay.

Alıcı taraftaki dosya silme işlemlerinin aktarım başlamadan önce yapılmasını sağlar. Doğrudan veya örtük dosya silinmesi ile ilgili daha ayrıntılı bilgi için bkz: --delete seçeneği.

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. Ayrıca rsync’i, aktarımdaki tüm dosyaları bellekte bir kerede taramak için eski, artırımlı olmayan yineleme algoritmasını kullanmaya zorlar. (Bkz: --recursive seçeneği).

Alıcı taraftaki dosya silme işlemlerinin aktarım sırasında arttırımlı yapılmasını sağlar. Bu yöntem silme işleminin aktarımdan önce ve sonra yapıldığı algoritmalardan daha hızlıdır. Dizin başına silme taraması, her dizin güncellemeler için denetlenmeden hemen önce yapılır, bu nedenle daha verimli bir --delete-before gibi davranır, silme işlemlerinin dizin başına süzme dosyalarının güncellenmesinden önce yapılması da buna dahildir. Fakat ilk olarak rsync’in 2.6.4 sürümüyle kullanılabilir olmuştur. Doğrudan veya örtük dosya silinmesi ile ilgili daha ayrıntılı bilgi için bkz: --delete seçeneği.

Alıcı taraftaki dosya silme işlemlerinin aktarım sırasında hesaplanmasını (--delete-during gibi) ve aktarım tamamlandıktan sonra da gerçekleştirilmesini sağlar. Bu, --delay-updates ve/veya --fuzzy ile birleştirildiğinde yararlıdır ve --delete-after kullanmaktan daha verimlidir (ancak farklı davranabilir, çünkü --delete-after silmeleri, tüm güncellemeler yapıldıktan sonra ayrı bir geçişte hesaplanır). Kaldırılan dosyaların sayısı dahili bir tamponu aşarsa, adları tutmak için alıcı tarafta geçici bir dosya oluşturulur (açılırken kaldırılır, bu nedenle aktarım sırasında göremezsiniz). Geçici dosyanın oluşturulması başarısız olursa, rsync --delete-after kullanmaya geri dönmeye çalışır (eğer --recursive arttırımlı bir tarama yapıyorsa bu yapılamaz). Doğrudan veya örtük dosya silinmesi ile ilgili daha ayrıntılı bilgi için bkz: --delete seçeneği.

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 başına yeni dosya birleşimleri yapıyorsanız ve bunların dışlanmasının aktarımın silme fazında etkin olmasını istiyorsanız bu seçenek yararlı olacaktır. Ayrıca rsync’i, aktarımdaki tüm dosyaları bellekte bir kerede taramak için eski, arttırımlı olmayan özyineleme algoritmasını kullanmaya zorlar. (Bkz: --recursive seçeneği). Doğrudan veya örtük dosya silinmesi ile ilgili daha ayrıntılı bilgi için bkz: --delete seçeneği.

Ayrıca, yalnızca silme işlemlerinin aktarımın sonunda gerçekleşmesini isteyenler için daha hızlı bir seçim olabilecek --delete-delay seçeneğine de bakılabilir.

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 (bkz: --exclude seçeneği). 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. Doğrudan veya örtük dosya silinmesi ile ilgili daha ayrıntılı bilgi için bkz: --delete seçeneği.

rsync, açıkça (örneğin, komut satırı girdileri veya --files-from girdileri ile) istenen kaynak dosyaları ilk kez işlerken, dosyanın bulunamaması normalde bir hatadır. Bu seçenek bu hatayı baskılar ve dosyayı aktarmaya çalışmaz. Bir dosyanın başlangıçta mevcut olduğu ve daha sonra artık orada olmadığı tespit edilmişse, sonraki kaybolan dosyalarla ilgili hatalar bundan etkilenmez.

Bu seçenek --ignore-missing-args seçeneğinin (örtük) davranışını bir adım öteye taşır: her eksik girdi, alıcı taraftaki (varsa) karşılık gelen hedef dosya için silme isteği haline gelir. Hedef dosya boş olmayan bir dizinse, yalnızca --force veya --delete etkinse başarıyla silinir. Bunun dışında, bu seçenek diğer herhangi bir silme işlemi türünden bağımsızdır.

Eksik kaynak dosyalar, --list-only çıktısında "*missing" girdisi olarak görünen özel dosya listesi girdileriyle temsil edilir.

G/Ç hataları olsa bile --delete işleminin sürdürülmesini sağlar.

Gönderici tarafta olmayan ancak alıcı tarafta olan dizinlerin içleri dolu bile olsa yerlerine aynı isimde bir dosya aktarılıyorsa silinmesini 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. Doğrudan veya örtük dosya silinmesi ile ilgili daha ayrıntılı bilgi için bkz: --delete seçeneği.

--delete-after kullanılırken --force hala zorunluydu ve --recursive seçeneği de etkinleştirilmediği takdirde işlevsel değildi.

SAYI’dan fazla dosya ya da dizin silinmez. Sınır aşılırsa silme işlemi aktarımın sonuna atlar ve atlanan silme işlemlerinin sayısını bildiren bir uyarı çıktılayıp (daha önemli hatalar olmadıkça) 25 hata koduyla çıkar. Yansılama yapılırken çok büyük ağaçların yıkımına yol açmamak için yararlıdır.

3.0.0 sürümünden itibaren, hedefteki gereksiz dosyalar hakkında hiçbiri silinmeden uyarılmak için --max-delete=0 belirtilebilir. Daha eski istemciler bunu "sınırsız" olarak yorumluyordu, bu nedenle istemcinin sürümü bilinmiyorsa, silmeye izin verilmeyeceğini belirtmek için geriye dönük uyumlu bir yol olarak, daha az belirgin olan --max-delete=-1 kullanılabilir (gerçekten eski sürümler, sınır aşıldığında uyarmıyordu).

BOYUT bayttan dha büyük dosyalar aktarılmaz. BOYUT belirtilirken, bayttan büyük birimler için sonek olarak K, M, G gibi bayt çarpanları belirtilebileceği gibi kesirli değerler de belirtilebilir (--max-size=1.5m gibi).

Bu seçenek bir aktarım kuralıdır, dışlama kuralı değildir, bu nedenle dosya listelerine giren verileri etkilemez ve dolayısıyla silme işlemlerini de etkilemez. Sadece alıcının aktarılmasını istediği dosyaların sayısını sınırlar.

Birim dizgesinin ilk harfi B (bayt), K (kilo), M (mega), G (giga), T (tera) veya P (peta) olabilir. Dizge tek bir karakterse veya kendisine "ib" eklenmişse (örneğin, "G" veya "GiB") bu durumda birimler 1024’ün katlarıdır. "B" ile biten iki harfli bir son ek kullanırsanız (ör. “kb”) 1000’in katları olan birimler elde edersiniz. Dizgenin harfleri, birimi belirten herhangi bir büyük veya küçük harfi içerebilir.

Son olarak, dizge “+1” veya “-1” ile bitiyorsa, belirtilen yönde bir bayt kaydırılır. Mümkün olan en büyük değer genellikle 8192P-1’dir.

Örnekler: --max-size=1.5mb-1 ise 1499999 bayttır ve --max-size=2g+1 ise 2147483649 bayttır.

3.1.0 öncesi rsync sürümlerinde --max-size=0 belirtilemezdi.

Belirtilen BOYUT değerinden daha küçük herhangi bir dosyayı aktarmaktan kaçınmasını söyler, küçük, gereksiz dosyaları aktarmamaya yardımcı olabilir. BOYUT açıklaması ve diğer bilgiler için bkz: --max-size seçeneği.

3.1.0 öncesi rsync sürümlerinde --max-size=0 belirtilemezdi.

Öntanımlı olarak rsync, malloc/realloc’u ayrırma başına boyut olarak yaklaşık 1 GB ile sınırlar. Çoğu durumda bu sınır gayet iyi çalışır ve rsync’in çok büyük miktarda bellek talep etmesine neden olan bir protokol hatasını önler. Ancak, bir aktarımda milyonlarca dosya, büyük miktarda sunucu belleği varsa ve aktarım birden çok parçaya bölünmek istenmiyorsa, ayırma başına sınır daha büyük bir değere yükseltilebilir ve böylece rsync daha fazla bellek tüketir.

Bunun, ayrılan belleğin toplam boyutu için bir sınır olmadığını unutmayın. Her ayrı tahsis için tutarlılık değeridir.

BOYUT --max-size seçeneğinde açıklanan bir sonekle belirtilebilmektedir. Bir sonek belirtilmezse birim olarak bayt öntanımlıdır.

3.2.3 sürümü itibariyle 0 değeri sınır olmadığını belirtmektedir.

Bu seçenek tarafından desteklenen BOYUT değerlerini kullanarak RSYNC_MAX_ALLOC ortam değişkenine öntanımlı bir değer atayabilirsiniz. Uzak rsync --max-alloc seçeneğini anlamıyorsa, --max-alloc=1g belirterek ortam değişkenindeki değeri geçersiz kılabilirsiniz; "1G" öntanımlı değer olduğundan rsync seçeneği uzak tarafa göndermeyecektir.

Delta aktarım 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.

3.2.3 sürümü itibariyle, BOYUT --max-size seçeneğinde açıklanan bir sonekle belirtilebilmektedir. Daha eski sürümler BOYUT olarak sadece bayt sayısı kabul ederdi.

Bu seçenek yerel ve uzak rsync kopyaların arasında iletişim için başka bir uzak kabuk uygulaması belirleyebilmeyi sağlar. Genelde, rsync öntanımlı olarak ssh(1) kullanacak şekilde yapılandırılır, fakat yerel ağda rsh(1) kullanımı da tercih edilebilir.

Bu seçenek [kullanıcı@]konak::modül/yol girdisi ile birlikte 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 sunucusunun soket bağlantısı değil, uzak kabuk bağlantısı kullanılacaktır. Ayrıca, bkz: RSYNC ARTALAN SÜRECİNE UZAK KABUKTAN BAĞLANMAK

rsync 3.2.0 ve sonrasında, uzak kabuk bağlantısı aracılığıyla artalan sürecine bağlanılırsa RSYNC_PORT ortam değişkeni etkinleştirilir. Öntanımlı artalan süreci portu kullanılacaksa değişkene 0 atanır. Ya da rsync://URL ile veya --port seçeneği ile belirtilen rsync portunun değeri atanır. Bu, betiğin öntanımlı olmayan bir port istenip istenmediğini ayırt etmesine ve ssl veya stunnel yardımcı betiğinin öntanımlı porta veya başka bir porta bağlanmasını sağlar.

KOMUT’un rsync’e tek bir girdi olarak sunulması koşuluyla, KOMUT içinde komut satırı girdileri kullanımına izin verilir. Komutu ve girdileri birbirinden ayırmak için boşluk (sekme veya diğer boşluk karakterlerini değil) kullanılmalıdır. Bir girdideki boşlukları korumak için ise tek ve/veya çift tırnak kullanılabilir (ancak ters eğik çizgileri değil). Tek tırnaklı bir dizge içinde çifte tek tırnak kullanımının tek tırnakla sonuçlandığı, çift tırnak için de benzerinin geçerli olduğunu unutulmamalıdır (ayrıca, kabuğun ve rsync’in hangi tırnakları çözümlediğinin de bilinmesi gerekir). Bazı örnekler:

-e ’ssh -p 2234’
-e ’ssh -o "VekilKomutu nohup ssh firewall nc -w1 %h %p"’

(ssh kullanıcıları konağa özgü bağlantı seçeneklerini kendi .ssh/config dosyalarında belirtebilir.)

Ayrıca, uzak kabuk uygulaması -e seçeneğindeki gibi değer kabul eden RSYNC_RSH ortam değişkeni kullanılarak da belirtilebilir.

Ayrıca, bu seçenekten etkilenen --blocking-io seçeneğine de bakılabilir.

Uzak makinede başlangıçta çalıştırılacak UYGULAMAyı 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 herhangi 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 devre dışı kalmamasına dikkat edilmelidir.

Aşağıdaki örnekte uzak makinede --relative seçeneği ile kullanmak için farklı bir öntanımlı dizin belirtilmektedir:

rsync -avR --rsync-path="cd /a/b && rsync" konak:c/d /e/

Bu seçenek, belli etkilerin aktarımın sadece bir tarafıyla sınırlanmasının istendiği ileri düzey durumlarda kullanılır. Örneğin, --log-file=DOSYA ve --fake-super seçenekleri uzak sisteme aktarılmak istenirse, şöyle belirtilebilir:

rsync -av -M --log-file=foo -M --fake-super kaynak/ hedef/

Normalde her iki tarafı da etkileyen bir seçeneğin, aktarımın sadece yerel tarafını etkilemesi istenirse uzak tarafa bir red gönderilebilir:

rsync -av -x -M --no-x kaynak/ hedef/

Bu kullanılırken dikkatli olunmalıdır, çünkü rsync’in soket üzerinden hangi verilerin bekleneceği konusunda farklı bir fikre sahip olmasına neden olacak ve anlaşılmaz bir nedenle başarısız kılacak bir seçeneği açıp kapamak mümkündür.

Aktarmak istediğiniz her uzak seçenek için ayrı bir -M seçeneği kullanmanız gerektiğini unutmayın. Daha eski rsync sürümlerinde, uzak seçenek girdisi içinde herhangi bir boşluğun varlığı, onun ayrı ayrı uzak girdilere bölünmesine neden olabilir, ancak günümüz rsync’inde bu durum --old-args kullanımını gerektirir.

Yerel aktarım açısından, "yerel" taraf gönderici, "uzak" taraf alıcıdır.

Popt seçenek çözümleme kütüphanesinin bazı sürümlerinde, içinde eşit imi bulunan bir seçeneğin, kısa bir seçenek harfine bitişik olarak kullanılmasını (-M--log-file=/tmp/foo gibi) engelleyen bir yazılım hatası vardır. Kullanılan popt sürümünü etkileyen böyle bir hata varsa, rsync ile birlikte gelen popt sürümü kullanılabilir.

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ışlama listesi aşağıdakilerle ilklendirilir (bunlar kolay bozulan olarak imlenir - bkz: SÜZME KURALLARI):

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/ .git/ .hg/ .bzr/

$HOME/.cvsignore içindeki dosyalarla CVSIGNORE ortam değişkeninde (tüm isimler bir boşlukla ayrılarak belirtilir) listelenen her dosya aralarına boşluk konarak bu listeye eklenir.

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) sayfasına bakınız.

Bu seçenek --filter kurallarıyla birlikte belirtilirse, -C seçeneğinin komut satırının neresinde olduğuna bakılmaksızın, CVS dışlananları --filter kurallarının sonuna eklenir. Bu, onlara --filter kurallarına göre daha düşük öncelik verir. CVS dışlananlarının --filter kurallarına nasıl ekleneceği belirlenmek istenirse, -C seçeneği, komut satırında değil --filter=:C veya --filter=-C biçeminde --filter seçeneğinin bir uzantısı olarak belirtilebilir (bu, komut satırında belirtilebileceği gibi süzme dosyasına ":C" ve "-C" kuralları yerleştirilerek de belirtilebilir). İlk kural her dizinde .cvsignore dosyalarına bakılmasını, ikinci kural ise yukarıda bahsedilen CVS dışlananlarının bir kereliğine dahil edilmesini sağlar.

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. KURAL boşluk karakterleri içeriyorsa, kabuğun kuralı tek bir terim olarak aktarabilmesi için tırnak içine alınması gerekir. Kılavuzun devamında belirtildiği gibi, kuralı girdileriyle ilişkilendirmek için boşluk yerine alt çizgi konulabilir.

Bu seçenek hakkında daha ayrıntılı bilgi için bkz: SÜZME KURALLARI

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 kendilerinin aktarımdan dışlanmasını sağlar.

Bu seçenek hakkında daha ayrıntılı bilgi için bkz: SÜZME KURALLARI

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 bkz: SÜZME KURALLARI

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, ’;’ veya ’#’ ile başlayan satırlar yoksayılır.

DOSYA olarak - belirtilmişse, liste standart girdiden okunur.

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 bkz: SÜZME KURALLARI

Bu seçenek, içerme kurallarının belirtilen dosyadan alınmasını sağlar. DOSYA içindeki boş satırlar, ’;’ veya ’#’ ile başlayan satırlar yoksayılır.

DOSYA olarak - belirtilmişse, liste standart girdiden okunur.

Bu seçeneği kullanarak aktarılacak dosyaların tam listesi belirtilebilir. Liste DOSYAdan 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ışı kolayca değiştirilebilir:

--relative (-R) seçeneği uygulanarak DOSYA içindeki her öğede belirtilen yol bilgisi korunmuştur (bu davranışı kapatmak için --no-relative veya --no-R seçeneği kullanılmalıdır).
--dirs (-d) seçeneği uygulanarak listede belirtilen dizinlerin atlanmayıp, hedefte oluşturulması sağlanmıştır (bu davranışı kapatmak için --no-dirs veya --no-d seçeneği kullanılmalıdır).
--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ı istenirse --recursive (-r) seçeneğinin ayrıca belirtilmesi gerekir.
Yan etkiler rsync’in öntanımlı durumunu değiştirir. Bu nedenle komut satırındaki --files-from seçeneğinin konumunun diğer seçeneklerin çözümlenişiyle hiçbir ilgisi yoktur (örneğin, -a seçeneği, --files-from seçeneğinin öncesinde de sonrasında da aynı biçimde çalışır).

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. Dizin "bin/" olarak içeriliyorsa (sondaki /’a dikkat), 2.6.4 ve üstü sürümlerde /usr/bin dizinindeki dosyalar da aktarılır. Her iki durumda da -r (ardışıklık) seçeneği belirtilmişse dizinin tüm hiyerarşisi aktarılır (-a seçeneği tarafından uygulanmadığından -r seçeneğinin açıkça --files-from seçeneği ile birlikte belirtilmesi gerektiği unutulmamalıdır). Ayrıca -r seçeneğinin etkisinin (öntanımlı olarak etkindir) yalnızca dosyadan okunan yol bilgisini yinelemek olduğu da unutulmamalıdır - ancak, kaynak için belirtilmiş yolun yinelenmesine zorlamaz (örnekte /usr)

Ek olarak, eğer DOSYA’yı "uzak:" öneki ile belirtirseniz, bu dosya yerel konaktan değil, uzak konaktan okunur (konak eşleştirmesi aktarımın sonunda yapılır). Bir kısaltma olarak, "aktarımın yapıldığı uzak konak" 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.

--iconv ve --protect-args seçenekleri belirtilmişse ve --files-from seçeneği dosyaları bir konaktan diğerine gönderiyorsa aktarılan dosyaların karakter kümesi, gönderen konağın karakter kümesinden alıcı konağın karakter kümesine dönüştürülür.

--files-from girdisindeki dosya listesini sıralamak, bitişik girdiler arasında paylaşılan yol öğelerinin yeniden ziyaretinden kaçınılacağından rsync’in daha verimli olmasına yardımcı olur. Giriş sıralanmazsa, bazı yol öğeleri (örtük dizinler) birden çok kez taranabilir ve rsync, bunları eninde sonunda dosya listesi öğelerine dönüştürerek tekilleştirir.

-0, --from0
Bu seçenek rsync’e, bir dosyadan okunan dosya isimlerinin sonlandırılmasının satır sonu karakteri (LF) veya satır başı 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 --filter kuralı ile belirtilen dosyaları etkiler. Dosya isimlerinin boşluk ile ayrıldığı .cvsignore dosyalarını kullanan --cvs-exclude seçeneğini etkilemez.

rsync’e uzak taraftaki girdi değerlerini istenmeyen sözcük ayrıştırmasından veya diğer yanlış yorumlamalardan korumaya çalışmayı bırakmasını söyler.

Günümüz rsync’inde öntanımlı olan, uzak kabuğa gönderilen girdilerde kabuğun özel karakterlerinin (boşluklar dahil) ters eğik çizgi ile öncelenmesidir. *, ?, [, ] joker karakterleri , --usermap gibi seçenek girdilerinde öncelenirken dosya adı girdilerinde öncelenmez (birden çok dosya adına genişlemeleri sağlanır).

Dosya adlarında eski tarz sözcük ayrıştırması bir betikle yapılıyorsa, bu seçenek bir kez belirtilir. Uzak kabukta ters eğik çizgi öncelemesi sorunluysa, iki kez belirtilir.

Bu seçenek yerine RSYNC_OLD_ARGS ortam değişkeni de kullanılabilir. Ortam değişkenin değeri "1" ise rsync öntanımlı olarak tek seçenekli, "2" veya daha büyük ise, rsync öntanımlı olarak yinelenen seçenek durumuna geçer. "0" ise, öntanımlı önceleme davranışı elde edilir. Ortam değişkeninin değeri, komut satırından belirtilen olumlu veya olumsuz seçenekler tarafından geçersiz kılınabilir (--no-old-args olumsuz seçenektir).

Bu seçenek --protect-args seçeneğiyle birlikte kullanılamaz.

Bu seçenek, tüm dosya adlarını ve çoğu seçeneği rsync’e uzak kabukta yorumlamamak üzere gönderir. Joker karakterler, uzak konakta kabuk yerine rsync tarafından genişletilir.

Bu, 3.2.4’te eklenen, girdilerin yeni tarz ters eğik çizgi öncelemesine benzer, ancak bazı ek özellikler de desteklenir ve işlem, uzak kabuktaki ters eğik çizgi öncelemesine bırakılmaz.

Bu seçenek --iconv ile birlikte kullanıldığında, uzak taraftaki ilgili girdilerin karaktar kümesi yerelinkinden uzağınkine dönüştürülür. Bu dönüşüm joker karakterler genişletilmeden önce yapılır. Ayrıca bkz: --files-from.

Bu seçenek yerine RSYNC_PROTECT_ARGS ortam değişkeni de kullanılabilir. Sıfırdan farklı bir değer atanırsa işlem öntanımlı olarak etkin olur, aksi takdirde öntanımlı olarak etkin olmaz. Ortam değişkeninin değeri, komut satırından belirtilen olumlu veya olumsuz seçenekler tarafından geçersiz kılınabilir (--no-s ve --no-protect-args olumsuz seçeneklerdir). Bu ortam değişkeni ayrıca sıfırdan farklı bir değerle atanmış RSYNC_OLD_ARGS ortam değişkeni tarafından da geçersiz kılınabilir.

3.0.0 öncesi bir rsync ile etkileşirken bu seçeneği iptal etmeniz gerekebilir.

Bu seçenek --old-args seçeneği ile birlikte kullanılamaz.

Bu seçeneğin, seçenekleri betiğin incelemesinden gizleyen kısıtlı rsync betiğinin (rrsync) kullanımıyla uyumlu olmadığını unutulmamalıdır.

Bu seçenek, kopyalama işlemleri için rsync’e KULLANICI’yı ve (iki nokta üst üste belirtilmişse) GRUP’u kullanmasını söyler. Bu, yalnızca rsync’i çalıştıran kullanıcının kullanıcıları değiştirme yeteneği varsa çalışır. GRUP belirtilmemişse, kullanıcının öntanımlı grubu kullanılır.

Bu seçenek, sistem dosyalarının root yetkileriyle okunup yazılmadığından emin olunmak istenmesi durumunda ve rsync’in, üzerinde anlık değişiklikler olabilecek bir dizinde root olarak dizin içinden veya dışından çalıştırılma riskini azaltmaya yardımcı olabilir. Seçenek, bazen root seviyesinde konak erişim yetkilerinin kullanımına ihtiyaç duyulan bir ortamda rsync’i belirtilen kullanıcı olarak çalıştırabilmeyi mümkün kılar. Böylece, uzak kabuk veya artalan süreci bağlantısından sonra kopyalama aşaması için rsync’in root yetkilerini belirtilen kullanıcya terketmesi sağlanabilir.

Seçenek, aktarım yerelken iki tarafıda etkilerken yerel olmadığı durumda yalnızca yerel tarafı etkiler. Uzak tarafı etkilemek için --remote-option kullanılır. Yerel aktarım için, aktarımın uzak tarafını etkileyen seçenekleri belirtmek için "localhost:" veya "lh:" konak belirtiminin kullanımına olanak sağlayan (rsync paketinin support dizinindeki) lsh (veya lsh.sh) destek betiği kullanılabilir.

Örneğin, aşağıdaki komut root aidiyetinde çalıştırılmakta fakat yerel dosyaları "veli" kullanıcısı yazmaktadır:

sudo rsync -aiv --copy-as=veli konak1:backups/veli/ /home/veli/

Bu, tüm dosyaların sahibini ve grubunu "veli" yapar ve veli kullanıcısının değişiklik yapma yetkisinin olmadığı bir dosyada değişiklik başlatmak için zamanlı saldırı yapmasını imkansız hale getirir.

Aşağıdaki root aidiyetinde çalıştırılan komutta "veli" kullanıcısı olarak hedef/ dizinine yerel kopyalama yapılmaktadır (support/lsh betiğinin $PATH dizinlerinde bir yere kopyalanmış olduğu varsayılmaktadır):

sudo rsync -aive lsh -M--copy-as=veli kaynak/ lh:hedef/

Bu seçenek, aktarılan dosyaların alıcı tarafta geçici kopyaları oluşturulurken DİZİN’in çalışma dizini olarak kullanmasını sağlar. Öntanımlı davranış, her geçici dosyayı ilişkili hedef dosyanın bulunduğu dizinde oluşturmaktır. rsync 3.1.1 ve sonrasında, belirtilen DİZİN içindeki geçici dosya adlarının önüne fazladan bir nokta eklenmez (yine de bunlara rastgele bir sonek eklenir).

Bu seçenek çoğunlukla, alıcı disk bölümünde aktarımdaki en büyük dosyanın bir kopyasını tutacak kadar yer olmadığında kullanılır. Bu durumda (yani, göndericinin dizini farklı bir disk bölümünde olduğunda), rsync alınan her geçici dosyayı adını değiştirerek ilişkili hedef dosyanın üstüne yazamaz, geçici dosya yapmadan dosyayı yerine kopyalaması gerekir. Bu durumda, hedef dosya, kopyalama sırasında kırpılan verileri de içerir. Bu şekilde yapılmasaydı (hedef dosya önce silinse, veriler hedef dizindeki geçici bir dosyaya yerel olarak kopyalanıp sonra bu dosya silinenin yerine aktarılsaydı) eski dosya diskte yer kaplamaya devam eder (birisi zaten açmışsa) ve bu nedenle aynı anda diskte yeni sürümü sığdırmak için yeterli yer olmayabilirdi.

Bu seçenek disk alanı yetersizliği dışında bir nedenle kullanılıyorsa, --delay-updates seçeneğiyle birlikte kullanmak iyi olabilir; bu, kopyalanan tüm dosyaların hedef hiyerarşisindeki alt dizinlere yerleştirilmesini ve aktarımın bitmesinin beklenmesini sağlayacaktır. Hedef bölüme gelen tüm dosyaların kopyalarını yapmak için yeterli alanınız yoksa, rsync’e disk alanı hakkında fazlaca endişe duyulmadığını söylemenin başka bir yolu, göreli bir yol belirten --partial-dir seçeneğini kullanmaktır; Bu, rsync’e hedef hiyerarşideki bir alt dizinin, tek bir dosya kopyasını saklamak için uygun olduğunu söylediğinden, rsync, belirtilen dizini kopyalanan dosyayı getirmek için bir hazırlama alanı olarak kullanacak ve ardından onu yeniden adlandırarak yerine yazacaktır. (--partial-dir seçeneğine mutlak bir yol belirtmenin böyle bir yan etkisi yoktur.)

Bu seçenekle, hedefte bulunmayan her dosya için benzer bir dosya aranacağı 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.

Seçenek tekrarlanırsa, bulanık tarama, --compare-dest, --copy-dest veya --link-dest seçenekleriyle belirtilenlerle eşleşen diğer hedef dizinlerde de yapılır.

--delete seçeneği bu amaçla kullanılabilecek bir dosyanın işlem öncesinde silinmesine yol açabileceğinden, dosyanın silinmemesi için, bu seçenek yerine ya --delete-after seçeneği kullanılmalı ya da uygun bir dışlama kuralı belirtilmelidir.

Bu seçenekle, alıcı makinede hedef dizinde olmayan dosyalar için karşılaştırmanın DİZİNe göre yapılacağı belirtilir. Eğer DİZİN içinde göndericideki dosyanı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. Bu seçenek genellikle dosyaları boş (veya yeni oluşturulan) bir dizine kopyalamak için kullanılır.

rsync 2.6.4 ve sonrasında, çok sayıda --compare-dest dizini belirtilebilmektedir. Sadece öznitelikleri uyuşmayan bir dosya bulunursa, yerel bir kopya yapılıp öznitelikleri güncellenir. Eğer bir eşleşme bulunamazsa, işlemi hızlandırmak için bu DİZİNlerin birinden temel bir dosya seçilir.

Eğer DİZİN göreli belirtilmişse hedef dizine göreli olduğu kabul edilir. Ayrıca bkz: --link-dest ve --copy-dest

3.1.0 ve üstü sürümlerde, belirtilen diğer --compare-dest DİZİNlerde tam bir eşleşme bulunması durumunda boş olmayan hedef dizinlerden (nihai sonucun yeni bir kopyayla daha iyi eşleşmesini sağlamak için) bir dosya silinir.

Bu seçenek --compare-dest gibi davranır, ancak rsync ayrıca DİZİN’de bulunan değişmemiş dosyaları yerel bir kopya kullanarak hedef dizine kopyalar. Bu, mevcut dosyaları olduğu gibi bırakırken yeni bir hedefe aktarım yapmak ve ardından tüm dosyalar başarıyla aktarıldığında hızlıca bir geçiş yapmak için kullanışlıdır.

Çok sayıda --copy-dest DİZİNi belirtilebilir, bu da rsync’in değişmemiş bir dosyayı listede belirtilen sırada aramasına neden olur. Bir eşleşme bulunamazsa, aktarımı hızlandırmak için DİZİN’lerden birinden temel bir dosya seçilir.

DİZİN göreli bir yol belirtiyorsa hedef dizine görelidir. Ayrıca bkz --compare-dest ve --link-dest.

Bu seçenek, DİZİN 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/öndizin konak:kaynak/ yeni/

Dosyalar bağlanmıyorsa, özniteliklerine en az iki kez bakılmalıdır. Ayrıca bazı özniteliklerin rsync’in denetimi dışında zorlanıp zorlanmadığına da bakılmalıdır, örneğin kök dizini tek bir kullanıcıya zorlayan veya çıkarılabilir bir sürücü soysal sahiplikle bağlayan bir mount seçeneği (OS X’in "Bu birimde sahipliği yoksay" seçeneği gibi).

2.6.4 sürümünden başlayarak, çok sayıda --link-dest dizini belirtilebilmektedir. Bu da rsync’in tam eşleşme için listeyi belirtilen sırayla aramasına neden olur (bu türde 20 dizinlik sınır vardır). Yalnızca niteliklerde farklılık gösteren bir eşleşme bulunursa, yerel bir kopya yapılır ve nitelikler güncellenir. Bir eşleşme bulunamazsa, aktarımı hızlandırmak için DİZİN’lerin birinden temel bir dosya seçilecektir.

Bu seçenek en çok boş bir hedef hiyerarşisine kopyalama yaparken işe yarar, çünkü mevcut dosyaların öznitelikleri değiştirilebilir ve bu da diğer hedef dosyaları sabit bağlar yoluyla etkileyebilir. Ayrıca, değişikliklerin ayrıntılandırılması biraz karışık olabilir. 3.1.0 sürümünden önce, bir hedef dosya zaten mevcut olduğunda, başka bir dizinle tam bir eşleşmenin asla sağlanamayacağı (veya hedefe bağ oluşturulamayacağı) unutulmamalıdır.

Bu seçenek --ignore-times ile birlikte kullanılırsa, rsync hiçbir dosyayı birbirine bağlamayacaktır, çünkü dosyanın aktarılması için yedek olarak sadece eş dosyalar birbirine bağlanır, dosya güncellendikten sonra asla ek bir denetim yapılmaz.

DİZİN göreli bir yol belirtiyorsa hedef dizine görelidir. Ayrıca bkz: --compare-dest ve --copy-dest.

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 gönderimde -o seçeneği kullanılmamalıdır.

Bu seçenekle gönderilen dosyaların verileri, aktarım miktarını azaltmak için sıkıştırılır. Özellikle, yavaş bağlantılar için çok yararlıdır.

Rsync çok sayıda sıkıştırma yöntemini desteklemektedir, --compress-choice (--zc) seçeneği ile zorlanmadıkça birini otomatik olarak seçecektir.

Derleme sırasında seçilmiş sıkıştırma algoritmalarının listesi rsync --version komutu ile görüntülenebilir.

Aktarım sırasında her iki tarafta da 3.2.0 veya üstü bir sürüm kullanılıyorsa, istemcinin ve sunucunun algoritma listesinden ilk algoritmaları ayrı ayrı seçer. Ortak bir sıkıştırma algoritması bulunamazsa rsync hata vererek çıkar. Uzak rsync sağlama toplamı uzlaşımını desteklemek için çok eski ise listesinde "zlib" bulunduğu varsayılır.

Öntanımlı sıra, RSYNC_COMPRESS_LIST ortam değişkenine kabul edilebilir algoritma isimleri boşluk ayraçlı sıralanarak özelleştirilebilir. Algortima isimleri & içeriyorsa "istemci dizgesi & sunucu dizgesi" biçeminde oluşturulduğu varsayılır, aksi takdirde aynı dizge her iki tarafa da uygulanır. Dizge (veya bir kısmı) boşluk olmayan karakterler içermiyorsa öntanımlı sıkıştırma listesi kullanılır. Listedeki bilinmeyen algoritma isimleri iptal edilir, ancak liste tamamen geçersiz isimlerden oluşuyorsa uzlaşım başarısız olur.

Bazı eski rsync sürümleri öntanımlı zlib sıkıştırma yöntemi ile uyumsuz olduklarında -zz seçeneğinin kullanımı gerektirecek şekilde yapılandırıldıklarından -z seçeneğinin kullanımını reddeder. rsync sunucusu, açıkça -zz belirtilmesi gerektiği konusunda uyarmadıkça bu tuhaflık yok sayılabilir.

Bu seçenek, --compress kullanıldığında yapılan otomatik sıkıştırma algoritması uzlaşımını geçersiz kılmak için kullanılabilir. Örtük olarak --no-compress uygulanmasını sağlayan "none" belirtilmedikçe bu seçenek örtük olarak --compress seçeneğinin uygulanmasını sağlar.

Kullanılabilen sıkıştırma seçenekleri:

zstd
lz4
zlibx
zlib
none

Derleme sırasında seçilmiş sıkıştırma algoritmalarının listesi rsync --version komutu ile görüntülenebilir (yukarıdaki listeden farklı olabilir).

--old-compress veya --new-compress seçeneği hakkında bir hata görürseniz, daha fazla rsync sürümünün tanıdığı --compress-choice=zlib veya --compress-choice=zlibx seçeneği geriye uyumluluk adına gönderilmeye çalışılıyor demektir. Bu hata, sunucudaki eski rsync sürümünün sıkıştırma türünü zorlamanıza izin vermeyeceğini gösterir.

"zlibx" sıkıştırma algoritmasının, (harici bir zlib gerçeklenimiyle uyumlu hale gelebilmesi için) eşleşen verilerin sıkıştırma akımına dahil edilmediği bir "zlib" algoritması oluşuna dikkat edilmelidir.

Öntanımlı sıkıştırma seviyesi yerine kullanılacak sıkıştırma seviyesini (bkz: --compress, -z) doğrudan tanımlamak için kullanılır. --compress seçeneği, geçerli olan sıkıştırma algoritması için "sıkıştırma yapılmayan" seviye seçilmediği sürece örtük olarak uygulanır (örneğin, zlib sıkıştırması, 0. seviyeyi "sıkıştırma yapılmayan" seviye olarak değerlendirir).

Seviye değerleri etkin olan sağlama toplamına bağlı olarak değişiklik gösterir. Çünkü rsync öntanımlı olarak bir sağlama toplamı seçiminde (uzak rsync yeterince yeni bir sürümse) uzlaşım arayacaktır. Geçerli seçimden emin olunamıyorsa, bu seçeneği bir --compress-choice (--zc) seçeneğiyle birlikte kullanmak iyi olabilir. Örnek:

rsync -aiv --zc=zstd --zl=22 konak:kaynak/ hedef/

zlib ve zlibx sıkıştırmaları için geçerli değerler 1’den 9’a kadar olup 6 öntanımlı değerdir. --zl=0 belirtilirse sıkıştırma yapılmaz. --zl=-1 ile öntanımlı olan 6. seviye sıkıştırma uygulanır.

zstd sıkıştırması için geçerli değerler -⁠131072’den 22’ye kadar olup 3 öntanımlı değerdir. SAYI olarak 0 belitilirse öntanımlı öntanımlı olan 3. seviye sıkıştırma uygulanır.

lz4 sıkıştırması için geçerli bir değer yoktur, dolayısıyla değer daima 0 olur.

Çok küçük ya da çok büyük bir değer belirtilirse sayı sessizce geçerli değerle sınırlanır. Bu, --zl=999999999 gibi bir değer belirtilmeye ve hangi algoritma seçilirse seçilsin azami sıkıştırma seviyesine ulaşmaya olanak tanır.

Etkin olan sıkıştırma seviyesini sorgulamak ve "uzlaşılan dizge" sonuçlarını görüntülemek için --debug=nstr belirtilebilir. Bu, (etkin sağlama toplamı seçimi ile birlikte) "Client compress: zstd (level 3)" benzeri bir dizge çıktılar.

Her dosya için ayrı ayrı sıkıştırma değişikliği desteği olan herhangi bir yöntem yoksa bu seçeneğin de herhangi bir etkisi yoktur.

Çok az sıkıştırılabilecek dosya soneklerini içeren LİSTEyi geçersiz kılar. rsync, her dosya için sıkıştırma düzeyini dosyanın sonekine göre ayarlar. Sıkıştırma algoritmasının "sıkıştırma yapılmayan" seviyesi varsa, bu dosyalar için sıkıştırma gerçekleşmez. Akım seviyesinde anında seviye değiştirmeyi destekleyen diğer algoritmalar, eşleşen her dosya için işlemci kullanımını mümkün olduğunca azaltmak için seviyeyi en aza indirecektir.

LİSTE eğik çizgilerle (/) ayrılmış birden fazla dosya soneki içerebilir. Hiçbir dosyanın atlanmayacağını belirtmek için değer olarak boş dizge ("") verilebilir.

Basit karakter sınıfı eşleşmesi desteklenmektedir. Örneğin "[:alpha:]" sınıfından başka birşey belirtilmezse ’-⁠’ karakterinin özel bir anlamı olmaz.

Yıldız (*) ve soru iminin (?) özel anlamları vardır.

Aşağıdaki örnekte atlanacak 6 sonek belirtilmektedir (mp[34] iki sonekle eşleşir):

--skip-compress=gz/jpg/mp[34]/7z/bz2

rsync tarafından bu sürümde desteklenen sıkıştırılmayacak dosyaların öntanımlı sonek listesi:

3g2 3gp 7z aac ace apk avi bz2 deb dmg ear f4v flac flv gpg gz iso jar jpeg jpg lrz lz lz4 lzma lzo m1a m1v m2a m2ts m2v m4a m4b m4p m4r m4v mka mkv mov mp1 mp2 mp3 mp4 mpa mpeg mpg mpv mts odb odf odg odi odm odp ods odt oga ogg ogm ogv ogx opus otg oth otp ots ott oxt png qt rar rpm rz rzip spx squashfs sxc sxd sxg sxm sxw sz tbz tbz2 tgz tlz ts txz tzo vob war webm webp xz z zip zst

Bu listenin yerini, biri hariç tüm durumlarda LİSTE alacaktır: rsync artalan sürecinden alınan bir kopya, LİSTEye eklenir (artalan sürecinin listesi farklı bir öntanımlı liste ile yapılandırılabilir).

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 yerelde herhangi bir isimle eşleşmiyorsa veya hedefte bir eşleşme yoksa, 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ın nasıl değiştirebileceği hakkında bilgi için bkz: rsyncd.conf(5) kılavuz sayfasındaki use chroot modül seçeneğinin açıklaması.

Bu seçenekler, alıcı tarafın diğer değerlere eşlenmesi gereken kullanıcıları ve grupları belirlemesine olanak tanır. DİZGE, virgülle ayrılmış bir veya daha fazla GÖNDEREN:ALAN değer çiftidir. Göndericiden gelen herhangi bir eşleşen GÖNDEREN değeri, alıcıdan gelen bir ALAN değeri ile değiştirilir. GÖNDEREN ve ALAN değerleri için kullanıcı adları veya kullanıcı kimlikleri belirtebilirsiniz ve GÖNDEREN değeri, gönderenin adlarıyla eşleştirilecek bir joker karakter dizisi de olabilir (joker karakterler kimlik numaralarıyla eşleşmez, ancak ’*’ iminin neden her şeyle eşleştiğini görmek için aşağıya bakın). Bunun yerine, bir kimlik numarası aralığı belirtebilirsiniz: DÜŞÜK-YÜKSEK. Örnek:

--usermap=0-99:nobody,wayne:admin,*:normal --groupmap=usr:1,1:usr

Listedeki ilk eşleşme kullanılan eşleşmedir. Tüm kullanıcı eşlemeleri tek bir --usermap seçeneği kullanılarak ve/veya tüm grup eşlemeleri tek bir --groupmap seçeneği kullanılarak belirtilmelidir.

0 kullanıcısı ve grubu için gönderici adının alıcıya iletilmediğine dikkat edilmelidir, bu nedenle ya 0 kullanarak bu değerleri eşleştirmelisiniz ya da alıcı tarafta geçerli olan adları kullanmalısınız (genelde "root"). Diğer tüm GÖNDEREN adları, gönderen tarafta kullanılanlarla, tüm ALAN adları, alıcı tarafta kullanılanlarla eşleşir.

Gönderen tarafta adı olmayan tüm kimlikler, eşleştirme amacıyla boş ad olarak değerlendirilir. Bu, bir "*" ile veya boş ad kullanılarak eşleştirilmelerine olanak tanır. Örneğin:

--usermap=:nobody --groupmap=*:nobody

---numeric-ids seçeneği kullanıldığında, gönderici hiçbir ad göndermez, bu durumda tüm kimliklerin boş ada sahip olduğu varsayılır. Adsız kimlikler farklı değerlerle eşleştirilmek istenirse GÖNDEREN olarak bu sayısal kimlikleri belirtmek gerekir.

--usermap seçeneğinin çalışması için alıcının ayrıcalıklı kullanıcı aidiyetinde çalıştırılması gerekir (bkz: --super ve --fake-super). --groupmap seçeneğinin çalışması için, alıcının grubu atayacak izinlere sahip olması gerekir.

rsync 3.2.4 ve sonrasında, --usermap seçeneği örtük olarak --owner (-o) seçeneğini uygularken --groupmap seçeneği örtük olarak --group (-g) seçeneğini uygular (rsync eşleşme seçeneklerinin çalışması için bu seçeneklerin etkin olmasını gerektirdiğinden).

Eski bir rsync’in joker karakterlerden şikayetini önlemek için --protect-args (-s) kullanımı gerekirken günümüz rsync’leri bunu otomatik olarak halleder.

Bu seçenek, tüm dosyaları GRUP grubundaki KULLANICI’ya ait olmaya zorlar. Bu, doğrudan --usermap ve --GroupMap kullanmaktan daha basit bir arayüzdür, ancak karıştırılamayacakları için bu seçenekler kullanılarak gerçeklenmiştir. KULLANICI veya GRUP boşsa, atlanan kullanıcı/grup için eşleme olmaz. GRUP boşsa, iki nokta imi atlanabilir, ancak KULLANICI boşsa, iki nokta imi bulunmalıdır.

"--chown=foo:bar", belirtilirse "--usermap=*:foo --groupmap=*:bar" belirtmekten farkı yoktur, sadece daha kolaydır (ve örtük olarak --owner ve/veya --group seçenekleri ile aynıdır).

Eski bir rsync’in joker karakterlerden şikayetini önlemek için --protect-args (-s) kullanımı gerekirken günümüz rsync’leri bunu otomatik olarak halleder.

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ırır. Öntanımlı değer, bir zamanaşımı olmadığını belirten 0 değeridir.

Bu seçenek, rsync’in rsync artalan süreciyle bağlantısının başarılı olması için kaç saniye bekleyeceğini belirtmek için kullanılır. Belirtilen süre içinde bir bağlantı gerçekleşmezse, rsync işlemi bir hatayla sonlandırır.

Öntanımlı olarak rsync, bir rsync artalan sürecine bağlanırken joker adres kullanır. --address seçeneği, bağlanılacak belirli bir IP adresi (veya konak adı) belirtmeye olanak tanır.

Ayrıca bkz: Artalan süreci için --address seçeneği.

Ö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.

Ayrıca bkz: Artalan süreci için --port seçeneği.

Bu seçenek, sistemlerini en üst düzeyde ayarlamayı seven insanlar için sonsuz eğlence sağlayabilir. Aktarımları daha hızlı (veya daha yavaş!) yapabilecek her türlü soket seçeneğini ayarlayabilirsiniz. Ayarlayabileceğiniz bazı seçenekler hakkında ayrıntılar için setsockopt(2) sistem çağrısının kılavuz sayfasına bakılabilir. Öntanımlı olarak hiçbir özel soket seçeneği ayarlanmamıştır. Bu sadece uzak bir rsync artalan sürecine doğrudan soket bağlantılarını etkiler.

Ayrıca bkz: Artalan süreci için --sockopts seçeneği.

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).

Çıktı tamponlama kipini belirler. KİP None (tamponsuz), Line (satır tamponlu) veya Block (Tam tamponlu) olabilir. Büyük veya küçük tek harfli kip de belirtilebilir.

Seçeneğin başlıca kullanım amacı, rsync çıktısı bir dosyaya veya boruya yönlendirilirken tam tamponlamadan satır tampolamaya geçmektir.

Her dosyanın öznitelik değişikliklerini de içererek yapılmış değişikliklerin dosyalara göre ayrıntılı bir listesini almak için kullanılır. Bu, --out-format=’%i %n%L’ belirtmekle aynıdır. Seçenek tekrarı, 2.6.7 ve üstü sürümlerde değişmeyen dosyaların da ayrıca çıktılanmasını sağlar. 2.6.7 öncesi sürümlerde ise diğer ayrıntı iletilerinin de çıktılanmasını sağlayan -vv kullanılabilir.

"%i" belirtimi 11 karakter uzunlukta şifresel bir çıktıya sahiptir. Genel biçimi YXcstpoguax dizgesine benzer. Burada Y 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.

Y karakterinin yerini alan güncelleme türleri şunlardır:

< uzak konağa aktarılan (gönderilen) dosya
> yerel konağa aktarılan (alınan) dosya
c yerel konakta değiştirilen/oluşturulan dosya (bir dizin ya da sembolik bağın oluşturulması gibi).
h başka bir öğeye sabit bağ olan öğe (--hard-links gerektirir).
. (nokta) güncellenmiş (öznitelikleri değişmiş) dosya
* ayrıntılı çıktı alanının geri kalanı bir ileti içeriyor ("siliniyor" gibi).

X karakterinin yerini alan dosya türleri şunlardır:

f dosya
d dizin
L sembolik bağ
D aygıt
S özel dosya (isimli soketler ve isimli borular gibi)

Dizgenin diğer harfleri dosyanın bazı özniteliklerinin değiştiğini belirtir:

"." Öznitelik değişmedi.
"+" Dosya yeni oluşturuldu.
" " Hiçbir öznitelik değişmedi (tüm noktalar boşluklara dönüşür).
"?" Neyin değiştiği bilinmiyor (uzak rsync eski olduğunda).
harf Bir özniteliğin güncellendiğini belirtir.

Harflerin belirttiği öznitelikler şunlardır:

Sağlama toplamı farklı normal dosya (--checksum gerektirir) veya değeri değişmiş bir sembolik bağ, aygıt veya özel dosya olduğunu belirtir.

Dosyaların gönderildiği rsync sürümü 3.0.1’den eskiyse sadece sağlama toplamları farklı normal dosyaları belirtir.

Normal dosyanın boyutlarının farklı olduğunu ve dosyanın aktarımla güncelleneceğini belirtir.

Değişiklik zamanının farklı olduğunu ve göndericinin değeri 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 dosya, sembolik bağ veya aygıt --times seçeneği belirtilmeksizin güncellenirken ya da bir sembolik bağ değiştiğinde alıcı zamanını tanımlamıyorsa çıktılanır.

rsync sürümü 3.0.0’dan eskiyse, bu zaman belirleme hatası için tek bir t bayrağı yerine t bayrağı T ile birlikte belirtilmiş olabilir.

İzinlerin farklı olduğunu ve göndericinin değeri ile güncelleneceğini belirtir (--perms gerektirir).

Sahiplerin farklı olduğunu ve göndericinin değeri ile güncelleneceğini belirtir (--owner ve ayrıcalıklı kullanıcı yetkileri gerektirir).

Grupların farklı olduğunu ve göndericinin değeri ile güncelleneceğini belirtir (--group ve grup atama yetkileri gerektirir).

Erişim zamanının göndericidekinden farklı bir değere güncellendiğini belirtir (--atimes gerektirir).

Oluşturulma zamanının göndericidekinden farklı bir değere güncellendiğini belirtir (--crtimes gerektirir).

Erişim ve oluşturma zamanlarının ikisinin de güncellendiğini belirtir.

ACL bilgisinin değiştiğini gösterir

Ek öznitelik bilgisinin değiştirğini gösterir.

Olası diğer bir çıktı daha vardır: Dosyalar silinirken silinen her öğe için "%i" belirteci "*deleting" dizgesini çıktılar (yeterince son sürüm bir rsync ile konuşulduğu ve silme işlemlerini bir ayrıntı olarak çıktılamayıp günlük kaydı tuttuğu varsayımıyla).

Bu, rsync istemcisinin kullanıcıya her güncellemede tam olarak ne çıktılayacağının tam olarak belirlenmesini sağlar. BİÇEM, yüzde (%) imi ile başlayan tek karakterlik öncelemler içeren bir metin dizgesidir. --info=name veya -v belirtilirse "%n%L" biçemi öntanımlıdır (yalnızca dosyanın adını ve öğenin bir bağ olup olmadığını çıktılar). Olası biçemleme karakterlerinin tam listesi için, rsyncd.conf(5) kılavuz sayfasındaki log format seçeneğinin açıklamasına bakılabilir.

Bu seçeneğinin belirtilmesi, önemli bir şekilde güncellenen (aktarılan bir dosya, yeniden oluşturulmuş bir sembolik bağ/aygıt veya dokunulan bir dizin) her dosya veya dizinden vb. bahsedecek olan --info=name seçeneğinin örtük olarak uygulanmasını sağlar. Ek olarak, değişiklikleri ayrıntılı gösterme öncelemi (%i) dizgeye dahil edilirse (--itemize-changes seçeneği kullanılmış gibi), herhangi bir şekilde değiştirilen öğe adları da günlüğe eklenir (alıcı tarafın sürümü en az 2.6.4 olduğu takdirde). %i çıktısının açıklaması için bkz: --itemize-changes

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çemi dizgesini dosyanın aktarımından önce çıktılayacaktır. Bu geç günlükleme etkin olduğunda ve ayrıca --progress seçeneği de belirtilmişse rsync aktarılan dosyanın ismini işlem bilgisinden önce (şüphesiz, --log-format çıktısından sonra) çıktılayacaktır.

Bu seçenek, rsync’in yaptıklarını bir dosyaya günlüklemesini sağlar. Bu, artalan sürecinin yaptığı günlük kaydına benzer, ancak artalan süreciyle yapılmayan bir aktarımın istemci ve/veya sunucu tarafı için istenebilir. İstemci seçeneği olarak belirtilirse, aktarım günlüğü "%i %n%L" öntanımlı biçemiyle etkinleştirilir. Bu geçersiz kılınmak istenirse bkz: --log-file-format

Neler yapıldığını günlüklemesi için uzak tarafa istekte bulunma örneği:

rsync -av --remote-option=--log-file=/tmp/rlog kaynak/ hedef/

Bağlantının istem dışı kapanma sebebini incelemek için yaralıdır.

Ayrıca bkz: Artalan sürecinin --log-file seçeneği.

--log-file seçeneğiyle belirtilen dosyaya güncelleme başına günlük kaydı olarak neler konulacağının belirtilebilmesini sağlar. Bu seçeneğin etkili olabilmesi için --log-file seçeneğinin de ayrıca belirtilmesi gerekir. Boş bir dizge belirtirseniz, günlük dosyasında güncellenen dosyalarla ilgili kayıtlar olmaz. Olası biçemleme karakterlerinin tam listesi için, rsyncd.conf(5) kılavuz sayfasındaki log format seçeneğinin açıklamasına bakılabilir.

--log-file belirtildiği durumda bu seçenekle BİÇEM olarak "%i %n%L" belirtilmedikçe öntanımlı biçem kullanılır.

Ayrıca bkz: Artalan sürecinin --log-file-format seçeneği.

Dosya aktarımıyla ilgili ayrıntılı istatistileri çıktılanmasını ve rsync’in delta-aktarım algoritmasının verileriniz için ne kadar etkili olduğunun anlaşılmasını sağlar. Bu seçenek, -v seçeneği ile birlikte veya değil, --info=stats2’ye; 2 veya daha fazla -v seçeneğiyle birlikte --info=stats3’e eşdeğerdir.

Geçerli istatistikler:

  • Dosya sayısı dizinler, sembolik bağlar, vb. dahil (genel anlamda) "dosya"ların toplam sayısıdır. Toplamı, dosya türleri ve bunların sayıları (sıfır olmadıkça) izler. Örnek: "(reg: 5, dir: 3, link: 2, dev: 1, special: 1)" normal dosyalar, dizinler, sembolik bağlar, aygıt dosyaları, özel dosyalar ve bunların toplamlarını gösterir. Sayısı 0 olanlar listeye dahil edilmez.
  • Oluşturulan dosya sayısı, yeni oluşturulan (genel anlamda) "dosya"ların (güncellenenler değil) toplam sayısıdır. Toplamı, dosya türleri ve bunların sayıları (sıfır olmadıkça) izler.
  • Silinen dosya sayısı, silinen (genel anlamda) "dosya"ların toplam sayısıdır. Toplamı, dosya türleri ve bunların sayıları (sıfır olmadıkça) izler. Bu satır sadece silmeler etkili ise ve yalnızca 31. protokol (rsync 3.1.x için öntanımlıdır) kullanımdaysa çıktılanır.
  • Aktarılan normal dosyaların sayısı, rsync’in delta aktarım algoritması üzerinden güncellenen normal dosyaların sayısıdır. Dizinler, sembolik bağlar, vb. dahil değildir. Başlığa "regular" sözcüğü rsync 3.1.0’da eklenmiştir.
  • Aktarımdaki tüm dosyaların toplam boyutu. Toplama dizinler ve özel bağlar dahil edilmez fakat sembolik bağların boyutları dahildir.
  • Aktarılmış toplam dosya sayısı.
  • Değişmez veriler, güncellenen dosyaların yeniden oluşturması için alıcıya gönderilmiş eşleşmeyen dosya güncelleme verisi miktarıdır.
  • Eşleşen veriler, güncellenen dosyaları yeniden oluştururken alıcının yerel olarak sahip olduğu veri miktarıdır.
  • Dosya listesi boyutu, göndericinin alıcıya gönderdiği dosya listesi verilerinin miktarıdır. rsync’in listeyi gönderirken yinelenen verileri bir miktar sıkıştırması nedeniyle dosya listesinin bellekteki boyutundan daha küçüktür.
  • Dosya listesi üretim süresi, gönderenin dosya listesini oluşturmak için harcadığı saniye sayısıdır. Bu, gönderen tarafta günümüz rsync’lerinden birini gerektirir.
  • Dosya listesi aktarım süresi, gönderenin dosya listesini alıcıya göndermek için harcadığı saniye sayısıdır.
  • Gönderilen toplam bayt sayısı, rsync’in istemci tarafının sunucu tarafına gönderildiği tüm baytların sayısıdır.
  • Alınan toplam bayt sayısı, rsync’in istemci tarafının sunucu tarafından aldığı iletiler hariç toplam bayt sayısıdır. "iletiler hariç" bayt sayısı, sunucunun bize gönderdiği ayrıntılı iletilerin baytlarını saymadığımız anlamına gelir, bu da istatistiklerin daha tutarlı olmasını sağlar.

-8, --8-bit-output
Bu, rsync’e, geçerli yerelde geçerli olup olmadıklarını görmek ve geçersiz olanları öncelemek için sınamaya çalışmak yerine, tüm yüksek bitli karakterlerin çıktıda öncelenmeden bırakılmasını sağlar. Bu seçeneğe bakılmaksızın, tüm denetim karakterleri (ancak sekmeler hariç) öncelenir.

2.6.7 sürümünden itibaren yüksek bitli karakterler ters eğik çizgi (\) ve diyez (#) iminden sonra 3 sekizlik rakam ile ifade edilmektedir. Örneğin satır sonu karakteri "\#012" ile ifade edilir. Dosya ismindeki ters eğik çizgi imlerinin ardından bir diyez imi ve 3 sekizlik rakam gelmedikçe ters eğik çizgiler öncelenmez.

Sayıları insan tarafından okunabilir biçemde çıktılar. Olası 3 düzey vardır:

1.
Büyük sayılar 3 rakamlık kümeler halinde aralarına (yerele göre) nokta veya virgül konarak ayrıştırılır.
2.
1000’lik birimlerle çıktılama yapılır (sonek olarak tek karakterlik birimlerle -- aşağıya bkz).
3.
1024’lük birimlerle çıktılama yapılır.

Öntanımlı düzey 1’dir. Her -h seçeneği düzeyi 1 arttırır. 0. seviyeyi belirmek için seçeneği --no-human-readable (--no-h) biçiminde kullanmak gerekir (Sayılar sadece rakamlardan oluşur).

2. ve 3. seviyede eklenen birim harfleri: K (kilo), M (mega), G (giga), T (tera), P (peta). Örneğin, 1234567 baytlık dosya 2. seviyede 1,23M olarak çıktılanırdı (yerelde ondalık kısmın virgül ile ayrıldığı varsayımıyla).

3.1.0’dan önceki rsync sürümleri, 1. düzeyi desteklemez ve öntanımlı olarak düzey 0’dır. Bu nedenle, bir veya iki -h seçeneğinin belirtilmesi, öncesinde --no-h seçeneği belirtilmedikçe rsync sürümüne bağlı olarak farklı çıktılar üretilmesine sebep olacaktır. Tek fark için bkz: --list-only

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.

Bu seçenek, --partial seçeneğinin davranışını değiştirirken aynı zamanda örtük olarak etkinleştirir. Bu gelişmiş kısmi dosya yöntemi, kısmi dosyayı hedef dosyaya yazmak yerine, belirtilen DİZİN’e yerleştirir. Bir sonraki aktarımda, rsync, aktarımın yeniden başlamasını hızlandırmak için bu dizinde bulunan dosyayı veri olarak kullanacak ve amacına hizmet ettikten sonra onu silecektir.

--whole-file açıkça (veya örtük olarak) belirtilirse, dosya rsync’in delta-aktarım algoritması kullanılmadan gönderildiğinden, DİZİN içindeki güncellenmekte olan dosya ile ilgili kısmi dosyalarının basitçe kaldırılacağı unutulmamalıdır.

rsync, henüz yoksa, DİZİN’i oluşturacaktır, ancak sadece son dizini oluşturur, yolun tamamını değil. Bu, rsync’in gerektiğinde hedef dosyanın dizininde kısmi dizini oluşturmasını ve kısmi dosya silindikten sonra kaldırmasını sağlamak için göreli bir yol ("--partial-dir=.rsync-partial" gibi) kullanmayı kolaylaştırır. Mutlak bir yolun kısmi dizinin çalışması için ayrılmış özel bir dizini göstermesi beklendiğinden, bu dizin kaldırma işleminin yalnızca göreli yol için yapıldığı unutulmamalıdır.

DİZİN değeri mutlak bir yol değilse, rsync mevcut tüm dışlama kurallarının sonuna bir kural daha ekler. Bu, gönderen tarafta mevcut olabilecek herhangi bir kısmi dizin dosyasının gönderilmesini ve ayrıca alıcı taraftaki kısmi dizin öğelerinin zamansız silinmesini önleyecektir. Bir örnek: yukarıdaki --partial-dir seçeneği, diğer dışlama kurallarının sonuna bu "bozulabilir" dışlama kuralının eşdeğerini ekler: -f ’-p .rsync-partial/’

özel dışlama kuralları kullanılıyorsa, kısmi dizin için özel bir dışlama/gizleme/koruma kuralı eklemek gerekebilir. Çünkü,

1.
diğer özel kuralların sonuna otomatik eklenen bir kural etkisiz kalabilir veya
2.
rsync’in dışlama kuralını geçersiz kılmak gerekebilir.

Örneğin, rsync’in orada burada kalmış kısmi dizinleri temizlemesi istenirse, --delete-after belirtilmeli ve bir "risk" süzme kuralı eklenmelidir, örnek: -f ’R .rsync-kısmi/’. Geçerli çalıştırma sırasında kalan kısmi dizin verilerinden herhangi birini rsync’in kullanması gerekmedikçe --delete-before veya --delete-during seçeneklerini kullanmaktan kaçınılmalıdır.

Önemli:
--partial-dir dizinine diğer kullanıcılar yazamamalıdır, aksi güvenlik riskidir. Örneğin "/temp" dizini ASLA belirtilmemelidir!

Ayrıca DİZİN 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 yapıldığını ve .rsync-tmp dizininin eksik kalan aktarımı tamamlamak için komut satırında sadece -P seçeneği belirtilerek kullanıldığını 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 bkz).

Günümüz rsync’i, kısmi dizindeki bir dosyanın aktarımını sürdürdüğünde, bu kısmi dosya başka bir geçici dosya oluşturmak yerine, yerinde güncellenir (böylece hedef + kısmi + tmp yerine hedef + tmp’de azami çıktılama yapılır). Bunun için, aktarımın her iki ucunda da en az 3.2.0 sürümü rsync olması gerekir.

Sunucu yapılandırmasının refuse options ayarı, amacı gereği --partial-dir seçeneğinin --partial seçeneğini örtük olarak 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 vermemek amacıyla kullanılabilir.

Bu seçenek, güncellenen her dosyayı aktarımın sonunda isimleri değiştirilmek suretiyle hızlıca 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ği belirtilerek değiştirilebilir. Bu .~tmp~ dizininin aktarımdan nasıl hariç tutulacağı ve rsync’in ortalıkta kalan eski .~tmp~ dizinlerini nasıl temizleyeceği ile ilgili açıklamalar için bkz: --partial-dir. Bu seçenek ---inplace ve --append seçeneği ile birlikte kullanılamaz.

Bu seçenek --no-inc-recursive anlamına gelir çünkü üzerinde sonuna kadar yineleme yapabilmek için bellekte tam dosya listesine ihtiyaç duyar.

Bu seçenek alıcı tarafta daha fazla bellek kullanır (aktarılan dosya başına bir bit) ve ayrıca alıcı tarafta tüm güncellenmiş dosyaların ek bir kopyasını tutmak için yeterli boş disk alanı gerektirir. Ayrıca, aşağıdaki durumlar dışında --partial-dir için mutlak yol kullanılması gerekir:

1.
Mutlak yol kullanıldığında güncellenen tüm dosyalar aynı dizine konulduğundan aktarılan dosyalar arasında aynı isimde dosya olmaz ve
2.
dosyaların bulunduğu yerde adları değiştirilemezse gecikmiş güncellemeler başarısız olacağından dizin hiyerarşisi içinde dosya sistemi bağlama dizinleri bulunamaz.

Ayrıca, çok daha atomik bir güncelleme algortiması içeren, rsync paketinin "support" alt dizinindeki "atomic-rsync" python betiğine de bakılabilir (--link-dest seçeneğini ve dosyalar için paralel bir hiyerarşi kullanır).

Dizinler dışında çocukları olmayan iç içe dizinler dahil tüm boş dizinlerin silinmesini sağlar. Gönderen rsync içerme/dışlama/süzme kurallarını kullanarak dosya hiyerarşisini ardışık olarak tararken bir sürü gereksiz dizin oluşmasını önlemek için yararlıdır.

--min-size seçeneği gibi aktarım kurallarının kullanımının dosya listesine girenleri etkilemediği ve bu nedenle bir dizindeki dosyalardan hiçbiri aktarım kuralıyla eşleşmese bile dizinleri boş bırakmadığı unutulmamalıdır.

Dosya listesi gerçekte budandığından, bu seçenek ayrıca bir silme etkin olduğunda hangi dizinlerin silineceğini de etkiler. Ancak, hariç tutulan dosya ve dizinlerin, hem kaynak dosyaları gizleme hem de hedef dosyaları koruma kurallarıyla hariç tutulan bazı öğelerin silinmesini engelleyebileceği unutulmamalıdır. Bunun nasıl önleneceğini öğrenmek için bozulabilir süzme kuralına bakılabilir.

Genel bir koruma (protect) süzgeci kullanarak dosya listesinden belirli boş dizinlerin budanmasını önleyebilirsiniz. Örneğin, bu seçenek "emptydir" dizininin dosya listesinde tutulmasını sağlar:

--filter ’protect emptydir/’

Burada, bir hiyerarşideki tüm .pdf dosyalarını kopyalayan, yalnızca .pdf dosyalarını tutmak için gereken hedef dizinleri oluşturan ve hedefteki gereksiz dosyaların ve dizinlerin kaldırılmasını sağlayan bir örnek verilmiştir (dışlama kuralı yerine kullanılan ’hide,! */’ dizin olmayanları gizleme süzgecine dikkat):

rsync -avm --del --include=’*.pdf’ -f ’hide,! */’ kaynak/ hedef

Gereksiz hedef dosyaların silinmesi istenmiyorsa, gizleme (hide) süzgecinin yerine zamanı daha iyi kullanan --include=’*/’ --exclude=’*’ seçenekleri kullanılabilirdi.

Aktarımın ilerleyişini gösteren bilgilerin basılmasını sağlar. Bu, sıkılmış bir kullanıcıya izlenecek bir şeyler verir. Günümüz rsync’inde, --info=flist2,name,progress seçeneği örtük olarak öntanımlıdır, ancak kullanıcı tarafından sağlanan --info seçenekleri önceliklidir (örneğin --info=flist0 --progress).

rsync’in normal bir dosyayı aktarırken göstediği ilerleme satır şuna benzer:

782448  63%  110.64kB/s    0:00:04

Bu örnekte, gönderici dosyasının %63’ü olan 782448 baytın saniyede 110.64kB hızla indirilerek alıcıda oluşturulduğu, aktarım hızı aynı kaldığı takdirde aktarımın 4 saniye sonra biteceği ifade edilmektedir.

Bu istatistikler, rsync’in delta-aktarım algoritması kullanımdaysa yanıltıcı olabilir. Örneğin, gönderenin dosyası temel dosyanın ardından ek verilerden oluşuyorsa, alıcıya değişmez veriler ulaştığında rapor edilen hız muhtemelen önemli ölçüde düşecek ve dosyanın eşleşen kısmını bitirmek için aktarımın tamamlanması muhtemelen alıcının tahmin ettiğinden çok daha uzun sürecektir.

Dosya aktarımı bittiğinde rsync ilerleme satırına şöyle bir satır yerleştirir:

1,238,099 100%  146.38kB/s    0:00:08  (xfr#5, to-chk=169/396)

Bu örnekte, dosya toplamda 1.238.099 bayt uzunluğundaydı, tüm dosya için ortalama aktarım hızı saniyede 146,38 kilobayttı ve aktarım 8 saniyede tamamlandı. Bu, mevcut rsync oturumunda normal bir dosyanın 5. aktarımıydı. Dosya listesindeki toplam 396 dosyadan alıcıda güncel olup olmadıklarına bakılacak 169 dosya daha var.

Artırımlı bir özyineleme taramasında, rsync, taramanın sonuna ulaşana kadar dosya listesindeki toplam dosya sayısını bilmeyecek, ancak tarama sırasında dosyaları aktarmaya başladığından, (artırımlı özyineleme denetimi anlamında) "ir-chk" metnini içeren bir satır görüntüleyecektir. Listenin tam boyutununun saptandığı noktaya gelindiğinde "ir-chk" yerini "to-chk" metnine bırakacaktır. Yani, "ir-chk" ifadesini gördüğünüz sürece, dosya listesindeki denetlenecek dosya sayısı giderek artacaktır (aktarılan her dosya ayrıca bu listeye eklenecektir).

--partial --progress seçenekleri 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.

Ayrıca, istatistikleri tek tek dosyalar yerine tüm aktarıma dayalı olarak veren bir --info=progress2 seçeneği de vardır. Çok sayıda adın ekranı kaydırmadan aktarımın ilerleyiş izlenmek isteniyorsa, bu seçeneğin bir dosya adı çıktısı verdirmeden kullanılması gerekir (örneğin -v seçeneğinden kaçınılabilir veya --info=name0 belirtilebilir). --info=progress2’yi kullanmak için --progress seçeneğinin belirtilmesi gerekmez.

Son olarak, rsync’e SIGINFO veya SIGVTALRM sinyali göndererek anında ilerleme raporu alınabilir. BSD sistemlerinde, Ctrl+T tuşları SIGINFO sinyali oluşturulur (Linux şu anda bir SIGINFO sinyalini desteklememektedir). İstemci süreci bu sinyallerden birini aldığında, mevcut dosya aktarımının bittiğini bildirecek ilerleme raporu çıktısını üreten bayrağı tanımlar (sinyal geldiğinde büyük bir dosya aktarılıyorsa bu işlem biraz zaman alabilir). Bir dosya adının (gerekirse) ardından ilerleme bilgisinin --info=progress2 biçimi gelir. 3 rsync sürecinden hangisinin istemci süreci olduğu bilinmeksizin, hepsinin sinyallenmesinde sakınca yoktur (çünkü istemci olmayan süreçler sinyali yok sayar).

SIGVTALRM sinyali 3.2.0 öncesi rsync’in (kahrından) ölmesine sebep olur.

Uzak rsync sunucusuna erişim için parola içeren bir dosya belirtebilmeyi sağlar. DOSYA olarak - belirtilirse standart girdi okunur. Dosya içinde parolayı içerek tek bir satır bulunmalıdır (kalan satırlar yok sayılır). DOSYA herkesçe okunabilen bir dosya ise ya da root sahibi olmadığı bir parola dosyası belirterek rsync’i çalıştırıyorsa rsync hata vererek çıkar.

Bu seçenek ssh gibi bir uzak kabuk aktarımına parola sağlamaz. Bu işlemin uzak kabukra nasıl yapılacağını öğrenmek için kullanılacak kabuğun belgelerine bakılabilir. Aktarım için uzak kabuk kullanıldığı durumda bu dosya uzak kabuk oturumunun kimlik kanıtlama işlemi bittikten sonra etkili olur (yani, artalan sürecinin yapılandırma dosyasında belirtilmiş bir parola varsa kimlik kanıtlaması için bu dosya okunur).

Bu seçenek, rsync’in standart girdideki "aktarım öncesi" betiğine 5K’ya kadar veri gönderebilmeyi sağlar. Bu verilerin olası kullanımlarından biri, komut dosyasına (bir "aktarım sonrası" betiğiyle sistemden ayrılması gerekecek) şifrelenmiş bir dosya sistemini bağlamak için kullanılabilecek bir anahtar vermektir.

Artalan sürecinin sürümü en az 3.2.1 olmalıdır.

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 kullanım alanları şunlardır:

1.
Hedef içeren bir kopyalama komutunu dosya listeleme komutuna dönüştürmek için
2.
Birden fazla kaynak belirtebilmek için. Dikkat: Hedefin de eklenmesi gerekir.

Joker karakterli bir kaynak girdisinin kabuk tarafından birden çok girdiye genişletildiği unutulmamalıdır, bu nedenle bu seçeneği kullanmadan böyle bir girdi ile listeleme asla güvenli değildir. Örnek:

rsync -av --list-only foo* hedef/

rsync 3.1.0 ve sonrasında, --list-only ile çıktılanan boyutlar --human-readable seçeneğinden etkilenmektedir. Öntanımlı olarak rakam gruplaması uygulanacak olsa da daha yüksek seviyeden okunabilirlik birim sonekli değerler sağlayacaktır. Tüm okunabilirlik düzeylerinde boyut sütunlarının genişliğinin 11 karakterden 14’e yükseleceği unutulmamalıdır. Boyutların sadece rakamlardan oluşmasını sağlamak ve eski 11 karakterlik sütun genişliğine dönmek için --no-h seçeneği belirtilebilir.

2.6.3 öncesi bir rsync’den dosyaların uzaktan listelenmesini isterken, özyinelemeli olmayan bir listeleme istenirse bir hata oluşabilir. Bunun nedeni, dosya listeleme işleminde örtük olarak --recursive olmaksızın --dirs seçeneğinin uygulanması ve eski rsync’lerin bu seçeneğe sahip olmamasıdır. Bu sorunu önlemek için --no-dirs seçeneği belirtilebilir (dizinin içeriğini genişletmek gerekmiyorsa) veya özyineleme etkinleştirilip alt dizinlerin içeriği dışlanabilir: -r --exclude=’/*/*’.

Soket üzerinden azami veri aktarım hızının KiB/s cinsinden belirtilebilmesini sağlar. HIZ belirtilirken ondalık değer belirtilebilir ve değerin sonuna birim eklenebilir (--bwlimit=1.5m gibi). Hiçbir sonek belirtilmezse 1024 baytlık birimler ("K" veya "KiB") öntanımlıdır. 0 değeri hız kısıtlaması olmadığını belirtir. Kullanılabilir soneklerin listesi için bkz: --max-size

Geriye uyumluluk için hız sınırı en yakın KiB birime yuvarlanabilir. Yani, 1024 b/s’den küçük hız belirtilemez.

rsync veriyi soketlere bloklar halinde yazar ve bu seçenek hem blokların yazılması hem de ortalama aktarım hızını istenen hızda tutmaya çalışmak amacıyla kullanılır. rsync’in veri bloğunu yazarken uyuduğu durumlarda ortalama hızı tutturmaya çalışırken bazı hız aşımları görülebilir.

Verilerin dahili arabelleğe alınması nedeniyle, --progress seçeneği, verilerin gönderim hızını doğru şekilde yansıtmayabilir. Bunun nedeni, bazı dosyaların verileri hızlıca arabelleğe alındığında hızlıca gönderiliyor gibi görünmesi ya da çıktı arabelleğinin boşaltılması sırasında gönderimin yavaşlamış gibi görünmesidir. Bu durum, gelecekteki bir sürümde düzeltilebilir.

Ayrıca bkz: Artalan sürecininin --bwlimit seçeneği.

--time-limit seçeneğinin kullanımı artık önerilmemektedir.

Belirtilen SÜRE geçtiğinde rsync’in kopyalamayı durdurmasını sağlar.

Azami esneklik için, bir tarafın çıkması bağlantıyı sonlandırdığından bu seçenek uzak tarafa gönderilmez. Bağlantının yalnızca bir tarafı bu seçeneği desteklese bile seçeneğin kullanımına izin verilir. Gerektiğinde, --remote-option (-M) seçeneği kullanılarak uzak tarafın bağlantıyı sonlandırması istenebilir.

Belirtilen zamana ulaşıldığında rsync’in kopyalamayı durdurmasını sağlar. Tarih ve zamanın tamamı yerel zaman diliminde yıl-ay-günTsaat:dakika biçeminde (2000-12-31T23:59 gibi) belirtilebilir. Tarih belirtirken tire yerine eğik çizgi kullanılabilir.

Değer çeşitli şekillerde kısaltılabilir, örneğin 2 rakamlı yıl belirtilebildiği gibi bazı değerler hiç belirtilmeyebilir. Her durumda, sağlanan zaman bilgisiyle eşleşen zamanda kopyalama durdurulur. Geçerli zamanın veya geçmişin belirtilmesi durumunda rsync hata vererek çıkar.

Örneğin, "1-30" 30 Ocak yerel zamanla gece yarısını, "14:00" bir sonraki ös 2’yi, "1" gelecek ayın 1. gününün geceyarısını, "31" gelecek 31 çeken ayın 31. gününün geceyarısını, "59" ise geçerli saatin 59. dakikasını ifade eder.

Azami esneklik için, bir tarafın çıkması bağlantıyı sonlandırdığından bu seçenek uzak tarafa gönderilmez. Bağlantının yalnızca bir tarafı bu seçeneği desteklese bile seçeneğin kullanımına izin verilir. Gerektiğinde, --remote-option (-M) seçeneği kullanılarak uzak tarafın bağlantıyı sonlandırması istenebilir. Uzak konağın öntanımlı zaman diliminin yerel zaman diliminden farklı olabileceği hesaba katılmalıdır.

Alıcı tarafın aktarımı biten her dosyaya fsync yapmasına sebep olur. Bu aktarımı yavaşlatsa da önemli dosyaları güncellerken huzuru sağlamaya yardımcı olabilir.

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 bkz: TOPLU İŞLEM DOSYASI KİPİ bölümü ve --only-write-batch seçeneği.

Bu seçenek uzlaşılmış sağlama toplamını ve sıkıştırma listelerini geçersiz kılar ve her zaman eski tarz md5/md4/zlib seçimlerine dayalı bir seçim üzerinde uzlaşım sağlar. Daha güncel bir seçim istenirse, --checksum-choice (--cc) ve/veya --compress-choice (--zc) seçenekleri kullanılabilir.

Toplu işlem dosyası oluşturulurken hedef sistemde hiçbir güncelleme yapılmaması dışında --write-batch gibi çalışır. Bu, değişikliklerin başka yollarla hedef sisteme taşınmasına ve ardından değişikliklerin --read-batch yoluyla uygulanmasına olanak tanır.

Toplu işlem dosyası doğrudan taşınabilir ortamlara yazılabilir: Bu ortam, aktarım bitmeden önce kapasitesini doldurursa, bu kısmi aktarım hedefe uygulanabilir ve geri kalanını almak için tüm süreç tekrarlanabilir (çoklu güncelleme döngüsü devam ederken hedef sistemin kısmen güncellenmiş olması umursanmadığı takdirde).

Ayrıca, değişiklikleri uzak bir sisteme gönderirken bant genişliğinin önemli olmadığı unutulmamalıdır. Çünkü toplu işlem dosyası, verilerin kablo üzerinden akmasına gerek kalmadan göndericiden alıcıya yönlendirilmesine olanak tanır (çekerken, gönderen uzakta olduğundan toplu işlem dosyası oluşturamazsınız).

Evvelce --write-batch ile oluşturulan DOSYA içindekileri uygular. Eğer DOSYA olarak "-" belirtilirse dosya verisi standart girdiden okunur. Ayrıntılar için TOPLU İŞLEM DOSYASI KİPİ bölümüne bakınız.

Daha eski bir protokol sürümünü kullanmaya zorlar. Bu, daha eski bir rsync sürümüyle uyumlu bir toplu iş dosyası oluşturmak için kullanışlıdır. Örneğin, --write-batch seçeneğiyle rsync 2.6.4 kullanılıyorsa, ancak --read-batch seçeneğini çalıştırmak için rsync 2.6.3 kullanılacaksa, eski protokol sürümünü zorlamak için toplu iş dosyası oluşturulurken "-⁠-⁠protocol=28’ kullanılmalıdır (okuyan sistemde rsync’in yükseltilmeyeceği varsayımıyla).

rsync, bu seçeneği kullanarak dosya adlarını karakter kümeleri arasında dönüştürebilir. DÖNÜŞÜM olarak "." değeri belirtilerek, rsync’e öntanımlı karakter kümesinin yerel tanımına göre aranması sağlanabilir. Ayrıca, yerelin ve hedefin karakter kümesi --iconv=YEREL,HEDEF biçeminde virgülle ayrılarak da (--iconv=iso88599,utf8 gibi) belirtilebilir. Bu sıra, dosyaları gönderirken veya alırken seçeneğin aynı kalmasını sağlar. Son olarak, herhangi bir dönüştürmeyi engellemek için --no-iconv veya DÖNÜŞÜM olarak "-⁠" belirtebilirsiniz. Bu seçeneğin öntanımlı değeri konağa özeldir ve ayrıca RSYNC_ICONV ortam değişkeni ile de dönüşüm belirlenebilir.

Yerel iconv(1) kitaplığının desteklediği karakter kümesi adlarının listesi için "iconv --list" komutu çalıştırılabilir.

--protect-args (-s) seçeneğini belirtilirse, rsync komut satırında belirtilen dosya adlarını gönderen taraf dönüştürecektir. Ayrıca bkz: --files-from

rsync’in süzme dosyalarında (içerilen/dışlanan dosyalar dahil) herhangi bir ad dönüşümü yapmadığını unutulmamalıdır. Aktarımın her iki tarafıyla da eşleşecek kuralların belirtildiğinden emin olunmalıdır. Örneğin, iki tarafta da hesaba katılması gereken dosya adı farklılıkları varsa, fazladan içerme/dışlama kuralları belirtilebilir.

Bir --iconv seçeneği buna izin veren bir rsync artalan sürecine iletildiğinde, artalan süreci, gerçekte ilettiğiniz uzak karakter kümesinden bağımsız olarak "charset" yapılandırma seçeneğinde belirtilen karakter kümesini kullanır. Bu nedenle, bir artalan süreci aktarımı için yalnızca yerel karakter kümesini belirtmek yeterlidir (--iconv=utf8 gibi).

-4, --ipv4, --6, --ipv6
rsync’e soketleri oluştururken veya ssh çalıştırırken IPv4/IPv6 tercih etmesini söyler. Bu sadece rsync’in doğrudan kendi denetimi altındaki soketleri ve uzak kabuk olarak kullanılan ssh ile anlaşabilmek için -4 veya -6 seçeneğinin ssh’ye iletilmesini etkiler. Diğer uzak kabuklar için IPv4 durumunda doğrudan "--rsh SHELL -4" veya IPv6 durumunda "--rsh SHELL -6" seçeneğini belirtmek gerekebilir.

Ayrıca bkz: Artalan süreci --ipv4 seçeneği.

rsync, IPv6 desteği olmadan derlendiyse, --ipv6 seçeneğinin hiçbir etkisi olmaz. Bu durumda rsync --version çıktısı "IPv6 yok" dizgesini içerir.

MD4 sağlama toplamı tohumunun SAYI olarak belirtilebilmesini sağlar. Bu 4 baytlık tohum her blok ve dosyanın MD4 sağlama toplamı hesaplamasında kullanılır (günümüz MD5 sağlama toplamları tohum kullanmaz). Öntanımlı tohum o an için time(3) kullanılarak sunucu tarafından üretilir. Bu seçenek, yinelenebilir blok sağlama toplamları isteyen uygulamalar için ya da kullanıcının daha rastgele bir tohum kullanmak istediği yerlerde kullanışlıdır. SAYI olarak sıfır değeri verilirse öntanımlı tohum kullanılır.

ARTALAN SÜRECİ SEÇENEKLERİ

rsync artalan süreci başlatılırken kullanılan seçenekler:

Bu seçenek rsync’in artalanda çalışacağını belirtir. Başlattığınız sunucuya bir rsync istemcisi konak::modül veya rsync://konak/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 bkz: rsyncd.conf(5)

Öntanımlı olarak rsync, --daemon seçeneği ile başlatıldığında ya da bir rsync sunucuya bağlanırken bir joker 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 konak kullanımını mümkün kılar.

Ayrıca, rsyncd.conf(5) kılavuz sayfasındaki address seçeneğinin açıklamasına da bakılabilir.

Sunucu sürecinin gönderdiği veri için azami aktarım hızını KiB/s cinsinden belirtmek için kullanılır. İstemci bu durumda bile bir --bwlimit değeri belirtebilir, ancak HIZ’dan büyük değerlere izin verilmez.

Ayrıca bkz: İstemci --bwlimit seçeneği.

Öntanımlı yapılandırma dosyasında farklı bir yapılandırma dosyası belirtmek için kullanılır. Artalan 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.

Bu seçenek, rsync artalan süreci kipinde başlatılırken bir artalan süreci yapılandırma seçeneğini tanımlamak için kullanılabilir. İlk modülün tanımından önce seçeneğin genel ayarların sonuna eklenmesine eşdeğerdir. İstenirse seçenek adları boşluksuz olarak belirtilebilir. Örnek:

rsync --daemon -M pidfile=/yol/rsync.pid

Artalan süreci 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ı olabilir. 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.

Artalan süreci tarafından öntanımlı olarak kullanılan 873. port yerine başka bir port belirtmek için kullanılır.

Ayrıca istemci --port seçeneğinin ve rsyncd.conf(5) kılavuz sayfasındaki port seçeneğinin açıklamasına da bakılabilir.

Yapılandırma dosyasındaki "log file" seçeneğinde belirtilen dosyanın yerine kullanılacak günlük DOSYAsını belirtmek için kullanılır.

Ayrıca bkz: İstemci --log-file seçeneği.

Yapılandırma dosyasındaki "log format" seçeneğinde belirtilen dizge yerine kullanılacak olan BİÇEM dizgesini belirtmek için kullanılır. Ayrıca, değeri boş dizge değilse "transfer logging" seçeneğini etkinleştirir, aksi takdirde aktarım günlüklemesi kapatılır.

Ayrıca bkz: İstemci --log-file-format seçeneği.

rsyncd.conf(5) dosyasındaki socket options seçeneği ile aynı sözdizimine sahip olup onu geçersiz kılar.

Ayrıca bkz: İstemci --sockopts seçeneği.

Artalan sürecinin başlatılması sırasında günlük bilgilerinin miktarını arttırmak için kullanılır. Artalan sürecinin, 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.

Ayrıca bkz: İstemci --verbose seçeneği.

-4, --ipv4, --6, --ipv6
rsync artalan sürecinin bağlantıları dinleyeceği soketleri oluştururken IPv4/IPv6 tercih etmesini sağlarlar. Çekirdekteki bir IPv6 hatası nedeniyle Linux’un eski sürümlerinde bu seçeneklerden biri gerekli olabilir (port kullanılacağı zaman "adres zaten kullanımda" hatası alınıyorsa, rsync artalan sürecini başlatırken --ipv6 veya --ipv4 belirtmek gerekebilir).

Ayrıca bkz: İstemci --ipv4 seçeneği.

rsync, IPv6 desteği olmadan derlendiyse, --ipv6 seçeneğinin hiçbir etkisi olmaz. Bu durumda rsync --version çıktısı "IPv6 yok" dizgesini içerir.

--daemon seçeneğinden sonra belirtilirse, rsync artalan süreci 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 kural kullanırsanız, kuralı belirteç’ten ayıran ’,’ isteğe bağlıdır. Ardından gelen (varsa) kalıp veya dosyaismi bir boşluk veya alt çizgiden sonra yazılmalıdır. Kullanılabilecek kural önekleri:


uzun kısa açıklama
-------------------------- 1. exclude - dışlama kalıbı belirtir 2. include + içerme kalıbı belirtir. 3. merge . ek kuralları okumak için birleştirilecek dosyayı belirtir. 4. dir-merge : bir dizin içi birleştirme dosyası belirtir. 5. hide H aktarımdan gizlenen dosyalar için kalıp belirtir. 6. show S aktarımdan gizlenmeyen dosyalar için kalıp belirtir. 7. protect P silinmekten korunan dosyalar için kalıp belirtir. 8. risk R silinmekten korunmayan dosyalar için kalıp belirtir. 9. clear ! geçerli içerme/dışlama listesini temizler (girdi almaz)

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 eder. Bir kalıp "- " (tire ve boşluk) veya "+ " (artı ve boşluk) ile başlamıyorsa, kural (içerme seçeneği için) "+ " veya (dışlama seçeneği için) "- " önekli bir dizge olarak yorumlanır. Diğer yandan, bir --filter seçeneği, kuralın başlangıcında daima kısa veya uzun bir kalıp adı içermelidir.

Ayrıca, her bir --filter, --include ve --exclude seçeneği tek bir kalıp/kural alır. Çok sayıda kalıp/kural eklemek için komut satırında bu seçenekler yinelenebilir veya --filter, --include-from ve --exclude-from seçeneklerinin birleştirme dosyası sözdizimi kullanılabilir.

İçerme/Dışlama Kalıpları

Yukarıda SÜZME KURALLARI bölümünde bahsedildiği gibi dosyalar "+", "-" vb. süzme kuralları kullanılan kalıplar belirtilerek içerilebilir ya da dışlanabilir. İçerme ve dışlama kurallarının her birinde aktarılacak dosyaların isimleriyle eşleşen kalıplar belirtilir. Bu kalıplar çeşitli biçimler alabilir:

Eğer kalıp bir / ile başlıyorsa, dosya hiyerarşisi içinde belli bir noktaya demirlenir, aksi takdirde dosya yolunun sonuna eşlenir. Bu düzenli ifadelerde kalıbı ^ ile başlatmaya benzer. Örneğin, "/foo" kalıbı ya (genel bir kural için) "aktarımın kökü"ndeki ya da (dir-merge kuralı için) birleştirme dosyasının dizinindeki "foo" isimli 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 alt dizinlere doğru ardışık olarak uygulanır; yani, her yol elemanı sonunda bir dosya ismi olacak şekilde ele alınır. Demirlenmemiş "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ği İçerme/Dışlama Kalıplarının Kök Dizinle İlişklendirilmesi bölümünde ayrıntılı olarak açıklanmıştır.
Eğer kalıp bir / ile bitiyorsa, sadece bir dizinle eşleşir, bir dosya, sembolik bağ ya da aygıtla değil.
Eğer kalıp *?[ dosyaismi kalıp karakterlerinden birini içeriyorsa, ifade sınarak ya kabuğun dosyaismi eşleştirme kuralları ya da basit bir dizge eşleştirmesi kullanılır.
Tek yıldız ("*") herşeyle eşleşecek ama eğik çizgilerde (/) duracaktır.
Çift yıldız ("**") eğik çizgiler dahil herşeyle eşleşir.
Soru imi ("?") eğik çizgi (/) hariç her karakterle eşleşir.
Köşeli ayraç ("[") [a-z] veya [[:alpha:]] gibi bir karakter sınıfı başlatır.
Bir joker kalıbında ters eğik çizgi bir joker karakteri öncelemekte kullanılabilir, ancak öncelediği bir joker karakter değilse öncelediği karakterin eşleşmesini sağlar. Bir kalıp, hiçbir şey içermeyen bir kalıba kıyasla joker karakter içerdiğinde, fazladan bir ters eğik çizgi kaldırma düzeyi var demektir. Örneğin, “foo\bar” dizgesinde "\b"nin tek başına "b" haline gelmemesi gerekiyorsa dizgeye ters eğik çizgiyle eşleşen bir önceleme eklemek gerekiyor demektir, bu durumda dizge “foo\\bar*" olarak belirtilmelidir.
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 tam yolun son bileşeni ile eşleştirilir (algoritmanın altdizinlere inilerek uygulandığını hatırlayın, yani "tam yol" başlangıç dizininden başlayarak son dizine kadar yolun herhangi bir parçası ile eşleşebilir).
Sondaki “bir_dizin/***” kalıbı [3 yıldıza dikkat!] hem dizinle (“bir_dizin/" belirtilmiş gibi) hem de dizindeki her şeyle ("bir_dizin/**" belirtilmiş gibi) eşleşir. Bu davranış 2.6.7 sürümünde eklenmiştir.

--recursive (-r) seçeneğini (örtük olarak -a ile uygular) kullandığınızda, soldan sağa her yolun her alt bileşeni ziyaret edilir, yani içerme/dışlama kalıpları alt dizinlere de inilerek her alt bileşenin tam ismine uygulanır. rsync göndereceği dosyaları ararken, dışlama kalıpları aslında dizin basamaklama aşamasını kısa devre eder.

Örneğin, "/foo/bar/baz" içerilirken "/foo" ve "/foo/bar" dışlanmaz). Eğer bir kalıp belli bir üst dizini dışlıyorsa, bir düzey 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.

Bir üst dizinin dışlanması "*" ile biten bir kural kullanılı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 ettirecek bir çözüm "+ */" kuralının listeye dahil edilmesi ("- *" kuralından önce herhangi bir yere yerleştirilebilir) ve belki --prune-empty-dirs seçeneğinin de kullanılmasıdır. 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" kalıbı *.o ile eşleşen tüm dosya isimlerini dışlar.
  • "- /foo" kalıbı aktarımın kök dizinindeki "foo" isimli dosyayı/dizini dışlar.
  • "- foo/" kalıbı "foo" isimli her dizini dışlar.
  • "- /foo/*/bar" kalıbı aktarımın kök dizinindeki "foo" dizininden iki seviye aşağıdaki "bar" isimli her dosyayı dışlar.
  • "- /foo/**/bar" kalıbı aktarımın kök dizinindeki "foo" dizininden iki veya daha alt seviyedeki "bar" isimli her dosyayı dışlar.
  • "+ */", "+ *.c" ve "- *" kalıplarının birleşimi, tüm dizinler ve C kaynak dosyaları dışında herşeyi dışlar.
  • "+ foo/", "+ foo/bar.c" ve "- *" kalıplarının birleşimi ise sadece "foo" dizinini ve "foo/bar.c" dosyasını içerecektir ("foo" dizini açıkça içerilmelidir yoksa "*" tarafından dışlanırdı).

"+" veya "-" iminin ardından kabul edilen değiştiriciler;

  • / değiştircisi, içerme/dışlama kuralının geçerli öğenin mutlak yol adıyla eşleşmesi gerektiğini belirtir. Örneğin, "-/ /etc/passwd" kalıbında, "/etc" dizininden dosya gönderilirken passwd dosyası aktarıma dahil edilmez; "-⁠/ dizin/foo" kalıbında ise, "dizin" alt dizini aktarımın kökü bile olsa içindeki "foo" dosyası aktarıma dahil edilmez.
  • ! değiştircisi, içerme/dışlama kuralının kalıp eşleşmediği takdirde etkili olmasını sağlar. Örneğin, "-! */" dışlama kuralı dizin olmayan herşeyi dışlar.
  • C değiştircisi, tüm küresel CVS-dışlama kurallarının "-C" yerine dışlananlar olarak eklenmesi gerektiğini belirtmek için kullanılır. Hiçbir girdi kabul etmez.
  • s değiştircisi, kuralın gönderen taraf için geçerli olduğunu belirtmek için kullanılır. Gönderen tarafı etkileyen bir kural dosyaların aktarılmasını engeller. Öntanımlı kuralların gönderen taraf kuralları haline gelmesini sağlayan --delete-excluded belirtilmediği sürece öntanımlı kurallar her iki tarafı da etkiler. Gönderen taraf içerme/dışlama kurallarını belirtmenin başka bir yolu hide (H) ve show (S) kurallarını kullanmaktır.
  • r değiştircisi, kuralın alıcı tarafa uygulanacağını belirtmekte kullanılır. Alıcı tarafı etkileyen bir kural, dosyaların silinmesini engeller. Daha fazla bilgi için üstteki s değiştiricisinin açıklamasına bakılabilir. Alıcı taraf içerme/dışlama kurallarını belirtmenin başka bir yolu (protect (P) ve (risk( (R) kurallarını kullanmaktır.
  • p değiştircisi, bir kuralın bozulabilir olduğunu, yani silinmekte olan dizinlerde yok sayılacağını belirtir. Örneğin, --cvs-exclude (-C) seçeneğinin "CVS" ve "*.o" gibi şeyleri dışlayan öntanımlı kuralları bozulabilir olarak imlenir ve kaynaktan kaldırılan bir dizinin hedeften silinmesini engellemez.
  • x değiştircisi, xattr kopyalama/silme işlemlerinde xattr adlarını etkileyen kuralı belirtir (ve bu nedenle dosya/dizin adları eşleştirilirken yoksayılır). Hiçbir xattr eşleştirme kuralı belirtilmezse, öntanımlı xattr süzme kuralı kullanılır (bkz: --xattrs seçeneği).

Birleştirme Dosyası Süzme Kuralları

Yukarıda SÜZME KURALLARI bölümünde bahsedildiği gibi merge (.) ya da dir-merge (:) süzme kuralı belirtilerek tüm dosyalar süzme kurallarıyla birleştirilebilir.

İki çeşit birleştirme dosyası vardır: tek dosyalık (’.’) ve dizin içi dosyalar (’:’). Tek dosyalık bir birleştirme dosyası bir defa okunur ve "." kuralındaki süzme listesi ile birlikte işleme sokulur. Dizin içi birleştirme dosyası türünde ise, rsync adım adım bütün alt dizinleri tarayarak ismi belirtilen dosyayı buldukça dosya içeriğini o anki kural listesine ekler. Bu dizin içi kural dosyaları aktarımın 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 da aktarılmaları gerekecektir (aşağıda, Diziniçi Birleştirme 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:

- belirteci, dosya içi açıklamalar hariç başka bir kural çözümlemesi olmaksızın, dosyanın sadece dışlama kalıplarından oluşması gerektiğini belirtir.
+ belirteci, dosya içi açıklamalar hariç başka bir kural çözümlemesi olmaksızın, dosyanın sadece içerme kalıplarından oluşması gerektiğini belirtir.
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 dosya ismi belirtilmemişse dosya isminin ".cvsignore" olduğu varsayılır.
e belirteci, birleştirme dosyasını aktarımdan dışlayacaktır; örneğin, "dir-merge,e .rules" kuralı "dir-merge .rules" ve "- .rules" kuralları gibidir.
n belirteci, kuralların alt dizinlerde miras alınmayacağını belirtir.
w belirteci, kurallar için satırlara bölme değil boşluklara göre sözcük ayırma uygulanacağını belirtir. Bu ayrıca açıklamalara da izin vermeyecektir.

Kuraldan öneki ayıran boşluklar özel olarak ele alınır, yani "- foo + bar" dizgesi iki kurala ayrılacaktır (önek çözümlemesinin iptal edilmediği varsayımıyla).

Dosya öntanımlısından okunan kuralları zorlarken "+" veya "-" kuralları için yukarıdaki değiştiricilerden herhangi biri belirtilebilir (kullanışsız olacağından ! değiştiricisi hariç). Örneğin, "dir-merge,s .filt" ve ":sC" kurallarının herbiri sadece gönderen tarafta uygulanacak dizin içi birleştirme kurallarını oluştururken, "merge,-/ .excl" kuralıyla .excl dosyasının içeriği mutlak yol dışlamaları olarak ele alınır. Birleştirme kuralı etkilenecek tarafları belirtiyorsa (s veya r değiştiricisi veya her ikisi aracılığıyla), dosyadaki kurallar tarafları belirtmemelidir (bir değiştirici veya hide gibi bir kural öneki aracılığıyla).

dir-merge kuralları n belirteci kullanılmadıkça birleştirme 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 birleştirme 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 birleştirme dosyasında bir liste temizleme kuralına ("!") rastlandığında, sadece o birleştirme dosyasının bulunduğu noktaya kadar miras alınan kurallar temizlenir.

Tek dosyalık kuralın dir-merge dosyasından miras alınmasını engellemenin diğer bir yolu, dosyanın başına bir / getirmektir. Bir diziniçi birleştirme dosyasındaki bu tür kurallar birleştirme 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 belirtilebilecek örnek süzme dosyası:

merge /home/user/.global-filter
- *.gz
dir-merge .rules
+ *.[ch]
- *.o
- foo*

Bu, /home/user/.global-filter dosyasının içeriğini listenin başına ekler ve ayrıca ".rules" dosyasını dizin içi süzme dosyasına dönüştürür. Dizin taraması başlatılmadan önce okunan tüm kurallar, (aktarımın köküyle eşleşen eğik çizgi gibi) genel sabitleme kurallarının sonuna eklenir.

Eğer bir dizin içi birleştirme 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ç (bkz: -F seçeneği),

--filter=’: /.rsync-filter’

rsync’e .rsync-filter dosyasını, aktarımın bir parçası olarak gönderilen dizinlerde normal dosya taramasına başlamadan önce aktarımın üst dizini aracılığıyla kökten aşağı doğru tüm dizinlerde aramasını söyler (Bilgi: bir rsync artalan süreci için kök dizin daima modülün “path” değeridir).

Dizin içi birleştirme dosyaları için bu tarz ön tarama örnekleri:

rsync -avF /kaynak/yol/ /hedef/dizin
rsync -av --filter=’: ../../.rsync-filter’ /kaynak/yol/ /hedef/dizin
rsync -av --filter=’: .rsync-filter’ /kaynak/yol/ /hedef/dizin

İlk iki komut ".rsync-filter" dosyasını "/kaynak/yol" içinde aramaya başlamadan önce "/" ve "/kaynak" dizinlerinde arama yapar. Son komut ise, üst dizin taramasından kaçınır ve ".rsync-filter" dosyasını sadece aktarımın parçası olan dizinlerde arar.

".cvsignore" dosyasının içeriği kalıplara dahil etmek istenirse, ":C" kuralı kullanılmalıdır. Bu kural, .cvsignore dosyalarını dizin içi birleştirme 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ı isteniyorsa kuralların arasına bu noktada ":C" kuralı yerleştirilebilir. Bu olmaksızın, rsync .cvsignore dosyası için dir-merge kuralını diğer kurallarının sonuna ekleyecektir (komut satırı seçeneklerinden 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 ekleyecektir. 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 belirtmek yerine, kurallarınıza bir "-C" kuralı eklemelisiniz; ö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. "Geçerli" liste ya genel kural listesi (kural, süzme seçenekleri çözümlenirken saptanmışsa) ya da dizin içi birleştirme 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 (birleştirme dosyasının dizini ile ilişklendirilen dizin içi kalıplarının tersine). Aktarımı, göndericiden alıcıya bir isim alt ağ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ştirmede kullanılan yolu etkiler. Aşağıda bu davranış örneklenmiştir.

Biri "/home/ben/foo/bar", diğeri "/home/sen/bar/baz" olan iki dosya olsun. Aşağıda bu iki dosyanın çeşitli komut kullanımlarındaki farklı aktarımları 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, ismin önüne bir / koymak ve --verbose kullanarak çıktıya bakmaktır (dosyalar kopyalanmadan önce komutu kuru kuruya çalıştırıp neler olacağını görmek için, --dry-run seçeneği kullanılabilir).

Diziniçi Birleştirme Kuralları ve Silme

Bir silme seçeneği olmaksızın, diziniçi birleştirme kuralları sadece gönderen tarafı ilgilendirir, dolayısıyla aktarımı etkilemeksizin birleştirme dosyaları rahatça dışlanabilir. Bunu kolayca yapmanın yolu, örnekte görüldüğü gibi bu dışlamayı sağlayacak ’e’ belirtecini eklemektir. Bu iki komut eşdeğerdir:

rsync -av --filter=’: .hrc’ --exclude=.hrc konak:kaynak/dizin /hedef
rsync -av --filter=’:e .hrc’ konak: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 birleştirme 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 konak:kaynak/dizin /hedef

Yine de, birleştirme dosyaları aktarımın bir parçası değilse, ya bazı genel dışlama kuralları belirtilmeli (komut satırında belirtilebilir) ya da alıcı tarafta diziniçi birleştirme dosyalarının bulunması sağlanmalıdır. İ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 konak:kaynak/dizin /hedef

Bu örnekte ek.kuralım dosyası aktarımın her iki tarafını da etkileyebilir, fakat gönderen taraftaki kurallar, diziniçi birleştirme kuralından sonra belirtildiğinden, .kural dosyasındaki kurallardan daha düşük öncelikli olurlar

Aşağıdaki örnekte, uzak taraf .rsync-filter dosyalarını aktarımdan dışlamaktadır, ancak 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 birleştirme 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:

rsync -av --filter=’:e /.rsync-filter’ --delete \

konak:kaynak/dizin /hedef rsync -avFF --delete konak:kaynak/dizin /hedef

TOPLU İŞLEM DOSYASI KİPİ

Toplu işlem dosyası kipi bir çok sistem için aynı olan güncellemeleri uygularken kullanılabilir. Bir dizin ağacının çok sayıda konak üzerinde kopyalarının bulunduğunu varsayalım. Şimdi, kaynak ağacında bazı değişiklikler olduğunu ve bunların diğer konaklara da aktarılması gerektiğini varsayalım. Bu işlemi toplu işlem dosyası kipini kullanarak 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 "toplu işlem dosyası" içinde saklanmasını sağlar.

Toplu iş dosyasını bir kez oluşturmak, birden çok hedef ağacı güncellerken dosya durumu, sağlama toplamı ve veri bloğu oluşturma işlemlerini her defasında yeniden gerçekleştirme zorunluluğundan kurtarır. Aynı verileri her konağa ayrı ayrı göndermek yerine, toplu güncelleme dosyalarını birçok konağa aynı anda aktarmak için çok noktaya yayın aktarım protokolleri kullanılabilir.

Kaydedilen değişiklikleri diğer hedef ağaçlara uygulamak için rsync, bu dosyanın ismi --read-batch seçeneğinde belirtilerek çalıştırılır. rsync, toplu işlem 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, toplu işlem dosyasının isminin sonuna ".sh" eklenerek oluşturulur. Bu .sh dosyası toplu işlem dosyasını kullanarak hedefi güncelleyecek komut satırını içerir. Bir Bourne (ya da 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 dosya oluşturulurken kullanılandan farklı olduğu durumlarda yararlıdır.

Örnekler:

$ rsync --write-batch=foo -a konak:/kaynak/dzn/ /hedef1/dzn/
$ scp foo* uzak:
$ ssh uzak ./foo.sh /hedef2/dzn/
$ rsync --write-batch=foo -a /kaynak/dzn/ /hedef1/dzn/
$ ssh uzak 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ğı toplu veri /hedef2/dzn/ dizinine gönderilerek güncellenir. Bu iki örnek arasındaki farklar toplu işlem dosyalarının hangi esneklikte kullanılabileceğini göstermek içindir:

İlk örnek ilk kopyanın yerel olmayacağını gösterir -- her iki yönde de aktarım için uzak kabuk sözdizimi veya rsync artalan süreci sözdizimi kullanılabilir.
İlk örnek uzak konak üzerinde --read-batch seçenekli komutu çalıştırırken doğru rsync seçeneklerini oluşturulan "foo.sh" dosyasından alır.
İkinci örnek toplu işlem verisini standart girdiden okur, böylece toplu işlem dosyasının önce uzak konağa kopyalanması gerekmez. Bu örnek, değiştirilmiş bir --read-batch seçeneğinin kullanılmasını gerektirdiğinden "foo.sh" betiği kullanılmamıştır, fakat betiği kullanmak için dosya düzenlenebilir (ancak, başka bir seçeneğin (--exclude-from=- gibi) standart girdiyi kullanmadığından emin olunmalıdır).

Yetersizlikler

--read-batch seçeneği, hedef ağacın, betiğin oluşturulduğu hedefteki ağaçla aynı olacağı varsayımına dayanır. Hedef ağaçta bir fark saptandığında işlem ya bir uyarı ile 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 toplu okuma işleminin yeniden başlatılmasının güvenli olması gerektiği anlamına gelir. Eğer toplu güncellemenin dosyanın boyutuna ve tarihine bakılmaksızın daima yapılabilmesi istenirse, -I seçeneği kullanılabilir (toplu işlem dosyası okunurken). Eğer bir hata oluşursa, hedef ağaç bir ihtimal, kısmen güncellenmiş durumda olacaktır. Bu durumda, rsync toplu güncelleme ile değil, normal işlemle kullanılarak hedef ağaç düzeltilebilir.

Tüm hedeflerde kullanılan rsync sürümü, toplu işlem dosyasını üretmekte kullanılan kadar yeni olmalıdır. Eğer, toplu işlem dosyasının protokol sürümü onu okuyan rsync’in sürümünden daha yeni ise rsync bir hata vererek sonlanacaktır. Ayrıca, eski bir rsync sürümünün anlayabileceği rsync üretimi bir toplu işlem dosyasının oluşturulma yöntemi için --protocol seçeneğine bakılabilir. (2.6.3 sürümünde toplu işlem dosyalarının biçemi değiştiğinden, bu sürümden eski ve yeni sürümlerin toplu işlem dosyaları bir diğerinde çalışmayacaktır.)

Bir toplu işlem dosyası okunurken, siz belirtmemiş olsanız bile, işlem dosyası üretilirken kullanılan ve 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 seçeneği 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 toplu işlem 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şturulur. BİLGİ: --archive seçeneği örtük 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üvenli" 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üne /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.

--safe-links seçeneğinin etkili olabilmesi için --links seçeneğinin de belirtilmesi gerekir.

Mutlak yol içeren (/ ile başlayan) sembolik bağlarla, boş ve bulunulan dizinden daha yukarıdaki dizinleri gösteren ".." bileşenlerini içeren sembolik bağlar güvensiz olarak kabul edilir.

Sembolik bağ seçeneklerinin yorumlanışı aşağıda özetlenmiştir. Liste öncelik sırasına göredir, bu nedenle kullanılan seçeneklerin tamamını içeren bir şık yoksa en yakın kısmi eşleşmeyi içeren ilk şık kullanılmalıdır:

1.
--copy-links Tüm sembolik bağlar dizin veya dosyaya dönüştürülür (diğer seçeneklerden etkilenebilecek hiçbir sembolik bağ bırakmamacasına).
2.
--copy-dirlinks Dizin sembolik bağları gerçek dizinlere dönüştürülür, diğer tüm sembolik bağlar aşağıdaki gibi ele alınır.
3.
--links --copy-unsafe-links Güvenli olmayan sembolik bağlar dosyalara dönüştürülür, güvenli olanların tamamı oluşturulur.
4.
--copy-unsafe-links Güvenli olmayan sembolik bağlar dosyalara dönüştürülür, güvenli olanlar uyarı verilerek atlanır.
5.
--links --safe-links Alıcı, aktarımda bulunan güvenli olmayan sembolik bağları oluşturmayı atlar ve güvenli olanları oluşturur.
6.
--links - Tüm sembolik bağlar oluşturulur.

--munge-links seçeneğinin etkili olduğu durumlar için seçeneğin açıklamasına bakılmalıdır.

--keep-dirlinks seçeneği aktarımdaki sembolik bağları değil alıcı taraftaki dizin sembolik bağlarının ele alınışını etkiler. Seçeneğin açıklamasında bu konuda bir uyarı bulunmaktadır.

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ü uyuşmazlığı -- kabuğunuz temiz mi?) iletisidir.

Bu ileti genellikle, rsync’in aktarım için kullandığı akım üzerinde istenmeyen veriler üreten uzak kabuk oluşumları ya da başlatma betiklerinizden kaynaklanır. Bu soruna tanı koymanın yolu, uzak kabuğu şöyle çalıştırmaktır:

ssh uzakkonak /bin/true > out.dat

Bundan sonra oluşturulan out.dat dosyasına bakılmalıdır. Herşey yolunda gitmişse dosya sıfır uzunlukta olacaktır. Eğer yukarıdaki hata alınıyorsa, dosya bazı veriler içerecektir. Dosyanın içeriğine bakarak bunları nelerin üretebileceği bulunmaya çalışılmalıdır. Ç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 için, -vv seçeneği belirtilebilir. 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, iki olasılık var:

  • 64 bitlik dosyaları desteklemeyen bir platformda bu tür dosyalarla çalışılmak isteniyordur.
  • İstemci tarafından desteklendiği halde sunucu tarafından desteklenmeyen bir seçenek kullanılmıştır.

5 - Sunucu/istemci protokolü başlatılırken hata.
6 - Artalan süreci günlüğe kayıt ekleyemiyor
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
25 - --max-delete sebebiyle silme işlemi durdu
30 - Veri aktarımında zamanaşımı
35 - Artalan süreci bağlantısı için sürenin dolması bekleniyor

ORTAM DEĞİŞKENLERİ

.cvsignore dosyalarındaki gibi yoksayılacak kalıpları belirtmek için kullanılır. Daha fazla bilgi için bkz: --cvs-exclude

--iconv seçeneğinin öntanımlısını belirtmek için kullanılır. 3.0.0 sürümünden itibaren desteklenmektedir.

--old-args seçeneğinin öntanımlı olarak etkin olması için "1", tekrarlanan seçenek durumunun etkin olması için bir veya daha fazla sayıda "2" veya öntanımlı olarak etkin ise iptal etmek için "0" atanabilir. Bu ortam değişkenine sıfırdan farklı bir değer atandığında, RSYNC_PROTECT_ARGS değişkeninin yerini alır.

--old-args, --no-old-args veya --protect-args seçeneği kullanıldığında bu değişken yok sayılır.

3.2.4 sürümünden itibaren desteklenmektedir.

--protect-args seçeneğinin öntanımlı olarak etkin olması için sıfırdan farklı bir değer atanmalıdır. Öntanımlı olarak etkin ise iptal etmek için "0" atanmalıdır.

--old-args, --no-old-args veya --protect-args seçeneği kullanıldığında bu değişken yok sayılır.

3.1.0 sürümünden itibaren desteklenmektedir. 3.2.4 ve sonrasında RSYNC_OLD_ARGS değişkenine sıfırdan farklı bir değer atanmışsa bu değişken yok sayılır.

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çeneklerine --rsh (-e) seçeneğindeki gibi izin verilir.

rsync sunucusuna bağlanırken rsync istemcisi tarafından kullanılacak vekil sunucuyu belirtmek için kullanılır. Değeri bir konak:port çifti olarak belirtilmelidir.

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 değişkenleri bir rsync sunucusuna gönderilecek kullanıcı ismini belirlemek için kullanılır. Böyle bir tanım yapılmamışsa, öntanımlı kullanıcı ismi olarak "nobody" kullanılır. İkisine de tanımlama yapılmışsa USER önceliklidir.

Bu ortam değişkeni, kısmi aktarım etkinleştirmesi yapılmaksızın kısmi aktarım için kullanılacak dizini belirtir. Tüm ayrıntılar için --partial-dir seçeneğine bakılabilir.

Bu ortam değişkeni, ardışık bir sıra veya azaltılmış bir ad listesi belirterek sıkıştırma algoritması uzlaşımının özelleştirilmesine olanak tanır. Kullanılabilir sıkıştırıcıların adlarını görmek için rsync --version komutu kullanılabilir. Tüm ayrıntılar için --compress seçeneğine bakılabilir.

Bu ortam değişkeni, ardışık bir sıra veya azaltılmış bir ad listesi belirterek sağlama toplamı algoritması uzlaşımının özelleştirilmesine olanak tanır. Kullanılabilir sağlama toplamlarının adlarını görmek için rsync --version komutu kullanılabilir. Tüm ayrıntılar için --checksum-choice seçeneğine bakılabilir.

Bu ortam değişkeni, --max-alloc seçeneğinin yaptığı gibi ayrılabilecek azami bellek miktarını belirtmekte kullanılır.

Bu ortam değişkeni rsync tarafından okunmaz, bunun yerine rsync’in sunucu bağlantısıyla çalıştığı uzak kabuğun ortamında atanır. Bu, rsync-ssl(1) gibi bir betiğin, kullanıcının komut satırında belirttiği port numarasını bilmesini sağlar.

Kullanıcının öntanımlı .cvsignore dosyasını bulmakta kullanılır.

Bu ortam değişkeni, sunucu bağlantısı yaparken kullanılacak uygulamayı belirtmek için çoğunlukla hata ayıklama kurulumlarında kullanılır. Tüm ayrıntılar için bkz: RSYNC ARTALAN SÜRECİNE BAĞLANMAK

Bu ortam değişkeni, çoğunlukla RSYNC_CONNECT_PROG tarafından belirtilen uygulamanın çalıştırılacağı kabuğu belirtmek için hata ayıklama kurulumlarında kullanılır. Tüm ayrıntılar için bkz: RSYNC ARTALAN SÜRECİNE BAĞLANMAK

İLGİLİ DOSYALAR

/etc/rsyncd.conf veya rsyncd.conf

İLGİLİ BELGELER

rsync-ssl(1), rsyncd.conf(5), rrsync(1).

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. Bkz: --modify-window.
  • Dosya izinleri, aygıtlar, vs. temel sayısal değerleriyle aktarılır.
  • Ayrıca, bkz: --delete.
  • Lütfen hataları raporlayınız! Hataları raporlamak için bkz: https://rsync.samba.org/.

DAHİLİ SEÇENEKLER

--server ve --sender seçenekleri rsync tarafından dahili olarak kullanılır ve normal şartlar altında asla bir kullanıcı tarafından kullanılmamalıdır. Yalnızca bir rsync komutunu çalıştırabilen bir oturum açmak gibi belirli senaryolarda bu seçenekler hakkında biraz bilgi sahibi olmak gerekebilir. Örneğin, rsync paketinin support dizininde, kısıtlı bir ssh oturumu açmak için kullanılabilen rrsync (restricted -kısıtlı- rsync) adında örnek bir betik bulanmaktadır.

RSYNC HAKKINDA

rsync GNU kamu lisansı altında dağıtılmaktadır. Ayrıntılar için COPYING dosyasına bakılabilir.

Sanalyöremiz: https://rsync.samba.org/

Bu kılavuz sayfasında yanıtlarını bulamadığınız sorular için sanalyöremizde bir SSS bölümü bulunmaktadır.

rsync’in GitHub projesi: https://github.com/WayneD/rsync.

Bu uygulamayı beğeniyorsanı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

Gidenlere teşekkürler: John Van Essen, Matt McCutchen, Wesley W. Terpstra, David Dykstra, Jos Backus, Sebastian Krahmer, Martin Pool ve aramızdan ayrılan ama unutulmayan yoldaşımız J.W. Schultz’a.

Ayrıca, Richard Brent, Brendan Mackay, Bill Waite, Stephen Rothwell ve David Bell’e de teşekkür ederiz. Unuttuklarım varsa özür dilerim.

YAZAN

rsync ilk olarak Andrew Tridgell ve Paul Mackerras tarafından yazıldı. Daha sonra bir çok kişi tarafından geliştirildi. Şu an Wayne Davison tarafından sürdürülmektedir.

Destek ve geliştirme eposta listelerimiz için bkz: https://lists.samba.org

ÇEVİREN

© 2005, 2022 Nilgün Belma Bugüner
Bu çeviri özgür yazılımdır: Yasaların izin verdiği ölçüde HİÇBİR GARANTİ YOKTUR.
Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri yapmak için https://github.com/TLBP/manpages-tr/issues adresinde "New Issue" düğmesine tıklayıp yeni bir konu açınız ve isteğinizi belirtiniz.

15 Nisan 2022 rsync 3.2.4