| 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://URLbiç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 hedefkonaktaki (%H) 873. porta (rsync artalan sürecine) ileten vekilkonak üzerinde nc(1) (netcat) çalıştırmak için ssh(1) kullanılmaktadır. Ayrıca, RSYNC_SHELL ortam değişkenine bir uygulama tanımlanırsa, RSYNC_CONNECT_PROG komutunu çalıştırmak için system(3) çağrısının öntanımlı kabuğu yerine bu uygulama kullanılır.
RSYNC ARTALAN SÜRECİNE UZAK KABUKTAN BAĞLANMAK
rsync artalan sürecinin, (isimli modüller gibi) çeşitli özelliklerini kullanarak, fazladan bir soket bağlantısı yapmadan, sisteme uzak kabukla bağlanmak bazen yararlıdır. rsync, bir konağa uzak kabuk kullanarak bağlanmayı ve ardından uzak kullanıcının ev dizinindeki bir yapılandırma dosyasını okuyacak tek kullanımlık bir "artalan" sunucusu çatallamayı destekler. Artalan süreci tarzı bir aktarımda verilerin şifrelenmek istenmesi durumunda bu yararlı olabilir, ancak artalan süreci uzak kullanıcı tarafından başlatıldığından, chroot(1) gibi özellikler kullanılamayabilir veya artalan süreci tarafından kullanılan kullanıcı kimliği değiştirilemeyebilir. (Artalan süreci aktarımını şifrelemenin başka bir yolu da, ssh(1) kullanarak yerel bir portu uzak bir konağa tünellemek ve uzak konaktaki normal rsync artalan sürecini yalnızca "localhost" bağlantılarına izin verecek şekilde yapılandırmaktır.)
Kullanıcı açısından, uzak kabuk bağlantısıyla uzak artalan süreci çatallayarak aktarımda, normal rsync artalan süreci aktarımında kullanılanla hemen hemen aynı komut satırı sözdizimi kullanılır. Tek fark, uzak kabuğun --rsh=KOMUT seçeneğiyle komut satırında açıkça belirtilmesi gerekliliğidir. (RSYNC_RSH ortam değişkeninin kullanımı aynı işlevselliği sağlamaz.) Örnek:
rsync -av --rsh=ssh konak::modul /hedef
Farklı bir uzak kabuk kullanıcısı belirtmeniz gerekiyorsa, konaktan önce belirtilen kullanıcının (kullanıcı tabanlı kimlik doğrulaması gerektiren bir modül için) rsync kullanıcısını belirttiğini unutmayın. Yani, --rsh seçeneğinin kısa sürümünün kullanıldığı aşağıdaki örnekte olduğu gibi, Uzak kabuk kullanıcısını, rsync kullanıcısından ayırmak için uzak kabuk komutunda '-l kullanıcı' seçeneğini kullanmak gerekir:
rsync -av -e "ssh -l ssh-kull" rsync-kull@konak::modul /hedef
ssh-kullanıcısı ssh(1) seviyesinde kullanılmalıdır; rsync-kullanıcısı ise "modul"e oturum açmak için kullanılacaktır.
Bu kullanımda, rsync artalan süreci ssh(1) tarafından sisteme erişilerek başlatılmaktadır (istenirse, ~/.ssh/authorized_keys dosyası üzerinden de zorlanabilir). Ancak, artalan sürecine (uzak kabuk uygulaması ile değil) doğrudan erişilecekse sürecin önceden çalıştırılmış olması gerekir.
BAĞLANTI BEKLEYECEK RSYNC ARTALAN SÜRECİNİ BAŞLATMAK
Bir rsync artalan sürecine bağlanabilmek için uzak sistemde rsync artalan sürecinin çalışmakta olması gerekir (veya belli bir porttan gelen bağlantıda bir rsync artalan sürecini çatallaması için inetd benzeri bir sürecin yapılandırılması gerekir). Gelen soket bağlantılarını işleyecek bir artalan sürecinin nasıl başlatılacağı hakkında bilgi için bkz: rsyncd.conf(5) -- bu, artalan sürecinin yapılandırma dosyasıdır ve artalan sürecinin nasıl çalıştırılacağına ilişkin tüm ayrıntıları içerir (artalan süreci ve inetd yapılandırmaları dahil).
Uzak kabuk aktarımlarından biri kullanılacaksa rsync artalan sürecini başlatmak gerekmez.
AKTARIM SIRALAMASI
rsync, belirtilen dosya adlarını her zaman dahili aktarım listesinde sıralar. Aynı adlı dizinlerin içerikleri birleştirilerek, yinelenen dosya adlarını kaldırmak kolaylaşır, yoksa dosyalar komut satırında verilenden farklı bir sırada aktarıldığında birilerinin kafası karışabilirdi.
Belli bir dosyanın diğerlerinden önce aktarılması gerekirse, dosyalar farklı rsync oturumlarında aktarılabileceği gibi --delay-updates seçeneği de kullanılabilir (ikincisi sıralı dosya aktarımını etkilemez ama son dosya güncelleme aşaması daha hızlı olur).
ÖRNEKLER
Burada rsync kullanımıyla ilgili bazı örneklere yer verilmiştir.
Büyük MS Word dosyaları ve eposta dizinlerinden oluşan eşimin ev dizinini yedeklemek için her gece bir PPP bağlantısı üzerinden bunları kendi makinemin arvidsjaur dizinine şöyle bir cron işi ile aktarıyorum:
rsync -Cavz . arvidsjaur:backup
Samba kaynak ağacını eşzamanlı tutmak için şu Makefile hedeflerini kullanıyorum:
get:
rsync -avuzb --exclude ’*~’ samba:samba/ .
put:
rsync -Cavuzb . samba:samba/
sync: get put
Bu sayede bağlantının öbür ucundaki bir CVS diziniyle benimkini güncellememi sağlıyor. Uzak makinede bir takım CVS işlemleri yaptıktan sonra uzak CVS protokolü ile bunları kendi makinemde güncellemek gecikmelerden dolayı pek verimli olmuyor.
"eski" ve "yeni" ftp sitelerim arasında bir dizini şu komutla yansılıyorum:
rsync -az -e ssh --delete ~ftp/pub/samba nimbus:"~ftp/pub/tridge"
Bu komut her saat başı cron(8)'dan çalıştırılıyor.
ÖZETLE SEÇENEKLER
Burada rsync'de kullanılabilen seçeneklerin bir özetine yer verilmiştir. Bu seçenekler bir sonraki bölümde ayrıntılı olarak açıklanmıştır.
--verbose, -v çıktı daha ayrıntılı olur
--quiet, -q hatalar dışında bilgi verilmez
--info=SÇNK ince taneli bilgilendirici ayrıntılama
--debug=SÇNK ince taneli hata ayıklayıcı ayrıntılama
--stderr=e|a|c std hata çıktı kipi değişir (ön: errors)
--quiet, -q hata olmayan iletiler baskılanır
--no-motd süreç kipi MOTD baskılanır
--checksum, -c sadece toplam sağlamaya bakılır, zaman ve
boyut değişikliklerine bakılmaz
--archive, -a arşiv kipi; -rlptgoD (-H'sız) ile aynı
--no-SEÇENEK belirtilen seçeneği olumsuzlar (--no-D gibi)
--recursive, -r dizinlerin alt dizinlerine inilir
--relative, -R göreli dosya yolları kullanılır
--no-relative --relative kapatılır
--no-implied-dirs -R uygulanmış dizinler gönderilmez
--backup, -b yedekleme yapılır (--suffix ve
--backup-dir seçeneklerine bakın)
--backup-dir=DİZİN sadece belirtilen dizinin içeriği
yedeklenir
--suffix=SONEK yedekleme soneki
(--backup-dir yoksa ~ öntanımlıdır)
--update, -u hedeftekiler daha yeniyse bu dosyalar
atlanır
--inplace hedef dosyaları yerinde günceller
--append hedef kısaysa ve eşit olacaksa veriyi ekler
--append-verify eski veri sağlama toplamına eklenir
--dirs, -d altdizinlere inmeden dizinleri aktarır
--old-dirs, --old-d eski rsync ile iletişimde --dirs gibidir
--mkpath hedefin yol bileşeni oluşturulur
--links, -l sembolik bağları sembolik bağ olarak
kopyalar
--copy-links, L sembolik bağ değil bağın son hedefi
kopyalanır
--copy-unsafe-links sadece güvensiz sembolik bağlar
dönüştürülür
--safe-links ağacın dışını hedefleyen sembolik
bağlar yoksayılır
--munge-links sembolik bağı bağ değil dosya olarak aktarır
--copy-dirlinks, -k sembolik bağı hedefindeki dosyaya dönüştürür
--keep-dirlinks, -K sembolik bağlı dizinler alıcıda dizin
yapılır
--hard-links, -H sabit bağlar korunur
--perms, -p izinler korunur
--executability, -E çalıştırılabilirlik korunur
--chmod=CHMOD dosya ve/ya dizin izinleri korunur
--acls, -A ACLler korunur (--perms uygular)
--xattrs, -X ek öznitelikler korunur
--owner, -o sahip korunur (sadece root)
--group, -o grup korunur
--devices, -D aygıtlar korunur (sadece root)
--copy-devices aygıt içeriğini normal dosya gibi kopyalar
--write-devices aygıtlara dosya gibi yaz (--inplace uygula)
--specials özel dosyalar korunur
-D --devices --specials kullanımına eşdeğer
--times, -t zamanlar korunur
--atimes, -U erişim zamanları korunur
--open-noatime açılan dosyaların erişim zamanı değiştrlmez
--crtimes, -N oluşturulma zamanları korunur (yeni-lik)
--omit-dir-times, -O zamanlar korunurken dizinler bunun
dışında tutulur
--super alıcıya root'un işlerini de yapmasını söyler
--fake-super xattr'lerle ayrıcalıklıları saklar/kurtarır
--sparse, -S seyrek dosyaları en verimli şekilde
elde eder
--preallocate hedef dosyaları yazmadan önce yer ayırır
--dry-run, -n işlemi yapıyormuş gibi gösterir ama yapmaz
--whole-file, -W dosyaları tamamen kopyalar
(rsync algoritması ile farkları değil)
--checksum-choice=AD sağlama toplamı algoritmasını seçer (--cc gibi)
--one-file-system, -x dosya sistemi sınırlarının dışına çıkılmaz
--block-size=BOYUT, -B sabit bir blok boyunda sağlama toplamına
zorlar
--rsh=KOMUT, -e kullanılacak uzak kabuk uygulaması
belirtilir
--rsync-path=UYGULAMA uzak makinede rsnc'in çalıştıracağı
uygulama
--existing sadece hedefte mevcut olan dosyalar
güncellenir
--ignore-existing hedefte mevcut olan dosyalar yoksayılır
--remove-source-files gönderen dosyaları eşzamanlı siler (dizinsiz)
--del --delete-during ile aynı
--delete göndericide olmayan dosyalar alıcıda
silinir
--delete-before alıcıda aktarım öncesi silme yapılır
(öntanımlı)
--delete-during alıcıda aktarım sırasında silme yapılır
--delete-delay silinenleri saptar, aktarım sonrası siler
--delete-after alıcıda aktarım sonrası silme yapılır
--delete-excluded alıcıda ayrıca dışlanmış dosyalar da
silinir
--ignore-missing-args kaynakta belirtilmeyenleri hatasız yoksayar
--delete-missing-args kaynakta belirtilmeyenler hedefte silinir
--ignore-errors G/Ç hataları olsa da siler
--force dizinler boş olmasa bile silinir
--max-delete=SAYI SAYIdan fazla dosya silinmez
--max-size=BOYUT BOYUTtan büyük dosyalar aktarılmaz
--min-size=BOYUT BOYUTtan küçük dosyalar aktarılmaz
--max-alloc=BOYUT bellek ayırma sınırını değiştirir
--partial kısmen aktarılmış dosyalar tutulur
--partial-dir=DİZİN kısmen aktarılmış dosyalar DİZİNde tutulur
--delay-updates güncellenecek tüm dosyalar sona bırakılır
--prune-empty-dirs, -m dosya listesindeki boş dizinleri budar
--numeric-ids kullanıcı/grup kimliklerini isimlerle
eşleştirmez
--usermap=İSİM özel kullanıcı adı eşlemi
--groupmap=İSİM özel grup adı eşlemi
--chown=KULL:GRUP basit kullanıcı/grup eşlemi
--timeout=SÜRE G/Ç zamanaşımını SÜRE saniyeye ayarlar
--contimeout=SÜRE bağlantı zamanaşımını SÜRE saniyeye ayarlar
--ignore-times, -I zaman ve boyut bakımından eşleşen dosyalar
atlanmaz
--size-only boyutları aynı olan dosyalar atlanır
--modify-window=SAYI doğruluğu arttırmak için değişiklik
zamanları karşılaştırılır
--temp-dir=DİZİN, -T geçici dosyaları DİZİNde oluşturur
--fuzzy, -y hedefte dosya yoksa benzerini bulur
--compare-dest=DİZİN alınan dosyaları ayrıca DİZİNdekilerle
karşılaştırır
--copy-dest=DİZİN DİZİNde değişmemiş dosyaları hedefe kopyalar
--link-dest=DİZİN değişmediyse DİZİNdeki dosyalara sabit bağ
--compress, -z aktarım sırasında dosya verisi sıkıştırılır
--compress-choice=STR sıkıştırma algoritması belirtir (--zc gibi)
--compress-level=SAYI sıkıştırma seviyesi belirtir (--zl gibi)
--skip-compress=LISTE uzantısı LİSTEdeki dosyalar sıkıştırılmaz
--cvs-exclude, -C dosyalar CVS'nin yaptığı gibi yoksayılır
--filter=KURAL, -f bir dosya süzme kuralı ekler
-F --filter='dir-merge /.rsync-filter' ve
yinelemeli: --filter='- .rsync-filter'
ile aynı
--exclude=KALIP KALIP ile eşleşen dosyalar dışlanır
--exclude-from=DOSYA dışlama kalıpları DOSYAdan okunur
--include=KALIP KALIP ile eşleşen dosyalar dışlanmaz
--include-from=DOSYA dışlanmayan kalıplar DOSYAdan okunur
--files-from=DOSYA aktarılacak dosyaların isimlerinin listesi
DOSYAdan okunur
--from0, -0 *from seçeneklerindeki dosya listeleri boş
karakter sonlandırmalı kabul edilir
--old-args eski tarz boşluk ayıklaması etkin olur
--protect-args, -s boşluk ayıklama yok; yalnız jokerler
--copy-as=KULL[:GRUP] kopyalama içim kullanıcı ve seçimlik grup
--address=ADRES giden soketine adresi bağlar
--port=PORT başka bir port belirtmek için
--sockopts=SÇNK özel TCP SeÇeNeKleri belirtilir
--blocking-io uzak kabukta engellemeli G/Ç kullanılır
--outbuf=N|L|B çıktı tamponu biçim: None, Line, Block
yok, satır, blok
--stats dosya aktarımı sırasında durum bilgileri
verir
--8-bit-output, -8 yüksek bitli karakterler çıktıda öncelenmez
--human-readable, -h okunabilen sayılar çıktılanır
--progress aktarım sırasında gelişimi gösterir
-P --partial --progress ile aynı
--itemize-changes, -i tüm güncellemeler için bir değişiklik
özeti çıktılar
--remote-option=SÇN, -M SEÇENEK sadece uzak taraf gönderilir
--out-format=BÇM çıktı belirtilen BiÇeMde güncellenir
--log-file=DOSYA günlük belritilen DOSYAya kaydedilir
--log-file-format=BÇM günlük belirtilen BiÇeM ile güncellenir
--password-file=DOSYA parola DOSYAdan okunur
--early-input=DOSYA sürecin başta çalıştıracağı DOSYA
--list-only dosyaları kopyalamaz, sadece listeler
--bwlimit=KBPS saniyede kBayt cinsinden G/Ç band genişliği
--stop-after=DAK DAK dakika sonra rsync durdurulur
--stop-at=y-m-dTh:m rsync belirtilen zamanda durdurulur
--write-batch=DOSYA bir toplu işlemli güncellemeyi DOSYAya yazar
--only-write-batch=DOSYA --write-batch gibi ama hedef güncellenmez
--read-batch=DOSYA bir toplu işlemli güncellemeyi DOSYAdan okur
--protocol=SAYI eski protokol sürümüne zorlar
--iconv=DNŞM dosyalara karakter kümesi dönüşümü ister
--checksum-seed=SAYI blok/dosya sağlama toplamı tohumunu ayarlar
--ipv4, -4 IPv4 tercih edilir
--ipv6, -6 IPv6 tercih edilir
--version, -V sürüm + diğer bilgileri basar ve çıkar
--help, -h bu yardım iletisini gösterir ve çıkar
rsync ayrıca bir artalan süreci olarak da çalıştırılabilir. Bu durumda şu seçenekleri kabul eder:
--daemon bir rsync artalan süreci olarak çalışır --address=ADRES belirtilen adres kullanılır --bwlimit=KBPS saniyede kBayt cinsinden G/Ç band genişliği --config=DOSYA rsyncd.conf yerine kullanılacak DOSYA --dparam=YENİSİ, -M genel sunucu yapılandırması geçersiz olur --no-detach üst süreçten ayrık çalışmaz --port=PORT belirtilen PORTu dinler --log-file=DOSYA "günlük dosyası" ayarları geçersiz olur --log-file-format=BÇM "günlük biçemi" ayarları geçersiz olur --sockopts=SÇNKLER özel TCP seçenekleri belirtilir --verbose, -v ayrıntı düzeyini arttırır --ipv4, -4 IPv4 tercih edilir --ipv6, -6 IPv6 tercih edilir --help, -h --daemon bu yardım iletisini gösterir ve çıkar
AÇIKLAMALARIYLA SEÇENEKLER
rsync hem kısa (tek tire artı harf) hem de uzun seçenekleri (çift-tire artı sözcük) kabul eder. Aynı amaca yönelik birden fazla seçenek varsa aralarına virgül konarak listelenmiştir. Bir seçenek girdi alıyorsa ve sadece uzun seçenekte belirtilmişse, girdinin kısa seçenekte için de kullanılması zorunludur. Bazı seçenekler ise sadece uzun seçeneklerden oluşur, kısaları yoktur. '=' işareti içeren seçeneklerde '=' isteğe bağlıdır; '=' yerine boşluk kullanılabilir. girdileri kabuk yorumlamasından korumak için önceleyerek belirtmek gerekebilir. Bir dosya yolundaki yaklaşık imi (~) kabuk tarafından ev dizininiz olarak yorumlanır, bu nedenle --option=~/foo kullanımında yaklaşık iminin kabuk tarafından ev dizininiz olarak yorumlanabilmesi için '=' işareti yerine boşluk kullanılmalıdır.
-
--help -
rsync tarafından kabul edilen seçenekleri açıklayan kısa bir yardım iletisi basar ve çıkar. Normalde
--human-readableseçeneğinin kısa kullanımı olan--hseçeneğini başka seçenekler olmadan--helpyerine 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
-vbelirtildiğinde, hangi dosyaların aktarıldığını gösterip sonunda bir özet basar. İki-vbelirtildiğinde atlanan dosyaları gösterir ve sonunda daha fazla bilgi verir. İkiden fazla-vkullanı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,
-vseçeneği--infove--debugseç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-vseçeneği yerine veya birlikte bu yeni seçeneklerin kullanımı tercih edilebilir. Hem--infohem 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,
-vvile ayarlanandan daha yüksek bir değere ayarlanan info ve debug seçeneklerinin ayrıntı düzeyi, artalan süreci oturumunun-vvdüzeyine indirilir. -
--info=SEÇENEKLER -
--infoçıktıda görmek istenilen bilgiler üzerinde ince ayar yapılabilmesini sağlar. HerSEÇENEKsonunda 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-formatve--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ÇENEKsonunda 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=allseç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
--debugseç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=allseç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
allveclientayarlarını temsil etmek üzere geriye dönük uyumlu--msgs2stderrve--no-msgs2stderrseç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-existingve--ignore-non-existingseç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 normalde0saniyedir (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=1yararlıdır (1 saniyelik farklara izin vermek).Tüm aktarımlarda nanosaniyelik karşılaştırmanın öntanımlı olması istenirse bir
~/.poptdosyası 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_LISTortam değişkeni kullanılarak bu geçersiz kılınabilir. -
-a,--archive -
Bu seçenek
-rlptgoDseç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-fromseçeneği belirtilmişse-ruygulanmayacaktı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-permsgibi), bazıları da öntanımlıkları değiştirir (--no-whole-file,--no-blocking-io,--no-dirsgibi). Olumsuzlama uzun seçeneklere uygulanabildiği gibi kısa seçeneklere de uygulanabilir (--no-relativeve--no-Rgibi).Bir örnek olarak,
-rlptgoDseçeneklerine eşdeğer olan-aseçeneğinde sadece-oseçeneğinin uygulanmaması istenirse-aseç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-rkullanımının tersine--no-r -akullanıldığında-rtekrar etkin olur. Bunun yanında, çeşitli seçeneklerin öntanımlı durumlarını etkileyerek-aseçeneğinin anlamını oldukça değiştiren--files-fromseç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-recursiveseçeneğine bakılabilir. -
--i-r,--inc-recursive -
rsync 3.0.0 ve sonrasında aktarımın her iki tarafında da
--recursiveseç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(--deleteseçeneğinden önce öntanımlıydı)
--delete-after
--prune-empty-dirs
--delay-updates
--deleteseç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-timesseç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 -
--recursiveseç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.cdosyasını oluşturur. Bunun yerine şu komutu kullansaydınız,rsync -R /foo/bar/foo.c remote:/tmp/
uzak makinede
/tmp/foo/bar/foo.cdosyası oluşturulacaktı (dosya yolunun tamamı kopyalanır). Bu fazladan yol elemanlarına rsync terminolojisinde örtük dizin adı verilir (yukarıdakifoovefoo/bardizinleri).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-dirsseç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.cdosyası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,
--relativeseç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--relativeseç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-dirsseç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-dirlinksseç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-dirve--suffixseçenekleri ile belirtebilirsiniz.Eğer
--backup-dirseçeneğini belirtmezseniz:-
--omit-dir-timesseçeneği etkin kılınır. -
--deletekullanımı (--delete-excludedolmadan), 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 -
--backupseçeneğinin uygulanmasını sağlayan bu seçenekle yedek dosyaların alıcı tarafta saklanacağıDİZİNbelirtilebilir. Arttırımlı yedekleme yaparken kullanılabilir. Buna ek olarak--suffixseçeneğini kullanarak bir yedek soneki de belirtebilirsiniz (aksi takdirde dosyalar belirtilenDİZİNe kendi isimleri ile yedeklenir).Göreli bir yol belirtilirse, yedekleme dizininin hedef dizine göreli olacağını unutulmamalıdır, bu nedenle muhtemelen mutlak bir yol veya “
../” ile başlayan bir yol belirtmek gerekebilir. Alıcı rsync artalan süreciyse, yedekleme dizini modülün yol hiyerarşisinin dışına çıkamaz, bu nedenleDİZİNi 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-dirbelirtilmemiş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.
--inplaceile 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
--inplaceseç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,
--backupkullanı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.
--partialseçeneğinin uygulanmasını sağlar (kesintiye uğrayan aktarım dosyayı silmez), dolayısıyla--partial-dirve--delay-updatesseçenekleri ile birlikte kullanılamaz. rsync 2.6.4'ten önce bu seçenek,--compare-destve--link-destile 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
--appendkullanı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
--appendgibi ç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-verifykullanımı tehlikeli olabilir. Daha fazla ayrıntı için ---appendseçeneğine bakın.Bilginize
3.0.0 sürümünden önce
--appendseçeneği--append-verifygibi ç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-verifyaktarımını başlatılacaktır. -
-d,--dirs -
Gönderen tarafta saptanan her dizinin aktarıma dahil edilmesini sağlar.
--recursiveseç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--recursiveseçeneği olmaksızın, rsync saptadığı tüm dizinleri atlar (ve her biri için bir ileti çıktılar).--dirsve--recursiveseçenekleri birlikte belirtilirse, önceliği--recursivealır.--files-fromve--list-onlyseçeneklerinin (örtük--list-onlydahil) yanında--recursivebelirtilmezse,--dirsseç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,
foodosyasındanalt/dizindizinindebardosyası 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ı,
foodosyası hedeftealt/dizin/bardizini 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=nonreg0kullanarak 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
-Lseç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
--relativekullanı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 (/kaynakiçin tepe dizindir) aktarım ağacının içindeki bir addır, dolayısıyla oluşturulan göreli sembolik bağlar,/kaynakve/hedefdizinlerindeki 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
--linksaçıkça veya örtük olarak belirtilmişse kopyalanacağını unutmayın.--copy-unsafe-linksseçeneğinin,--copy-linksile 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-linkskullanı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-linksseçeneğini etkisiz kılar.Bu seçeneğin
--relativeile 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-linkskullanı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-optionaracı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-linksdışı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-linkskullanmanı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 kodunsupportdizinindeki "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-linkskullanı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 (
--forceveya--deleteetkili olduğu sürece).Alıcı taraf için benzer bir seçenek
--keep-dirlinksseç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--relativeseç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-dirlinksolmadan, alıcıda "foo" sembolik bağı silinir, bir dizin olarak yeniden oluşturulur ve dosya bu yeni dizine kopyalanır.--keep-dirlinksile alıcıdaki sembolik bağ korunur ve "dosya" içeriği "bar" dosyasına aktarılır.Dikkat
--keep-dirlinkskullanıyorsanız, alıcıdaki tüm sembolik bağlara güvenmeli veya alıcı tarafta--munge-linksseç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-dirlinksseç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 (
--inplaceseçeneği kullanılmıyorsa). -
Sabit bağlar içeren bir
--link-destdizini belirtilirse, hedef dosyaların--link-destdosyalarıyla karşılıklı bağlanması,--link-destiliş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
--inplaceseç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--inplaceseç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-recursiveseç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
--chmodseç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
--executabilityseç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,
--permsve--executabilityseç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
--permskullanılmalıdır. Yeni dosyalara hedefin öntanımlı izinlerini vermek için (mevcut dosyaları değiştirmeden bırakarak),--permsseçeneği olmaksızın--chmod=ugo=rwXkullanı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-gseçeneğini de içeren bir takma ad olarak-Zseç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:
-aseçeneğinin-Zseçeneğinden önce kullanılmasına dikkat edilmelidir, yoksa yukarıdaki --no-*seçeneklerinin ikisi de geçersiz olur.)--permsseç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,--permsbelirtilmediğ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 -
--permsseç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.
--permsseç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
--permsseç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 *'
-Xseçeneği yinelenmedikçe (-XXgibi) rsync'in özel ek öznitelik değerlerini (örn,--fake-superile kullanılanları) kopyalamaz. Bu "tüm ek öznitelikleri kopyala" kipi--fake-superseç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;
--permsseç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
--chmodseç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
--permsve--executabilityseç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:
--superve--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-idsseç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-idsseç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:
--superve--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=nonreg0kullanarak 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:
--superve--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=nonreg0kullanarak 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-devicesseç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
-aseçeneğinin yokluğu sonraki aktarımda-Ikullanı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-noatimeseç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-noatimeuygulamayan bir ön--atimesyamasıyla derlenmiş olabilir. -
--open-noatime -
Aktarılmakta olan dosyaların erişim zamanının değiştirilmemesi için dosyaların
O_NOATIMEbayrağıyla (destekleyen sistemlerde) açılmasını sağlar. İşletim sisteminizO_NOATIMEbayrağını desteklemiyorsa, rsync bu seçeneği sessizce yok sayar. Ayrıca, bazı dosya sistemlerinin,O_NOATIMEbayrağı 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.
--backupbu seçenekle birlikte--backup-dirolmaksızın kullanılamaz.Bu seçeneğin ayrıca
--inc-recursiveseç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:
--ownerseçeneği aracılığıyla kullanıcıları korumak,--groupseçeneği aracılığıyla tüm grupları (yalnızca geçerli kullanıcının gruplarını değil) korumak ve--devicesseç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-superseç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 (
--aclsbelirtilmişse) ve kullanıcı ek özniteliklerinin (--xattrsbelirtilmiş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-superseçenekleri, sadece kaynak dosyalar için ise--superile-M-fake-superbirlikte kullanılır.Bu seçenek hem
--superhem de--no-superseç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.
--inplaceile birlikte kullanılırsa, oluşturulan dosya bazı çekirdek sürümlerinde ve/veya dosya sistemlerinde seyrek bloklarla sonuçlanmayabilir.--whole-fileetkinse (ö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
--sparseve--inplacebirlikte 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.
--sparseile 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--progressseç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 (--inplaceile birlikte kullanılıyorsa) veya sağlama toplamı tabanlı güncelleme algoritması sınanacaksa yararlı olabilir.Bkz: Yukarıdaki
--whole-fileseç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 (
--checksumbelirtildiğ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 noneKurulu 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-fileseçeneği zorlanır ve hiçbir sağlama toplamı sınaması yapılmaz. İkinci veya tek isim olarak "none" belirtilirse--checksumseç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_LISTortam 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-linksveya--copy-unsafe-linksaracı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-existingseç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-existingBu 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-destseçeneğini kullanarak yedekleme yapanlar için kesintiye uğrayan bir yedeklemeyi devam ettirmek gerektiğinde yararlı olabilir.--link-destkullanımı (düzgün kullanıldığında) yeni bir dizin hiyerarşisine kopyalama yapılmasını sağladığından--ignore-existingseç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=skip2kullanıldığında rsync,BİLGİ'nin "tür değişikliği", "toplam değişiklik" (-cgerektirir), "dosya değişikliği" (hızlı sınamaya dayalı olarak),"öznitelik değişikliği" veya "güncel" anlamına geldiği "DOSYAvar (BİLGİ)" iletisini çıktılar.--info=skip1kullanıldığında ise (örtük olarak-vvuygulayarak) 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-excludedkullanı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,
--recursiveetkin 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-errorsseçeneğiyle iptal edilebilir.--deleteseçeneği silme zamanını belirten--delete-*seçenekleriyle,--delete-excludeddahil, 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-duringalgoritmasını, öncekilerden biri ise--delete-beforealgoritmasını seçer. Ayrıca bkz:--delete-afterve--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:
--deleteseç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 (
--timeoutbelirtilmiş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:--recursiveseç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-beforegibi 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:--deleteseçeneği. -
--delete-delay -
Alıcı taraftaki dosya silme işlemlerinin aktarım sırasında hesaplanmasını (
--delete-duringgibi) ve aktarım tamamlandıktan sonra da gerçekleştirilmesini sağlar. Bu,--delay-updatesve/veya--fuzzyile birleştirildiğinde yararlıdır ve--delete-afterkullanmaktan daha verimlidir (ancak farklı davranabilir, çünkü--delete-aftersilmeleri, 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-afterkullanmaya geri dönmeye çalışır (eğer--recursivearttı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:--deleteseç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:
--recursiveseçeneği). Doğrudan veya örtük dosya silinmesi ile ilgili daha ayrıntılı bilgi için bkz:--deleteseç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-delayseç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:
--excludeseç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:--deleteseçeneği. -
--ignore-missing-args -
rsync, açıkça (örneğin, komut satırı girdileri veya
--files-fromgirdileri 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-argsseç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--forceveya--deleteetkinse 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
--deleteiş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
--deleteseç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:--deleteseçeneği.Eski rsync sürümlerinde
--delete-afterkullanılırken--forcehala zorunluydu ve--recursiveseç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=0belirtilebilir. 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=-1kullanılabilir (gerçekten eski sürümler, sınır aşıldığında uyarmıyordu). -
--max-size=BOYUT -
BOYUTbayttan dha büyük dosyalar aktarılmaz.BOYUTbelirtilirken, 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.5mgibi).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-1ise 1499999 bayttır ve--max-size=2g+1ise 2147483649 bayttır.3.1.0 öncesi rsync sürümlerinde
--max-size=0belirtilemezdi. -
--min-size=BOYUT -
Belirtilen
BOYUTdeğerinden daha küçük herhangi bir dosyayı aktarmaktan kaçınmasını söyler, küçük, gereksiz dosyaları aktarmamaya yardımcı olabilir.BOYUTaçıklaması ve diğer bilgiler için bkz:--max-sizeseçeneği.3.1.0 öncesi rsync sürümlerinde
--max-size=0belirtilemezdi. -
--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-sizeseç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
BOYUTdeğerlerini kullanarakRSYNC_MAX_ALLOCortam değişkenine öntanımlı bir değer atayabilirsiniz. Uzak rsync--max-allocseçeneğini anlamıyorsa,--max-alloc=1gbelirterek 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-sizeseçeneğinde açıklanan bir sonekle belirtilebilmektedir. Daha eski sürümlerBOYUTolarak 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/yolgirdisi 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_PORTortam değişkeni etkinleştirilir. Öntanımlı artalan süreci portu kullanılacaksa değişkene0atanır. Ya darsync://URLile veya--portseç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,KOMUTiç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/configdosyalarında belirtebilir.)Ayrıca, uzak kabuk uygulaması
-eseçeneğindeki gibi değer kabul edenRSYNC_RSHortam değişkeni kullanılarak da belirtilebilir.Ayrıca, bu seçenekten etkilenen
--blocking-ioseçeneğine de bakılabilir. -
--rsync-path=UYGULAMA -
Uzak makinede başlangıçta çalıştırılacak
UYGULAMAyı belirtmek için kullanılır. Çoğunlukla, rsync'in uzak kabuğun öntanımlı yolları dışında bulunduğu durumda kullanılır (--rsync-path=/usr/local/bin/rsyncgibi).UYGULAMAkabuk 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
--relativeseç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=DOSYAve--fake-superseç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
-Mseç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-argskullanı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/.cvsignoreiçindeki dosyalarlaCVSIGNOREortam 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,
.cvsignoredosyası ile aynı dizindeki dosyalardan.cvsignoredosyası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
--filterkurallarıyla birlikte belirtilirse,-Cseçeneğinin komut satırının neresinde olduğuna bakılmaksızın, CVS dışlananları--filterkurallarının sonuna eklenir. Bu, onlara--filterkurallarına göre daha düşük öncelik verir. CVS dışlananlarının--filterkurallarına nasıl ekleneceği belirlenmek istenirse,-Cseçeneği, komut satırında değil--filter=:Cveya--filter=-Cbiçeminde--filterseç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.cvsignoredosyaları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
--filterseçeneği belirtebilirsiniz.KURALboş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
--filterkuralı eklemeye eşdeğerdir. İlk seçenek şu kuralı ekler:--filter=’: /.rsync-filter’
Bu kural, rsync'in dizin hiyerarşisi dahilinde serpiştirilmiş
.rsync-filterdosyalarına bakmasını ve aktarımda bu dosyalardaki süzme kurallarını kullanmasını sağlar.-Fseçeneği ikinci kez kullanılmışsa şu kuralı uygular:--filter=’- .rsync-filter’
Bu kural
.rsync-filterdosyaları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
--filterseç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
--excludeseçeneğinin benzeridir.DOSYAiçindeki boş satırlar, ’;’ veya ’#’ ile başlayan satırlar yoksayılır.DOSYAolarak-belirtilmişse, liste standart girdiden okunur. -
--include=KALIP -
Bu seçenek bir içerme kuralı tanımlanmasını sağlayan
--filterseç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.
DOSYAiçindeki boş satırlar, ’;’ veya ’#’ ile başlayan satırlar yoksayılır.DOSYAolarak-belirtilmişse, liste standart girdiden okunur. -
--files-from=DOSYA -
Bu seçeneği kullanarak aktarılacak dosyaların tam listesi belirtilebilir. Liste
DOSYAdan ya da "-" belirtilmişse standart girdiden okunur. Ayrıca, bu seçenekle birlikte öntanımlı uygulanan seçeneklere bağlı olarak rsync'in öntanımlı davranışı kolayca değiştirilebilir:-
--relative(-R) seçeneği uygulanarakDOSYAiçindeki her öğede belirtilen yol bilgisi korunmuştur (bu davranışı kapatmak için--no-relativeveya--no-Rseç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-dirsveya--no-dseç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-fromseçeneğinin konumunun diğer seçeneklerin çözümlenişiyle hiçbir ilgisi yoktur (örneğin,-aseçeneği,--files-fromseç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/fooiçinde "bin" (hatta "/bin") diye bir girdi varsa,/usr/bindizini hedefte/yedek/bindizini olarak oluşturulur. Dizin "bin/" olarak içeriliyorsa (sondaki/'a dikkat), 2.6.4 ve üstü sürümlerde/usr/bindizinindeki 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 (-aseçeneği tarafından uygulanmadığından-rseçeneğinin açıkça--files-fromseçeneği ile birlikte belirtilmesi gerektiği unutulmamalıdır). Ayrıca-rseç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-listesidosyasında listelenmiş dosyaları kopyalayacaktır.--iconvve--protect-argsseçenekleri belirtilmişse ve--files-fromseç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-fromgirdisindeki 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-fromve--filterkuralı ile belirtilen dosyaları etkiler. Dosya isimlerinin boşluk ile ayrıldığı.cvsignoredosyalarını kullanan--cvs-excludeseç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 ,--usermapgibi 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_ARGSortam 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-argsolumsuz seçenektir).Bu seçenek
--protect-argsseç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
--iconvile 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_ARGSortam 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-sve--no-protect-argsolumsuz seçeneklerdir). Bu ortam değişkeni ayrıca sıfırdan farklı bir değerle atanmışRSYNC_OLD_ARGSortam 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-argsseç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.GRUPbelirtilmemiş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-optionkullanı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 paketininsupportdizinindeki) 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$PATHdizinlerinde 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İNiç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-updatesseç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-dirseç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-dirseç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-destveya--link-destseçenekleriyle belirtilenlerle eşleşen diğer hedef dizinlerde de yapılır.Bilginize
--deleteseç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-afterseç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İNe göre yapılacağı belirtilir. EğerDİZİNiç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-destdizini 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İNlerin birinden temel bir dosya seçilir.Eğer
DİZİNgöreli belirtilmişse hedef dizine göreli olduğu kabul edilir. Ayrıca bkz:--link-destve--copy-destBilginize
3.1.0 ve üstü sürümlerde, belirtilen diğer
--compare-destDİZİNlerde tam bir eşleşme bulunması durumunda boş olmayan hedef dizinlerden (nihai sonucun yeni bir kopyayla daha iyi eşleşmesini sağlamak için) bir dosya silinir. -
--copy-dest=DİZİN -
Bu seçenek
--compare-destgibi 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-destDİZİNi belirtilebilir, bu da rsync'in değişmemiş bir dosyayı listede belirtilen sırada aramasına neden olur. Bir eşleşme bulunamazsa, aktarımı hızlandırmak içinDİZİN'lerden birinden temel bir dosya seçilir.DİZİNgöreli bir yol belirtiyorsa hedef dizine görelidir. Ayrıca bkz--compare-destve--link-dest. -
--link-dest=DİZİN -
Bu seçenek,
DİZİNiçindeki değişmemiş dosyaların hedef dizine sabit bağlı yapılması dışında--compare-destseç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-destdizini 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İNgöreli bir yol belirtiyorsa hedef dizine görelidir. Ayrıca bkz:--compare-destve--copy-dest.2.6.1 sürümünden önceki sürümlerde,
-oseçeneği (-aseçeneği de bu seçeneği uygular) belirtilmişse,--link-destseç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-oseç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_LISTortam 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
-zzseçeneğinin kullanımı gerektirecek şekilde yapılandırıldıklarından-zseçeneğinin kullanımını reddeder. rsync sunucusu, açıkça-zzbelirtilmesi gerektiği konusunda uyarmadıkça bu tuhaflık yok sayılabilir. -
-zc,--compress-choice=DİZGE -
Bu seçenek,
--compresskullanı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-compressuygulanmasını sağlayan "none" belirtilmedikçe bu seçenek örtük olarak--compressseç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-compressveya--new-compressseçeneği hakkında bir hata görürseniz, daha fazla rsync sürümünün tanıdığı--compress-choice=zlibveya--compress-choice=zlibxseç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 birzlibgerç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.--compressseç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/
zlibvezlibxsıkıştırmaları için geçerli değerler1'den9'a kadar olup6öntanımlı değerdir.--zl=0belirtilirse sıkıştırma yapılmaz.--zl=-1ile öntanımlı olan6. seviye sıkıştırma uygulanır.zstdsıkıştırması için geçerli değerler-131072'den22'ye kadar olup3öntanımlı değerdir.SAYIolarak0belitilirse öntanımlı öntanımlı olan3. seviye sıkıştırma uygulanır.lz4sıkıştırması için geçerli bir değer yoktur, dolayısıyla değer daima0olur.Ç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=999999999gibi 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=nstrbelirtilebilir. 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İSTEyi geçersiz kılar. rsync, her dosya için sıkıştırma düzeyini dosyanın sonekine göre ayarlar. Sıkıştırma algoritmasının "sıkıştırma yapılmayan" seviyesi varsa, bu dosyalar için sıkıştırma gerçekleşmez. Akım seviyesinde anında seviye değiştirmeyi destekleyen diğer algoritmalar, eşleşen her dosya için işlemci kullanımını mümkün olduğunca azaltmak için seviyeyi en aza indirecektir.LİSTEeğ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İSTEalacaktır: rsync artalan sürecinden alınan bir kopya,LİSTEye eklenir (artalan sürecinin listesi farklı bir öntanımlı liste ile yapılandırılabilir). -
--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.
chrootayarları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 chrootmodü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:ALANdeğer çiftidir. Göndericiden gelen herhangi bir eşleşenGÖNDERENdeğeri, alıcıdan gelen birALANdeğeri ile değiştirilir.GÖNDERENveALANdeğerleri için kullanıcı adları veya kullanıcı kimlikleri belirtebilirsiniz veGÖNDERENdeğ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
--usermapseçeneği kullanılarak ve/veya tüm grup eşlemeleri tek bir--groupmapseçeneği kullanılarak belirtilmelidir.0kullanıcısı ve grubu için gönderici adının alıcıya iletilmediğine dikkat edilmelidir, bu nedenle ya0kullanarak 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ÖNDERENadları, gönderen tarafta kullanılanlarla, tümALANadları, 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-idsseç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ÖNDERENolarak bu sayısal kimlikleri belirtmek gerekir.--usermapseçeneğinin çalışması için alıcının ayrıcalıklı kullanıcı aidiyetinde çalıştırılması gerekir (bkz:--superve--fake-super).--groupmapseçeneğinin çalışması için, alıcının grubu atayacak izinlere sahip olması gerekir.rsync 3.2.4 ve sonrasında,
--usermapseçeneği örtük olarak--owner(-o) seçeneğini uygularken--groupmapseç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ı
GRUPgrubundakiKULLANICI'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.KULLANICIveyaGRUPboşsa, atlanan kullanıcı/grup için eşleme olmaz.GRUPboşsa, iki nokta imi atlanabilir, ancakKULLANICIboş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--ownerve/veya--groupseç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
0değ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.
--addressseçeneği, bağlanılacak belirli bir IP adresi (veya konak adı) belirtmeye olanak tanır.Ayrıca bkz: Artalan süreci için
--addressseç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
--portseç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
--sockoptsseçeneği. -
--blocking-io -
Uzak kabuk aktarımı başlatılırken engellenebilen G/Ç kullanılmasını belirtir. Uzak kabuk
rshveyaremshise, 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İPNone(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-vvkullanılabilir."
%i" belirtimi 11 karakter uzunlukta şifresel bir çıktıya sahiptir. Genel biçimiYXcstpoguaxdizgesine benzer. BuradaYkarakteri yapılan güncellemenin çeşidini,Xkarakteri dosya türünü, diğer karakterler ise güncellenmişlerse öznitelikleri belirten bir karakterle değiştirilir.Ykarakterinin yerini alan güncelleme türleri şunlardır:<uzak konağa aktarılan (gönderilen) dosya
>yerel konağa aktarılan (alınan) dosya
cyerel konakta değiştirilen/oluşturulan dosya (bir dizin ya da sembolik bağın oluşturulması gibi).
hbaşka bir öğeye sabit bağ olan öğe (--hard-linksgerektirir).
.(nokta) güncellenmiş (öznitelikleri değişmiş) dosya
*ayrıntılı çıktı alanının geri kalanı bir ileti içeriyor ("siliniyor" gibi).
Xkarakterinin yerini alan dosya türleri şunlardır:fdosya
ddizin
Lsembolik bağ
Daygı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 (
--checksumgerektirir) 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 (
--timesgerektirir). Bazan bu karakterin yerineTkullanılır ve zamanın aktarım zamanına ayarlanacağını belirtir.Tharfi, bir dosya, sembolik bağ veya aygıt--timesseç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 (
--permsgerektirir). -
o -
Sahiplerin farklı olduğunu ve göndericinin değeri ile güncelleneceğini belirtir (
--ownerve ayrıcalıklı kullanıcı yetkileri gerektirir). -
g -
Grupların farklı olduğunu ve göndericinin değeri ile güncelleneceğini belirtir (
--groupve grup atama yetkileri gerektirir). -
u -
Erişim zamanının göndericidekinden farklı bir değere güncellendiğini belirtir (
--atimesgerektirir). -
n -
Oluşturulma zamanının göndericidekinden farklı bir değere güncellendiğini belirtir (
--crtimesgerektirir). -
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=nameveya-vbelirtilirse "%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 formatseç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=nameseç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-changesseç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-changesGü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
--progressseç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-formatNeler 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-fileseçeneği. -
--log-file-format=BİÇEM -
--log-fileseç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-fileseç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 formatseçeneğinin açıklamasına bakılabilir.--log-filebelirtildiği durumda bu seçenekleBİÇEMolarak "%i %n%L" belirtilmedikçe öntanımlı biçem kullanılır.Ayrıca bkz: Artalan sürecinin
--log-file-formatseç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,
-vseçeneği ile birlikte veya değil,--info=stats2'ye; 2 veya daha fazla-vseç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ı0olanlar 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-hseçeneği düzeyi1arttı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,1234567baytlık dosya2. seviyede1,23Molarak çı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-hseçeneğinin belirtilmesi, öncesinde--no-hseç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,
--partialseç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-fileaçıkça (veya örtük olarak) belirtilirse, dosya rsync'in delta-aktarım algoritması kullanılmadan gönderildiğinden,DİZİNiç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İNdeğ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-dirseç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-afterbelirtilmeli 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-beforeveya--delete-duringseçeneklerini kullanmaktan kaçınılmalıdır.Önemli
--partial-dirdizinine diğer kullanıcılar yazamamalıdır, aksi güvenlik riskidir. Örneğin "/temp" dizini ASLA belirtilmemelidir!Ayrıca
DİZİNdeğeriniRSYNC_PARTIAL_DIRortam değişkeninde belirtebilirsiniz. Bu değişkene bir değerin atanmış olması--partialseçeneğinin etkin olmasını sağlamaz ama komut satırında--partialseçeneğini belirtmekle--partial-dirseçeneğine dizin belirtilmiş gibi işlem yapılması sağlanır. Örneğin,--partial-dir=.rsync-tmpile--progressseçeneğini birlikte kullanmak yerine, kabuktaRSYNC_PARTIAL_DIR=.rsync-tmpşeklinde bir atama yapıldığını ve.rsync-tmpdizininin eksik kalan aktarımı tamamlamak için komut satırında sadece-Pseçeneği belirtilerek kullanıldığını varsayalım.--partialseçeneğinin bu ortam değişkenine bakmadığı durumlar,-
--inplaceseçeneğinin belirtilmiş olması (--inplaceseçeneği--partial-dirile çeliştiğinden), -
--delay-updatesseç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 optionsayarı, amacı gereği--partial-dirseçeneğinin--partialseçeneğini örtük olarak uygulamamasına sebep olur. Bu, yani,--partialseçeneğinin reddedilmesi,--partial-dirtarafı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-dirseç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---inplaceve--appendseçeneği ile birlikte kullanılamaz.Bu seçenek
--no-inc-recursiveanlamı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-diriç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-destseç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-sizeseç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
.pdfdosyalarını kopyalayan, yalnızca.pdfdosyaları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,progressseçeneği örtük olarak öntanımlıdır, ancak kullanıcı tarafından sağlanan--infoseç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--progressseç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=progress2seç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-vseçeneğinden kaçınılabilir veya--info=name0belirtilebilir).--info=progress2'yi kullanmak için--progressseçeneğinin belirtilmesi gerekmez.Son olarak, rsync'e
SIGINFOveyaSIGVTALRMsinyali göndererek anında ilerleme raporu alınabilir. BSD sistemlerinde,Ctrl+TtuşlarıSIGINFOsinyali oluşturulur (Linux şu anda birSIGINFOsinyalini 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=progress2biç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.
DOSYAolarak - belirtilirse standart girdi okunur. Dosya içinde parolayı içerek tek bir satır bulunmalıdır (kalan satırlar yok sayılır).DOSYAherkesç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-onlyile çıktılanan boyutlar--human-readableseç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-hseç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
--recursiveolmaksızın--dirsseçeneğinin uygulanması ve eski rsync'lerin bu seçeneğe sahip olmamasıdır. Bu sorunu önlemek için--no-dirsseç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/scinsinden belirtilebilmesini sağlar.HIZbelirtilirken ondalık değer belirtilebilir ve değerin sonuna birim eklenebilir (--bwlimit=1.5mgibi). Hiçbir sonek belirtilmezse 1024 baytlık birimler ("K" veya "KiB") öntanımlıdır.0değeri hız kısıtlaması olmadığını belirtir. Kullanılabilir soneklerin listesi için bkz:--max-sizeGeriye 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,
--progressseç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
--bwlimitseçeneği. -
--stop-after=SÜRE,--time-limit=SÜRE -
--time-limitseçeneğinin kullanımı artık önerilmemektedir.Belirtilen
SÜREgeç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:dakikabiç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-batchseç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-batchseç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/zlibseç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-batchgibi çalışır. Bu, değişikliklerin başka yollarla hedef sisteme taşınmasına ve ardından değişikliklerin--read-batchyoluyla 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-batchile oluşturulanDOSYAiçindekileri uygular. EğerDOSYAolarak "-" 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-batchseçeneğiyle rsync 2.6.4 kullanılıyorsa, ancak--read-batchseç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ÜŞÜMolarak "." 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,HEDEFbiçeminde virgülle ayrılarak da (--iconv=iso88599,utf8gibi) 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-iconvveyaDÖNÜŞÜMolarak "-" belirtebilirsiniz. Bu seçeneğin öntanımlı değeri konağa özeldir ve ayrıcaRSYNC_ICONVortam 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-fromrsync'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
--iconvseç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=utf8gibi). -
-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
-4veya-6seç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
--ipv4seçeneği.rsync, IPv6 desteği olmadan derlendiyse,
--ipv6seç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
SAYIolarak 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.SAYIolarak 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ülveyarsync://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,
--daemonseç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--configseç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
addressseç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/scinsinden belirtmek için kullanılır. İstemci bu durumda bile bir--bwlimitdeğeri belirtebilir, ancakHIZ'dan büyük değerlere izin verilmez.Ayrıca bkz: İstemci
--bwlimitseç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.confdosyası, 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,
inetdveyasshdü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
--portseçeneğinin ve rsyncd.conf(5) kılavuz sayfasındakiportseç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ükDOSYAsını belirtmek için kullanılır.Ayrıca bkz: İstemci
--log-fileseçeneği. -
--log-file-format=BİÇEM -
Yapılandırma dosyasındaki "
log format" seçeneğinde belirtilen dizge yerine kullanılacak olanBİÇEMdizgesini 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-formatseçeneği. -
--sockopts -
rsyncd.conf(5) dosyasındaki
socket optionsseçeneği ile aynı sözdizimine sahip olup onu geçersiz kılar.Ayrıca bkz: İstemci
--sockoptsseç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 verbositydeğeriyle denetlenir.Ayrıca bkz: İstemci
--verboseseç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
--ipv6veya--ipv4belirtmek gerekebilir).Ayrıca bkz: İstemci
--ipv4seçeneği.rsync, IPv6 desteği olmadan derlendiyse,
--ipv6seçeneğinin hiçbir etkisi olmaz. Bu durumda rsync --version çıktısı "IPv6 yok" dizgesini içerir. -
-h,--help -
--daemonseç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-mergekuralı 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ı*.oile 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. -
Cdeğ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. -
sdeğ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-excludedbelirtilmediğ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. -
rdeğ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 üsttekisdeğ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. -
pdeğ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. -
xdeğiştircisi,xattrkopyalama/silme işlemlerindexattradlarını etkileyen kuralı belirtir (ve bu nedenle dosya/dizin adları eşleştirilirken yoksayılır). Hiçbirxattreşleştirme kuralı belirtilmezse, öntanımlıxattrsüzme kuralı kullanılır (bkz:--xattrsseç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. -
Cbelirteci, 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. -
ebelirteci, birleştirme dosyasını aktarımdan dışlayacaktır; örneğin, "dir-merge,e .rules" kuralı "dir-merge .rules" ve "- .rules" kuralları gibidir. -
nbelirteci, kuralların alt dizinlerde miras alınmayacağını belirtir. -
wbelirteci, 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.excldosyasının içeriği mutlak yol dışlamaları olarak ele alınır. Birleştirme kuralı etkilenecek tarafları belirtiyorsa (sveyardeğiştiricisi veya her ikisi aracılığıyla), dosyadaki kurallar tarafları belirtmemelidir (bir değiştirici veyahidegibi 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-batchseç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-batchseç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
--linksseçeneği belirtilmişse, sembolik bağlar alıcı tarafta aynı hedefle yeniden oluşturulur. BİLGİ:--archiveseçeneği örtük olarak--linksseçeneğini uygular. -
Eğer
--copy-linksseç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-linksTü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-dirlinksDizin 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-linksGüvenli olmayan sembolik bağlar dosyalara dönüştürülür, güvenli olanların tamamı oluşturulur. -
--copy-unsafe-linksGüvenli olmayan sembolik bağlar dosyalara dönüştürülür, güvenli olanlar uyarı verilerek atlanır. -
--links--safe-linksAlı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 -
.cvsignoredosyalarındaki gibi yoksayılacak kalıpları belirtmek için kullanılır. Daha fazla bilgi için bkz:--cvs-exclude -
RSYNC_ICONV -
--iconvseç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-argsseç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_ARGSdeğişkeninin yerini alır.--old-args,--no-old-argsveya--protect-argsseç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-argsseç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-argsveya--protect-argsseç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_ARGSdeğ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.
-
USERveyaLOGNAME -
USERveyaLOGNAMEdeğ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-dirseç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
--compressseç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-choiceseçeneğine bakılabilir. -
RSYNC_MAX_ALLOC -
Bu ortam değişkeni,
--max-allocseç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ı
.cvsignoredosyası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_PROGtarafı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_ttü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.