RSYNC(1) | Kullanıcı Komutları | RSYNC(1) |
İSİM
rsync — hızlı, becerikli, uzak (ve yerel) dosya kopyalama aracı
KULLANIM
Yerel:
rsync |
[ SEÇENEK ... ] KAYNAK ... [HEDEF ] |
Uzak bağlantı:
Alım:
rsync |
[ SEÇENEK ... ] [KULL@ ] KONAK:KAYNAK ... [HEDEF ] |
Gönderim:
rsync |
[ SEÇENEK ... ] KAYNAK ... [KULL@ ] KONAK:HEDEF |
rsync sürecinden erişim:
Alım:
rsync |
[ SEÇENEK ... ] [KULL@ ] KONAK::KAYNAK ... [HEDEF ] |
rsync |
[ SEÇENEK ... ] rsync:// [KULL@ ] KONAK [:PORT ] /KAYNAK ... [HEDEF ] |
Gönderim:
rsync |
[ SEÇENEK ... ] KAYNAK ... [KULL@ ] KONAK::HEDEF |
rsync |
[ SEÇENEK ... ] KAYNAK ... rsync:// [KULL@ ] KONAK [:PORT ] /HEDEF |
HEDEF
belirtmeksizin yalnızca KAYNAK
belirtilen kullanımda kopyalama yapılmaz, kaynak dosyalar listelenir.
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 darsync://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.
Uyarı
Bazı sistemlerde ortam değişkenlerini tüm kullanıcılar görebilmektedir. Bu tür sistemlerde --password-file
seçeneğinin tercih edilmesi önerilir.
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 hedefkonak
taki (%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-kull
anıcısı ssh(1) seviyesinde kullanılmalıdır; rsync-kull
anı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.
-
--help
-
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. -
-V
,--version
-
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.
-
-v
,--verbose
-
Bu seçenek aktarım sırasında verilen bilgi miktarını arttırır. rsync öntanımlı olarak sessiz çalışır. Tek
-v
belirtildiğinde, hangi dosyaların aktarıldığını gösterip sonunda bir özet basar. İki-v
belirtildiğinde atlanan dosyaları gösterir ve sonunda daha fazla bilgi verir. İkiden fazla-v
kullanımı sadece rsync hata ayıklaması yapıyorsanız anlamlıdır.Ç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
=SEÇENEKLER
-
--info
çıktıda görmek istenilen bilgiler üzerinde ince ayar yapılabilmesini sağlar. HerSEÇ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
=SEÇENEKLER
-
--debug
çıktıda görmek istenilen bilgiler üzerinde ince ayar yapılabilmesini sağlar. HerSEÇ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/
-
--stderr
=errors|all|client
-
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:
-
errors
-
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.
-
all
-
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. -
client
-
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
veclient
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. -
-
-q
,--quiet
-
Bu seçenek aktarım sırasında verilen bilgi miktarını azaltır. Özellikle uzak sunucudaki bilgi iletileri baskılanır. Bu seçenek rsync'i
cron
'dan çalıştırırken yararlıdır. -
--no-motd
-
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.
-
-I
,--ignore-times
-
Normalde rsync hedefte de aynı boyutta ve aynı değişiklik zamanına sahip dosyalar varsa bunları atlayacaktır. Bu seçenek bu "hızlı sınama" davranışını 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. -
--size-only
-
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 normalde0
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. -
-c
,--checksum
-
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çenRSYNC_CHECKSUM_LIST
ortam değişkeni kullanılarak bu geçersiz kılınabilir. -
-a
,--archive
-
Bu seçenek
-rlptgoD
seçeneklerine eşdeğerdir. Alt dizinlere inerek işlem yapılmasını ve hemen hemen herşeyin korunmasını istemenin en kestirme yoludur; bir şey dışında:--files-from
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. -
--no-
SEÇENEK
-
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
-
-r
,--recursive
-
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. -
--i-r
,--inc-recursive
-
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. -
--no-i-r
,--no-inc-recursive
-
--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
-
-R
,--relative
-
Göreli dosya yolları kullanılır. Yani, komut satırının gönderici kısmında belirtilen dosya yolunun son parçası değil, dosya yolunun tamamı kopyalanır. Bu seçenek aynı anda çok sayıda 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ıdakifoo
vefoo/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/
-
--no-implied-dirs
-
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.
-
-b
,--backup
-
Bu seçenekle, evvelce mevcut hedef dosyaların her aktarımında ya da silinmesinde bu dosyaların isimleri değiştirilir. Yedek dosyaların nereye gideceğini ve nasıl bir sonek alacaklarını
--backup-dir
ve--suffix
seçenekleri ile belirtebilirsiniz.Eğer
--backup-dir
seçeneğini belirtmezseniz:-
--omit-dir-times
seçeneği etkin kılınır. -
--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-dir
=DİZİN
-
--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 belirtilenDİZİN
e 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 nedenleDİZİN
i silmemeye veya içine kopyalamamaya özen göstermek gerekir. -
--suffix
=SONEK
-
Bu seçenek
--backup
(-b
) ile kullanıldığında, belirtilenSONEK
öntanımlı yedekleme sonekinin yerine kullanılır. Öntanımlı sonek,--backup-dir
belirtilmemişse~
imi, belirtilmişse boş dizgedir. -
-u
,--update
-
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.
--inplace
ile birlikte kullanımKesintiye 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. -
--inplace
-
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.
Uyarı
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. -
-
--append
-
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.
-
--append-verify
-
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.Bilginize
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. -
-d
,--dirs
-
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. -
--mkpath
-
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ındanalt/dizin
dizinindebar
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ı hedeftealt/dizin/bar
dizini altında oluşturulacaktı:rsync -ai --mkpath foo alt/dizin/bar/
-
-l
,--links
-
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”
-
-L
,--copy-links
-
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”
-
--copy-unsafe-links
-
Bu seçenek rsync'e, kopyalanan ağacın dışındaki bir hedefi gösteren sembolik bağları kopyalamasını söyler. Mutlak sembolik bağlar ayrıca sıradan dosyalar olarak ele alınır, böylece bunlar
--relative
kullanıldığında kaynak dosya yolunun kendindeki sembolik bağlar 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”
-
--safe-links
-
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”
-
--munge-links
-
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 kodunsupport
dizinindeki "munge-symlinks" python betiğine de bakın. -
-k
,--copy-dirlinks
-
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”
-
-K
,--keep-dirlinks
-
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.Dikkat
--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”
-
-H
,--hard-links
-
Bu seçenek rsync'e, sabit bağları aynı kaynak sistemdeki gibi yeniden oluşturmasını söyler. Bu seçenek olmaksızın 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. -
-
-p
,--perms
-
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.) -
-
-E
,--executability
-
--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. -
-
-A
,--acls
-
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
. -
-X
,--xattrs
-
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ızcauser.*
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. -
--chmod
=KİP
-
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. -
-o
,--owner
-
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). -
-g
,--group
-
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). -
--devices
-
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. -
--specials
-
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. -
-D
-
"
--devices
--specials
" seçeneklerine eşdeğerdir. -
--copy-devices
-
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.
-
--write-devices
-
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.
Dikkat
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.
-
-t
,--times
-
Bu seçenek rsync'e, dosyaları değişiklik zamanlarına göre aktarmasını ve bunları uzak sistemde güncellemesini söyler. Bu seçenek kullanılmazsa, 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). -
-U
,--atimes
-
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.Bilginize
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. -
--open-noatime
-
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 sisteminizO_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. -
-N
,--crtimes
-
Hedef dosyanın oluşturulma zamanına kaynak dosyadaki değerin atanmasını sağlar.
-
-O
,--omit-dir-times
-
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. -
-J
,--omit-link-times
-
Değişiklik, erişim ve oluşturulma zamanlarını korumak için sembolik bağların atlanmasını sağlar.
-
--super
-
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. -
--fake-super
-
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. -
-S
,--sparse
-
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.Uyarı
3.1.3 öncesi rsync sürümlerinde
--sparse
ve--inplace
birlikte kullanılamaz. -
--preallocate
-
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. -
-n
,--dry-run
-
Bu seçenek rsync'e, herhangi bir dosya aktarımı yapmamasını, sadece yapıyormuş gibi işlemleri raporlamasını söyler. 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. -
-W
,--whole-file
-
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.
-
-no-W
,--no-whole-file
-
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. -
-cc
,--checksum-choice
=ALGO
-
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.
-
-x
,--one-file-system
-
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. -
--existing
,--ignore-non-existing
-
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.
-
--ignore-existing
-
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 iletiyiBİLGİ
soneki olmadan çıktılar. -
--remove-source-files
-
Bu seçenek rsync'e, hedefte yeni oluşturulan dosyalarla içeriği güncellenenleri, gönderen taraftan silmesini söyler. Dizinler ve aygıtlar ile sadece öznitelikleri değiştirilmiş dosyalar silinmez.
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.
-
--delete
-
Bu seçenek rsync'e, hedefte olup kaynakta olmayan dosyaları hedeften silmesini söyler, fakat sadece dosyalar dizinleri ile belirtilmişse bu yapılır. Yani, rsync'den tüm dizini ("
dir
" veya "dir/
" gibi) göndermesini istemeli, dizin içeriğini belirten dosya kalıpları ("dir/*
" gibi) belirtmemelisiniz. Dosya kalıpları belirtildiğinde kalıp kabuk tarafından yorumlanır ve kabuk rsync'den dosyaları kapsayan dizini değil, tek tek dosyaları aktarmasını ister. Aktarımdan dışlanan dosyalardan biriyse,--delete-excluded
kullanılmamışsa ya da kurallar sadece gönderen tarafla eşleşenleri imliyorsa hedefte silinecek olanlar da dışlanır ( “SÜZME KURALLARI” bölümündeki içerme/dışlama belirteçlerine bakınız).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
. -
--delete-before
-
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). -
--del
,--delete-during
-
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. -
--delete-delay
-
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. -
--delete-after
-
Alıcı taraftaki dosya silme işlemlerinin aktarım tamamlandıktan sonra yapılmasını sağlar. Eğer aktarımın bir parçası olarak dizin 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. -
--delete-excluded
-
Alıcı tarafta olup, gönderici tarafta olmayan dosyaların alıcı tarafta silinmesine ek olarak, alıcı tarafta dışlanan dosyalarında silinmesini sağlar (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. -
--ignore-missing-args
-
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. -
--delete-missing-args
-
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. -
--ignore-errors
-
G/Ç hataları olsa bile
--delete
işleminin sürdürülmesini sağlar. -
--force
-
Gönderici tarafta olmayan ancak alıcı tarafta olan dizinlerin içleri dolu bile olsa 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.Eski rsync sürümlerinde
--delete-after
kullanılırken--force
hala zorunluydu ve--recursive
seçeneği de etkinleştirilmediği takdirde işlevsel değildi. -
--max-delete
=SAYI
-
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). -
--max-size
=BOYUT
-
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. -
--min-size
=BOYUT
-
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. -
--max-alloc
=BOYUT
-
Ö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 kullanarakRSYNC_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. -
-B
,--block-size
=BOYUT
-
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ümlerBOYUT
olarak sadece bayt sayısı kabul ederdi. -
-e
,--rsh
=KOMUT
-
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 kabukKOMUT
'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şkene0
atanır. Ya darsync://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 edenRSYNC_RSH
ortam değişkeni kullanılarak da belirtilebilir.Ayrıca, bu seçenekten etkilenen
--blocking-io
seçeneğine de bakılabilir. -
--rsync-path
=UYGULAMA
-
Uzak makinede başlangıçta çalıştırılacak
UYGULAMA
yı 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/
-
-M
,--remote-option
=SEÇENEK
-
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.
-
-C
,--cvs-exclude
-
Sistemler arasında aktarımı istenmeyen geniş bir dosya kümesinin dışlanması için bir kısayol olarak kullanışlıdır. CVS'nin yoksayılacak dosyaları saptamakta kullandığı algoritma kullanılır.
Dış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 dosyalarlaCVSIGNORE
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. -
-f
,--filter=
KURAL
-
Bu seçenek aktarılacak dosyalar listesinden belli dosyaların seçilerek dışlanması için kurallar eklemenizi mümkün kılar. Bu seçenek alt dizinlerin ardışık aktarıldığı aktarımlarda kullanıldığında çok yararlıdır.
Dışlanacak dosyaların listesini oluşturmak içim komut satırında çok sayıda
--filter
seçeneği belirtebilirsiniz.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”
-
-F
-
Bu seçenek iki defa belirtildiğinde komuta iki
--filter
kuralı eklemeye eşdeğerdir. İlk seçenek şu kuralı ekler:--filter=’: /.rsync-filter’
Bu kural, rsync'in dizin hiyerarşisi dahilinde serpiştirilmiş
.rsync-filter
dosyalarına bakmasını ve aktarımda bu dosyalardaki süzme kurallarını kullanmasını sağlar.-F
seçeneği ikinci kez kullanılmışsa şu kuralı uygular:--filter=’- .rsync-filter’
Bu kural
.rsync-filter
dosyalarının kendilerinin aktarımdan dışlanmasını sağlar.Bu seçenek hakkında daha ayrıntılı bilgi için bkz: “SÜZME KURALLARI”
-
--exclude
=KALIP
-
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”
-
--exclude-from
=DOSYA
-
Bu seçenek, dışlama kurallarının belirtilen dosyadan alınmasını sağlaması dışında
--exclude
seçeneğinin benzeridir.DOSYA
içindeki boş satırlar, ’;
’ veya ’#
’ ile başlayan satırlar yoksayılır.DOSYA
olarak-
belirtilmişse, liste standart girdiden okunur. -
--include
=KALIP
-
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”
-
--include-from
=DOSYA
-
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. -
--files-from
=DOSYA
-
Bu seçeneği kullanarak aktarılacak dosyaların tam listesi belirtilebilir. Liste
DOSYA
dan ya da "-" belirtilmişse standart girdiden okunur. Ayrıca, bu seçenekle birlikte öntanımlı uygulanan seçeneklere bağlı olarak rsync'in öntanımlı davranışı kolayca değiştirilebilir:-
--relative
(-R
) seçeneği uygulanarakDOSYA
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.Bilginize
--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. -
--old-args
-
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. -
-s
,--protect-args
-
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.
-
--copy-as
=KULLANICI
[:GRUP
] -
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 paketininsupport
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/
-
-T
,--temp-dir
=DİZİN
-
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, belirtilenDİ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.) -
-y
,--fuzzy
-
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.Bilginize
--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. -
--compare-dest
=DİZİN
-
Bu seçenekle, alıcı makinede hedef dizinde olmayan dosyalar için karşılaştırmanın
DİZİN
e göre yapılacağı belirtilir. EğerDİ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 buDİZİN
lerin 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
Bilginize
3.1.0 ve üstü sürümlerde, belirtilen diğer
--compare-dest
DİZİN
lerde 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. -
--copy-dest
=DİZİN
-
Bu seçenek
--compare-dest
gibi davranır, ancak rsync ayrıcaDİ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İN
i 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çinDİ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
. -
--link-dest
=DİZİN
-
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çinDİ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.
Bilginize
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. -
-z
,--compress
-
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. -
-zc
,--compress-choice
=DİZGE
-
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 birzlib
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. -
-zl
,--compress-level
=SAYI
-
Ö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
vezlibx
sıkıştırmaları için geçerli değerler1
'den9
'a kadar olup6
öntanımlı değerdir.--zl=0
belirtilirse sıkıştırma yapılmaz.--zl=-1
ile öntanımlı olan6
. seviye sıkıştırma uygulanır.zstd
sıkıştırması için geçerli değerler-131072
'den22
'ye kadar olup3
öntanımlı değerdir.SAYI
olarak0
belitilirse öntanımlı öntanımlı olan3
. 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 daima0
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. -
--skip-compress
=LİSTE
-
Bilginize
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İSTE
yi 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İSTE
ye eklenir (artalan sürecinin listesi farklı bir öntanımlı liste ile yapılandırılabilir). -
--numeric-ids
-
Bu seçenekle rsync, her iki uçta kullanıcı ve grup isimlerini değil, kullanıcı ve grup kimliklerini eşleştirmeye çalışacaktır.
Öntanımlı olarak rsync, dosyaların sahibini belirlemekte kullanıcı ve grup isimlerini kullanır. Özel kullanıcı ve grup kimliği olan 0 kimliği, bu seçenek belirtilmemiş olsa bile, kullanıcı ve grup isimleriyle asla eşleştirilmez.
Eğer kullanıcı ve grup 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ındakiuse chroot
modül seçeneğinin açıklaması. -
--usermap
=DİZGE
,--groupmap
=DİZGE
-
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 fazlaGÖNDEREN:ALAN
değer çiftidir. Göndericiden gelen herhangi bir eşleşenGÖNDEREN
değeri, alıcıdan gelen birALAN
değeri ile değiştirilir.GÖNDEREN
veALAN
değerleri için kullanıcı adları veya kullanıcı kimlikleri belirtebilirsiniz veGÖ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 ya0
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ümGÖNDEREN
adları, gönderen tarafta kullanılanlarla, tümALAN
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 istenirseGÖ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. -
--chown
=KULLANICI:GRUP
-
Bu seçenek, tüm dosyaları
GRUP
grubundakiKULLANICI
'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
veyaGRUP
boşsa, atlanan kullanıcı/grup için eşleme olmaz.GRUP
boşsa, iki nokta imi atlanabilir, ancakKULLANICI
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. -
--timeout
=SÜRE
-
Bu seçenekle G/Ç zamanaşımını saniye cinsinden belirtebilirsiniz. Belirtilen süre içinde bir aktarım gerçekleşmezse, rsync işlemi sonlandırır. Öntanımlı değer, bir zamanaşımı olmadığını belirten
0
değeridir. -
--contimeout
=SÜRE
-
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.
-
--address
=ADRES
-
Ö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. -
--port
=PORT
-
Öntanımlı 873. port yerine kullanılacak portu belirtmek için kullanılır. URL sözdizimi port belirtmek için zaten bir yöntem içerdiğinden, bu sadece bir rsync sunucusuna "::" kullanarak bağlanıyorsanız gerekir.
Ayrıca bkz: Artalan süreci için
--port
seçeneği. -
--sockopts
=SEÇENEKLER
-
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. -
--blocking-io
-
Uzak kabuk aktarımı başlatılırken engellenebilen G/Ç kullanılmasını belirtir. Uzak kabuk
rsh
veyaremsh
ise, rsync öntanımlı olarak engellenebilen G/Ç, aksi takdirde engellenemeyen G/Ç kullanır (ssh ile engellenemeyen G/Ç tercih edilir). -
--outbuf
=KİP
-
Çıktı tamponlama kipini belirler.
KİP
None
(tamponsuz),Line
(satır tamponlu) veyaBlock
(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.
-
-i
,--itemize-changes
-
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çimiYXcstpoguax
dizgesine benzer. BuradaY
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:
-
c
-
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.Bilginize
Dosyaların gönderildiği rsync sürümü 3.0.1'den eskiyse sadece sağlama toplamları farklı normal dosyaları belirtir.
-
s
-
Normal dosyanın boyutlarının farklı olduğunu ve dosyanın aktarımla güncelleneceğini belirtir.
-
t
-
Değişiklik zamanının farklı olduğunu ve göndericinin değeri ile güncelleneceğini belirtir (
--times
gerektirir). Bazan bu karakterin yerineT
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.Bilginize
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.
-
p
-
İzinlerin farklı olduğunu ve göndericinin değeri ile güncelleneceğini belirtir (
--perms
gerektirir). -
o
-
Sahiplerin farklı olduğunu ve göndericinin değeri ile güncelleneceğini belirtir (
--owner
ve ayrıcalıklı kullanıcı yetkileri gerektirir). -
g
-
Grupların farklı olduğunu ve göndericinin değeri ile güncelleneceğini belirtir (
--group
ve grup atama yetkileri gerektirir). -
u
-
Erişim zamanının göndericidekinden farklı bir değere güncellendiğini belirtir (
--atimes
gerektirir). -
n
-
Oluşturulma zamanının göndericidekinden farklı bir değere güncellendiğini belirtir (
--crtimes
gerektirir). -
b
-
Erişim ve oluşturma zamanlarının ikisinin de güncellendiğini belirtir.
-
a
-
ACL bilgisinin değiştiğini gösterir
-
x
-
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). -
-
--out-format
=BİÇEM
-
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ındakilog 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. -
--log-file
=DOSYA
-
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-format
=BİÇEM
-
--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ındakilog format
seçeneğinin açıklamasına bakılabilir.--log-file
belirtildiği durumda bu seçenekleBİÇ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. -
--stats
-
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. -
-h
,--human-readable
-
Sayıları insan tarafından okunabilir biçemde çıktılar. Olası 3 düzey vardır:
-
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.
-
1000'lik birimlerle çıktılama yapılır (sonek olarak tek karakterlik birimlerle -- aşağıya bkz).
-
1024'lük birimlerle çıktılama yapılır.
Öntanımlı düzey
1
'dir. Her-h
seçeneği düzeyi1
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
. ve3
. seviyede eklenen birim harfleri:K
(kilo),M
(mega),G
(giga),T
(tera),P
(peta). Örneğin,1234567
baytlık dosya2
. seviyede1,23M
olarak çıktılanırdı (yerelde ondalık kısmın virgül ile ayrıldığı varsayımıyla).Geriye uyumluluk bilgisi
3.1.0'dan önceki rsync sürümleri,
1
. düzeyi desteklemez ve öntanımlı olarak düzey0
'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
-
-
--partial
-
Aktarım kesintiye uğramışsa, öntanımlı olarak rsync, aktarımı yarım kalmış dosyayı silecektir. Bazı durumlarda kısmen aktarılmış dosyaları silinmemesi istenebilir. Aktarımın bir sonraki bağlantıda tamamlanmasını hızlandırmak üzere kısmen aktarılmış dosyaların silinmemesi için bu seçeneği kullanabilirsiniz.
-
--partial-dir
=DİZİN
-
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, belirtilenDİ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ü,
-
diğer özel kuralların sonuna otomatik eklenen bir kural etkisiz kalabilir veya
-
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ğeriniRSYNC_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, kabuktaRSYNC_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,-
--inplace
seçeneğinin belirtilmiş olması (--inplace
seçeneği--partial-dir
ile çeliştiğinden), -
--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. -
-
--delay-updates
-
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:-
Mutlak yol kullanıldığında güncellenen tüm dosyalar aynı dizine konulduğundan aktarılan dosyalar arasında aynı isimde dosya olmaz ve
-
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). -
-
-m
,--prune-empty-dirs
-
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. -
--progress
-
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). -
-P
-
--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
veyaSIGVTALRM
sinyali göndererek anında ilerleme raporu alınabilir. BSD sistemlerinde,Ctrl+T
tuşlarıSIGINFO
sinyali oluşturulur (Linux şu anda birSIGINFO
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).Dikkat
SIGVTALRM sinyali 3.2.0 öncesi rsync'in (kahrından) ölmesine sebep olur.
-
--password-file
=DOSYA
-
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).
-
--early-input
=DOSYA
-
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.
-
--list-only
-
Bu seçenek dosyaların aktarılmasına değil, kaynak dosyaların listelenmesine sebep olur. Bu seçenek, eğer bir hedef belirtilmezse çalışır, dolayısıyla kullanım alanları şunlardır:
-
Hedef içeren bir kopyalama komutunu dosya listeleme komutuna dönüştürmek için
-
Birden fazla kaynak belirtebilmek için. Dikkat: Hedefin de eklenmesi gerekir.
Dikkat
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.Uyumluluk Bilgisi:
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='/*/*'
. -
-
--bwlimit
=HIZ
-
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. -
--stop-after
=SÜRE
,--time-limit
=SÜRE
-
--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. -
--stop-at
=yıl-ay-günTsaat:dakika
-
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. -
--fsync
-
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.
-
--write-batch
=DOSYA
-
Aynı hedefe yapılacak eşdeğer bir çağrı için
--read-batch
seçeneği ile kullanılmak üzere bir dosya oluşturur. Ayrıntılar için 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. -
--only-write-batch
=DOSYA
-
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).
-
--read-batch
=DOSYA
-
Evvelce
--write-batch
ile oluşturulanDOSYA
içindekileri uygular. EğerDOSYA
olarak "-" belirtilirse dosya verisi standart girdiden okunur. Ayrıntılar için “TOPLU İŞLEM DOSYASI KİPİ” bölümüne bakınız. -
--protocol
=SAYI
-
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). -
--iconv
=DÖNÜŞÜM
-
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
veyaDÖNÜŞÜM
olarak "-" belirtebilirsiniz. Bu seçeneğin öntanımlı değeri konağa özeldir ve ayrıcaRSYNC_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. -
--checksum-seed
=SAYI
-
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:
-
--daemon
-
Bu seçenek rsync'in artalanda çalışacağını belirtir. Başlattığınız sunucuya bir rsync istemcisi
konak::modül
veyarsync://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)
-
--address
=ADRES
-
Ö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. -
--bwlimit
=HIZ
-
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, ancakHIZ
'dan büyük değerlere izin verilmez.Ayrıca bkz: İstemci
--bwlimit
seçeneği. -
--config
=DOSYA
-
Ö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. -
-M
,--dparam
=SEÇENEKLER
-
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
-
--no-detach
-
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
veyasshd
üzerinden çalışıyorsa etkisizdir. -
--port
=PORT
-
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ındakiport
seçeneğinin açıklamasına da bakılabilir. -
--log-file
=DOSYA
-
Yapılandırma dosyasındaki "
log file
" seçeneğinde belirtilen dosyanın yerine kullanılacak günlükDOSYA
sını belirtmek için kullanılır.Ayrıca bkz: İstemci
--log-file
seçeneği. -
--log-file-format
=BİÇEM
-
Yapılandırma dosyasındaki "
log format
" seçeneğinde belirtilen dizge yerine kullanılacak olanBİÇ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. -
--sockopts
-
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. -
-v
,--verbose
-
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. -
-h
,--help
-
--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.
Bilginize
--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 yoluhide
(H
) veshow
(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 üsttekis
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şlemlerindexattr
adlarını etkileyen kuralı belirtir (ve bu nedenle dosya/dizin adları eşleştirilirken yoksayılır). Hiçbirxattr
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.Bilginize
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
veyar
değiştiricisi veya her ikisi aracılığıyla), dosyadaki kurallar tarafları belirtmemelidir (bir değiştirici veyahide
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.
Uyarı
--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:
-
--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). -
--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. -
--links
--copy-unsafe-links
Güvenli olmayan sembolik bağlar dosyalara dönüştürülür, güvenli olanların tamamı oluşturulur. -
--copy-unsafe-links
Güvenli olmayan sembolik bağlar dosyalara dönüştürülür, güvenli olanlar uyarı verilerek atlanır. -
--links
--safe-links
Alıcı, aktarımda bulunan güvenli olmayan sembolik bağları oluşturmayı atlar ve güvenli olanları oluşturur. -
--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
-
.cvsignore
dosyalarındaki gibi yoksayılacak kalıpları belirtmek için kullanılır. Daha fazla bilgi için bkz:--cvs-exclude
-
RSYNC_ICONV
-
--iconv
seçeneğinin öntanımlısını belirtmek için kullanılır. 3.0.0 sürümünden itibaren desteklenmektedir. -
RSYNC_OLD_ARGS
-
--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.
-
RSYNC_PROTECT_ARGS
-
--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_RSH
-
rsync tarafından kullanılan öntanımlı kabuğun yerine kullanılacak kabuğu belirtmek için kullanılır. Komut isminden sonra komut satırı seçeneklerine
--rsh
(-e
) seçeneğindeki gibi izin verilir. -
RSYNC_PROXY
-
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. -
RSYNC_PASSWORD
-
Kimlik kanıtlaması gerektiren bir rsync sunucusuna bağlanırken komut satırında parola belirtmek zorunda kalmamak için parola bu değişkene atanabilir. Aktarım ssh gibi bir kabuk üzerinden gerçekleştiriliyorsa bu değişkene bakılmayacaktır.
-
USER
veyaLOGNAME
-
USER
veyaLOGNAME
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ışsaUSER
önceliklidir. -
RSYNC_PARTIAL_DIR
-
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. -
RSYNC_COMPRESS_LIST
-
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. -
RSYNC_CHECKSUM_LIST
-
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. -
RSYNC_MAX_ALLOC
-
Bu ortam değişkeni,
--max-alloc
seçeneğinin yaptığı gibi ayrılabilecek azami bellek miktarını belirtmekte kullanılır. -
RSYNC_PORT
-
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.
-
HOME
-
Kullanıcının öntanımlı
.cvsignore
dosyasını bulmakta kullanılır. -
RSYNC_CONNECT_PROG
-
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”
-
RSYNC_SHELL
-
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
* Özgün Belgenin Lisans ve Telif Hakkı bilgileri: * * Routines common to more than one of the rsync processes. * * Copyright (C) 1996 Andrew Tridgell * Copyright (C) 1996 Paul Mackerras * Copyright (C) 2003-2022 Wayne Davison * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, visit the http://fsf.org website.