rsync - hızlı, becerikli, uzak (ve yerel) dosya kopyalama
aracı
- rsync
- [SEÇENEK...] KAYNAK... [HEDEF]
Alım:
- rsync
- [SEÇENEK...]
[KULL@]KONAK:KAYNAK... [ HEDEF]
Gönderim:
- rsync
- [SEÇENEK...] KAYNAK...
[KULL@]KONAK:HEDEF
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.
Bu kılavuz sayfasının belge içi bağlarla
gezilebilir sürümü için bkz:
http://tlbp.gen.tr/man/man1/man1-rsync.html
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)
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.
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.
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:
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.
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.
Dosya aktarımı için
rsync’i bir uzak kabuk
olmaksızın kullanmak da mümkündür. Bu
durumda, TCP 873. port üzerinde çalışan bir uzak
rsync sunucusuna bağlanırsınız. Bu
açıkça artalan sürecinin uzak makinada
çalışıyor olmasını gerektirir. Bu
konuda daha ayrıntılı bilgi için bkz:
RSYNC
ARTALAN SÜRECİNE UZAK KABUKTAN BAĞLANMAK
rsync’i bu yöntemle kullanmanın bir uzak kabuk
üzerinden kullanmaya göre farkları
şunlardır:
- ○
- Ya makine ismini dosya yolundan ayırmak için
tek bir : yerine :: kullanırsınız ya da
rsync://URL biçimini
kullanırsınız.
- ○
- Dosya yolunun ilk sözcüğü
aslında bir modül ismidir.
- ○
- Sunucu bağlandığınızda
günün iletisini basabilir.
- ○
- Sunucu için bir dosya yolu belirtmezseniz, sunucu
üzerinde erişilebilir olan dosya yollarının
listesini alırsınız.
- ○
- Bir yerel hedef belirtmezseniz, uzak sunucu
istediğiniz dosyaların bir listesini yollar.
- ○
-
--rsh (-e) seçeneğini
belirtmemelisiniz (yoksa ssh bağlantısı bir
süreç çatallayacağından sunucuda
çalışan artalan süreci
yoksayılır -- bkz: RSYNC ARTALAN SÜRECİNE
UZAK KABUKTAN BAĞLANMAK)
"
kaynak" adlı uzak modüldeki dosyaların
tümünü kopyalayan bir örnek:
rsync -av konak::kaynak /hedef
Sunucu üzerindeki bazı dosya depoları kimlik
doğrulaması gerektirebilir. Böyle bir durumda
bağlanmak istediğinizde sizden parola istenecektir. Parola
istemi almamak için parolanızı
RSYNC_PASSWORD
ortam değişkenine kaydedebileceğiniz gibi,
--password-file seçeneğini de kullanabilirsiniz. Bu
kullanım
rsync’i bir toplu işlem dosyası
ile kullandığınız durumlarda
yararlıdır.
- 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ü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.
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.
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).
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.
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
rsync hem kısa (tek tire artı harf) hem de uzun
seçenekleri (çift-tire artı sözcük) kabul
eder. Aynı amaca yönelik birden fazla seçenek varsa
aralarına virgül konarak listelenmiştir. Bir
seçenek girdi alıyorsa ve sadece uzun seçenekte
belirtilmişse, girdinin kısa seçenekte için de
kullanılması zorunludur. Bazı seçenekler ise
sadece uzun seçeneklerden oluşur, kısaları yoktur.
’=’ işareti içeren seçeneklerde
’=’ isteğe bağlıdır;
’=’ yerine boşluk kullanılabilir. girdileri kabuk
yorumlamasından korumak için önceleyerek belirtmek
gerekebilir. Bir dosya yolundaki yaklaşık imi (~) kabuk
tarafından ev dizininiz olarak yorumlanır, bu nedenle
--option=~/foo kullanımında yaklaşık iminin
kabuk tarafından ev dizininiz olarak yorumlanabilmesi için
’=’ işareti yerine boşluk
kullanılmalıdır.
- --help
-
rsync tarafından kabul edilen
seçenekleri açıklayan kısa bir yardım
iletisi basar ve çıkar. Normalde --human-readable
seçeneğinin kısa kullanımı olan
--h seçeneğini başka seçenekler olmadan
--help yerine de kullanabilirsiniz.
-
-V, --version
-
rsync sürüm numarasını
ve ek bilgiler basar ve çıkar.
Çıktıda, lisans ve telif hakkı bilgilerinden
başka rysnc sitesine bir bağlantı,
öntanımlı sıkıştırma ve
sağlama toplamı algoritmalarının listesi ile
derlenmiş yeteneklerin listesi bulunur.
-
-v, --verbose
- Bu seçenek aktarım sırasında
verilen bilgi miktarını arttırır. rsync
öntanımlı olarak sessiz
çalışır. Tek -v belirtildiğinde,
hangi dosyaların aktarıldığını
gösterip sonunda bir özet basar. İki -v
belirtildiğinde atlanan dosyaları gösterir ve sonunda
daha fazla bilgi verir. İkiden fazla -v
kullanımı sadece rsync hata ayıklaması
yapıyorsanız anlamlıdır.
Çalıştırma sonu özeti, oturum boyunca
uzak rsync’e (yerel kopyalamada alıcı tarafa)
gönderilen ve alınan bayt sayısını ve
saniyede aktarılan bayt sayısını
gösterir. İkinci satır, rsync’in
oturumda aktaracağı dosyaların toplam bayt
sayısı ile gönderilen ve alınan
baytların bunların toplamına oranları (bunlar
gerçekten daha iyi hissettiren, daha
büyüğün daha iyi olduğu
sayılardır) gösterilir. Bu değerler
ayrıca, --human-readable (veya --no-human-readable)
seçenekleri kullanılarak insan tarafından daha fazla
(veya daha az) okunabilir duruma da getirilebilir.
Günümüz rsync’inde, -v
seçeneği --info ve --debug
seçeneklerinin birlikte kullanımına
eğdeğer bir çıktı üretir.
Ayrıntı düzeyi arttıkça her bilginin
ayrıntı düzeyi aynı oranda
artmadığından -v seçeneği yerine
veya birlikte bu yeni seçeneklerin kullanımı tercih
edilebilir. Hem --info hem de --debug,
ayrıntıdaki her artış için tam olarak
hangi ayarlamaların yapıldığını
belirten bir yardım istemine de sahiptir.
Bununla birlikte, artalan sürecinin "azami
ayrıntı" ayarlarının, artalan
süreci tarafında hangi seçenekleri ne kadar
yüksek bir ayrıntıyla
sınırlayabileceği de dikkate
alınmalıdır. Örneğin azamilik 2 ise,
-vv ile ayarlanandan daha yüksek bir değere ayarlanan
info ve debug seçeneklerinin ayrıntı düzeyi,
artalan süreci oturumunun -vv düzeyine indirilir.
-
--info=SEÇENEKLER
-
--info çıktıda görmek
istenilen bilgiler üzerinde ince ayar yapılabilmesini
sağlar. Her SEÇENEK sonunda bir rakam içerir.
0 çıktıda sessizliğe, 1
öntanımlı çıktı düzeyine,
daha yüksek değerler de (daha yüksek
ayrıntı düzeyini destekleyenler için) daha
yüksek ayrıntı düzeyine
karşılık gelir. Kullanılabilecek
seçenek isimlerini, bunların ne
çıktıladıklarını ve
ayrıntı düzeyindeki her artış
için hangi seçenek isimlerinin ekleneceğini
görmek için rsync --info=help komutu verilebilir.
Bazı örnekler:
rsync -a --info=progress2 kaynak/ hedef/
rsync -avv --info=stats2,misc1,flist0 kaynak/ hedef/
-
--info=name
çıktısının --out-format ve
--itemize-changes ( -i) seçeneklerinden
etkileneceği dikkate alınmalıdır. Bu
seçeneklerin ne zaman ne
çıktılayacaklarını görmek
için seçeneklerin açıklamalarına
bakılabilir.
Bu seçenek 3.1.0 sürümünde eklenmiştir,
bu nedenle sunucu tarafındaki daha eski bir rsync, ince ayar
girişimlerini reddedebilir (sunucuya bir veya daha fazla
seçenek gönderilmesi gerekiyorsa ve sunucu bunları
anlamayacak kadar eskiyse). Bir artalan süreciyle
çalışılacaksa yukarıdaki azami
ayrıntı uyarısına da bakmakta yarar
vardır.
-
--debug=SEÇENEKLER
-
--debug çıktıda görmek
istenilen bilgiler üzerinde ince ayar yapılabilmesini
sağlar. Her SEÇENEK sonunda bir rakam içerir.
0 çıktıda sessizliğe, 1
öntanımlı çıktı düzeyine,
daha yüksek değerler de (daha yüksek
ayrıntı düzeyini destekleyenler için) daha
yüksek ayrıntı düzeyine
karşılık gelir. Kullanılabilecek
seçenek isimlerini, bunların ne
çıktıladıklarını ve
ayrıntı düzeyindeki her artış
için hangi seçenek isimlerinin ekleneceğini
görmek için rsync --debug=help komutu verilebilir.
Bazı örnekler:
rsync -avvv --debug=none kaynak/ hedef/
rsync -avA --del --debug=del2,acl kaynak/ hedef/
- Bazı hata ayıklama iletilerinin,
özellikle G/Ç ve tampon ile ilgili olanlarının
sadece --stderr=all seçeneği belirtildiğinde
çıktılanacağına dikkat edilmelidir.
3.2.0 sürümünden itibaren, her aktarım
tarafı için farklı hata ayıklama
değerleri belirlemenize ve rsync sürümlerinden
yalnızca birinde bulunan yeni bir hata ayıklama
seçeneğini belirtmenize izin vermek için bu
seçenek, artık sunucu tarafına otomatik olarak
iletilmemektedir. Aynı seçeneğin her iki tarafa da
uygulanması istenirse, kaşlı ayraç
genişletmesini kullanmak, kod yazmaktan kurtulmanın kolay
bir yoludur. Aşağıdaki komut, zsh(1) ve
bash(1)’ta çalışır:
rsync -aiv {-M,}--debug=del2 kaynak/ hedef/
-
-
--stderr=errors|all|client
- Bu seçenek, hangi işlemlerin ve bilgi
iletilerinin standart hataya
çıktılanacağını belirtmekte
kullanılır. Kip dizgeleri kısaltılabilir, bu
nedenle tek harflik değerler de kullanılabilir. Olası
3 seçim şunlardır:
- errors
- Süreç aktarımın uzak
tarafında olsa bile rsync öntanımlı
olarak hataları doğrudan standart hataya gönderir.
İstemci tarafa bilgi iletileri ise protokol akımı
üzerinden gönderilir. Standart hata kullanılabilir
değilse (yani, sürece doğrudan bir soket
üzerinden bağlanılıyorsa) hatalar son
çare olarak protokol akımı üzerinden
gönderilir.
- all
- Tüm rsync iletilerinin (bilgi ve hata)
tüm (olası) süreçler tarafından
doğrudan standart hataya gönderilmesini sağlar. Bu,
standart hatanın (ham değil) satır tamponlu duruma
gelmesine sebep olarak, bilgi ve hata iletilerinin dosya
tanıtıcısına göre işlenmesi
özelliğini ortadan kaldırır. Hata
ayıklaması yapılan veya yüksek
ayrıntı düzeyiyle kullanılan
süreçler için bu seçenek, aktarım
akımının tıkanmasını
önlemeye yardımcı olabilir (bunun,
çıkmaza girme hatasında bir şeylerin kapanma
olasılığını önlemesi gerekir).
Ayrıca --debug seçeneğinin G/Ç ile
ilgili bazı ek iletileri etkinleştirmesini sağlar.
- client
- Tüm rsync iletilerinin istemci tarafa
protokol akımı üzerinden gönderilmesini
sağlar. Tüm iletileri tek istemci süreç
çıktılar; hataları standart hataya, bilgi
iletilerini standart çıktıya gönderir. Bu
durum, eski rsync sürümlerine
öntanımlıydı. Fakat, iletilerin
önünde çok fazla aktarım verisi
olduğunda hata gecikmelerine neden olabiliyordu. Dosyalar eski bir
rsync’e gönderiliyorsa, çoğu
sürümde geçerli olan --stderr=all
seçeneği tercih edilebilir.
- Bu seçenek rsync’e 3.2.3
sürümünde eklenmiştir. Bu sürüm
ayrıca uzak tarafa öntanımlı olmayan bir
ayarı iletmeye başlamasına rağmen
rsync, sırasıyla all ve client
ayarlarını temsil etmek üzere geriye
dönük uyumlu --msgs2stderr ve --no-msgs2stderr
seçeneklerini kullanıyordu. Yeni rsync
sürümleri, uyumluluğu korumak için bu eski
seçenek adlarını kabul etmeye devam edecektir.
-
-q, --quiet
- Bu seçenek aktarım sırasında
verilen bilgi miktarını azaltır. Özellikle
uzak sunucudaki bilgi iletileri baskılanır. Bu
seçenek rsync’i cron’dan
çalıştırırken yararlıdır.
- --no-motd
- Artalan sürecine aktarımın
başlangıcında istemci tarafından
çıktılanan bilgiyi etkiler. Günün
iletisini (MOTD) baskılar fakat ayrıca, ( rsync
protokolü ile ilgili sınırlamalar nedeniyle) artalan
sürecinin rsync host:: isteğine yanıt olarak
gönderdiği modül listesini de etkiler. Bu
bakımdan, artalan sürecinden modül listesi
isteği yapılacaksa bu seçeneğin
kullanılmaması gerekir.
-
-I, --ignore-times
- Normalde rsync hedefte de aynı boyutta ve
aynı değişiklik zamanına sahip dosyalar varsa
bunları atlayacaktır. Bu seçenek bu
"hızlı sınama"
davranışını kapatarak tüm
dosyaların güncellenmesini sağlar.
Bu seçenek rsync’in daha fazla dosya aktarmasına
sebep olduğundan, rsync’in birkaç dosya
aktarmasına sebep olan --ignore-existing ve
--ignore-non-existing seçenekleriyle
karşılaştırıldığında
kafa karıştırıcı olabilir.
- --size-only
- Bu seçenek bu "hızlı
sınama" davranışını
değiştirerek dosyaların değişiklik
zamanlarına bakılmaksızın hedefte de
aynı boyutta iseler aktarılmamalarını
sağlar. rsync, zaman değerlerinin doğru
tutulmadığı başka bir yansılama
sistemini kullandıktan sonra kullanılmaya
başlanacaksa bu seçenek yararlıdır.
-
-@, --modify-window=SAYI
- İki zaman değerini
karşılaştırırken, fark
SAYI’da küçükse rsync bu
değerleri eşit kabul eder. Bu fark normalde 0 saniyedir (tam
eşitlik). Negatif değer belirtilirse, nanosaniyeler de
dikkate alınır (alıcı tarafın
sürümü en az 3.1.3 olmalıdır). Ancak bu
farkı bazı durumlarda daha büyük bir
değere ayarlamak daha yararlıdır.
Örneğin, MS Windows FAT dosya sistemi (zaman
değerleri 2 saniyelik
çözünürlüğe sahiptir)
taraflardan biri olduğunda --modify-window=1
yararlıdır (1 saniyelik farklara izin vermek).
Tüm aktarımlarda nanosaniyelik
karşılaştırmanın
öntanımlı olması istenirse bir ~/.popt
dosyası oluşturulup içine şu satırlar
konabilir:
rsync alias -a -a@-1
rsync alias -t -t@-1
- Bu artık öntanımlı
olduğundan, örneğin, ext3 ve ext4 arasında
kopyalama yapılacaksa ya da alıcı rsync, 3.1.3
sürümünden eskiyse nanosaniyeleri yoksaymak ve
geçersiz kılmak için --modify-window=0 (yani,
-@0) seçeneğinin belirtilmesi gerekecektir.
-
-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çen RSYNC_CHECKSUM_LIST ortam değişkeni
kullanılarak bu geçersiz kılınabilir.
-
-a, --archive
- Bu seçenek -rlptgoD seçeneklerine
eşdeğerdir. Alt dizinlere inerek işlem
yapılmasını ve hemen hemen herşeyin
korunmasını istemenin en kestirme yoludur; bir şey
dışında: --files-from seçeneği
belirtilmişse -r uygulanmayacaktır.
ACL’lerin ( -A), ek özniteliklerin (-x),
erişim zamanlarının ( -U), oluşturma
zamanlarının ( -N) korunmasını veya
sabit bağların bulunmasını ve
korunmasını ( -H) sağlayan seçeneklerin
belirtilmemesine özen gösterilmelidir.
-
--no-SEÇENEK
- Seçenek adının önüne
--no- getirerek seçenekleri olumsuzlayabilirsiniz. Ancak
olumlu seçeneklerin hepsi olumsuzlanamaz ama çoğu
için bu yapılabilir. Bazıları bir
işlemi kapatırken ( --no-D, --no-perms gibi),
bazıları da öntanımlıkları
değiştirir ( --no-whole-file,
--no-blocking-io, --no-dirs gibi). Olumsuzlama uzun
seçeneklere uygulanabildiği gibi kısa
seçeneklere de uygulanabilir ( --no-relative ve
--no-R gibi).
Bir örnek olarak, -rlptgoD seçeneklerine
eşdeğer olan -a seçeneğinde sadece
-o seçeneğinin uygulanmaması istenirse
-a seçeneğini -rlptgD’ye
dönüştürüp kullanmak yerine -a
--no-o (yani, --archive --no-owner)
kullanılabilirdi.
Seçeneklerin birbirlerine göre konumları da
önemlidir: -a --no-r kullanımının
tersine --no-r -a kullanıldığında
-r tekrar etkin olur. Bunun yanında, çeşitli
seçeneklerin öntanımlı
durumlarını etkileyerek -a seçeneğinin
anlamını oldukça değiştiren
--files-from seçeneğinin yan etkisi konumsal bile
değildir. Daha fazla bilgi için bkz: --files-from
-
-r, --recursive
- Bu seçenek alt dizinlerinde
ardışık olarak kopyalanmasını
sağlar. Ayrıca, tek bir dizinin taranmasını
sağlayan --dirs (-d) seçeneğine de
bakınız.
Aktarılacak dosyaların listesini oluşturmaya
yönelik arttırımlı özyinelemeyle ilgili
bilgiler için --inc-recursive seçeneğine
bakılabilir.
-
--i-r, --inc-recursive
-
rsync 3.0.0 ve sonrasında
aktarımın her iki tarafında da --recursive
seçeneği kullanılırken
öntanımlı olarak etkinleştirilen yinelemeli
dosya taramasının arttırımlı
olmasını sağlar.
Arttırımlı özyineleme, dosyalar
aktarılmaya başlanmadan önce tüm dosya
hiyerarşisinin taranmasını gerektirmediğinden
arttırımsız olana göre aktarımın
daha çabuk başlamasını sağlar. Kaynak
dosyalarda özyineleme etkin değilse bu seçenek
etkisizdir.
Bazı seçenekler rsync’in dosya listesinin
tamamını bilmesini gerektirir, dolayısıyla bu
seçenekler arttırımlı özyineleme kipini
iptal eder. Arttırımlı özyinelemeyi iptal eden
seçenekler:
--delete-before (--delete seçeneğinden önce öntanımlıydı)
--delete-after
--prune-empty-dirs
--delay-updates
-
--delete seçeneğinin
arttırımlı özyineleme ile uyumlu olması
için rsync 3.0.0’da --delete-during
öntanımlı silme kipi yapıldı (silme
kipi 2.6.4 sürümünde eklenmişti).
Arttırımlı özyinelemenin tek yan etkisi,
özyinelemeli olarak taranan bir dizindeki eksik alt dizinlerin
(öntanımlı olarak) özyinelemeden önce
oluşturulmasıdır. Bu erken oluşturma
aşaması (arttırımsız olanın
tersine) rsync’in bitmiş dizinin
değişiklik zamanını (özyinelemeli
kopyalama bitene kadar geciktirmek zorunda kalmadan) hemen
tanımlamasını sağlar. Ancak, daha
sınırlayıcı ayrıcalıklar bu alt
dizinlere kopyalama bitmeden atanmaz. --omit-dir-times
seçeneği kullanılarak bu erken oluşturma
aşamasından kaçınılabilir.
Arttırımlı özyineleme --no-inc-recursive
( --no-i-r>) seçeneği ile iptal edilebilir.
-
--no-i-r, --no-inc-recursive
-
--recursive seçeneğinin yeni
arttırımlı özyineleme
algoritmasını iptal eder. Böylece rsync
dosyaları aktarmaya başlamadan önce tüm dosya
listesini tarar. Daha fazla bilgi için bkz: --inc-recursive
-
-R, --relative
- Göreli dosya yolları
kullanılır. Yani, komut satırının
gönderici kısmında belirtilen dosya yolunun son
parçası değil, dosya yolunun tamamı
kopyalanır. Bu seçenek aynı anda çok
sayıda farklı dizini göndermek için
yararlıdır. Örneğin şöyle bir
komut,
rsync /foo/bar/foo.c remote:/tmp/
- uzak makinede /tmp/foo.c dosyasını
oluşturur. Bunun yerine şu komutu
kullansaydınız,
rsync -R /foo/bar/foo.c remote:/tmp/
- uzak makinede /tmp/foo/bar/foo.c dosyası
oluşturulacaktı (dosya yolunun tamamı
kopyalanır). Bu fazladan yol elemanlarına rsync
terminolojisinde örtük dizin adı verilir
(yukarıdaki foo ve foo/bar dizinleri).
rsync 3.0.0 ve sonrasında, dosya yolu aslında sembolik
bağ olsa bile dosya listesindeki örtük dizinler daima
gerçek dizin olarak gönderilir. Bu, dosya yolunu kopyalarken
bir sembolik bağın varlığını
fark etmediğiniz durumda beklenmeyen bazı
davranışları önler. Bir sunucu tarafı
sembolik bağlı kopyalamak istiyorsanız, hem yolu ile
birlikte sembolik bağı hem de gerçek yolu ile
birlikte hedef dizini ekleyin. Gönderen tarafta daha eski bir
rsync ile uğraşıyorsanız,
--no-implied-dirs seçeneğini kullanmanız
gerekebilir.
Ayrıca, belirtilen her yol için, örtük dizin
olarak gönderilen dizin miktarını da
sınırlamak mümkündür. Gönderen
tarafta 2.6.7 ve üstü bir rsync olması
durumunda, kaynak yola aşağıdaki gibi bir nokta ve
eğik çizgi yerleştirebilirsiniz:
rsync -avR /foo/./bar/baz.c uzak:/tmp/
- Bu, uzak konakta /tmp/bar/baz.c
dosyasını oluşturur. (Dikkat: Noktadan sonraki
eğik çizgi zorunludur, “ /foo/.” gibi
bir kısaltma çalışmaz). Daha eski rsync
sürümlerinde kaynak yolunu sınırlamak
için cd(1) ile dizin değiştirmek gerekebilir.
Örnek:
(cd /foo; rsync -avR bar/baz.c uzak:/tmp/)
- (Yaylı ayraçlar komutların bir alt
kabukta çalışmasını sağlar,
böylece daha sonraki komutlar için dizin
değişikliğinin etkisi olmaz.) Uzak dosyalar eski bir
rsync’den alınıyorsa şöyle bir
işlem yapılabilir (artalan süreci
aktarımı olmamak koşuluyla):
rsync -avR --rsync-path="cd /foo; rsync" uzak:bar/baz.c /tmp/
-
- --no-implied-dirs
- Bu seçenek, --relative
seçeneğinin öntanımlı
davranışını etkiler. Belirtildiğinde
kaynak taraftaki örtük dizinlerin öznitelikleri
aktarıma dahil edilmez. Bu, hedef sistemdeki
karşılık gelen yol elemanlarının varsa
değişmeden bırakıldığı ve
eksik örtük dizinlerin öntanımlı
özniteliklerle oluşturulduğu anlamına gelir.
Böylece, bu örtük yol elemanlarının
alıcı taraftaki bir dizine sembolik bağ olması
gibi büyük farklılıklara bile izin verilir.
Örneğin, bir komut satırı girdisini veya bir
gönderici dosya girdisi ile rsync’in
"yol/foo/dosya" dosyasını aktarması
istenirse --relative seçeneği de
kullanılmışsa buradaki " yol" ve
" yol/foo" örtük dizinlerdir.
"yol/foo", hedef sistemdeki ""
bar"a bir sembolik bağ ise, alıcı
rsync normalde " yol/foo"yu siler, onu bir dizin
olarak yeniden oluşturur ve dosyayı yeni dizine
yerleştirir. --no-implied-dirs seçeneği ile,
alıcı rsync, mevcut yol elemanlarını
kullanarak " yol/foo/dosya"yı günceller;
bu, " yol/bar" dosyasının
oluşturulmasının sona erdiği anlamına
gelir. Bu bağ korumasını
gerçekleştirmenin bir başka yolu da
--keep-dirlinks seçeneğini kullanmaktır (bu,
aktarımın geri kalanındaki dizin sembolik
bağlarını da etkiler).
3.0.0’dan eski bir rsync’den dosya kopyalarken,
gönderen tarafta bir sembolik bağ varsa ve
örtük dizinlerin normal dizinler gibi
aktarılması isteniyorsa bu seçeneğin
kullanılması gerekebilir.
-
-b, --backup
- Bu seçenekle, evvelce mevcut hedef dosyaların
her aktarımında ya da silinmesinde bu dosyaların
isimleri değiştirilir. Yedek dosyaların nereye
gideceğini ve nasıl bir sonek alacaklarını
--backup-dir ve --suffix seçenekleri ile
belirtebilirsiniz.
Eğer --backup-dir seçeneğini belirtmezseniz:
- 1.
-
--omit-dir-times seçeneği etkin
kılınır.
- 2.
-
--delete kullanımı
(--delete-excluded olmadan), rsync’in --filter
"P *~" kuralının benzeri olarak tüm
mevcut süzgeçlerin sonuna yedekleme soneki için
"koruyucu" bir süzme kuralı eklenmesine neden
olur. Bu kural, önceden yedeklenmiş dosyaların
silinmesini engeller.
- Kendi süzme kurallarını
sağlayanların, dışlama/koruma
kurallarını, etkili olması ve yeterince yüksek
bir önceliğe sahip olması için listede daha
yüksek bir yere elle eklemeleri gerekebileceği
unutulmamalıdır (örneğin,
kurallarınız sonuna bir *
içerme/dışlaması eklerseniz otomatik eklenen
kurala asla ulaşılmaz).
-
--backup-dir=DİZİN
-
--backup seçeneğinin
uygulanmasını sağlayan bu seçenekle yedek
dosyaların alıcı tarafta saklanacağı
DİZİN belirtilebilir. Arttırımlı
yedekleme yaparken kullanılabilir. Buna ek olarak --suffix
seçeneğini kullanarak bir yedek soneki de belirtebilirsiniz
(aksi takdirde dosyalar belirtilen DİZİNe kendi
isimleri ile yedeklenir).
Göreli bir yol belirtilirse, yedekleme dizininin hedef dizine
göreli olacağını
unutulmamalıdır, bu nedenle muhtemelen mutlak bir yol veya
“ ../” ile başlayan bir yol belirtmek
gerekebilir. Alıcı rsync artalan süreciyse,
yedekleme dizini modülün yol hiyerarşisinin
dışına çıkamaz, bu nedenle
DİZİNi silmemeye veya içine kopyalamamaya
özen göstermek gerekir.
-
--suffix=SONEK
- Bu seçenek --backup (-b) ile
kullanıldığında, belirtilen SONEK
öntanımlı yedekleme sonekinin yerine
kullanılır. Öntanımlı sonek,
--backup-dir belirtilmemişse ~ imi,
belirtilmişse boş dizgedir.
-
-u, --update
- Bu seçenek, hedefteki dosyanın
değişiklik zamanı kaynak dosyanınkinden
yeniyse dosyanın atlanmasını sağlar.
(Eğer hedef dosyanın değişiklik zamanı
kaynağınkiyle aynıysa, ama boyutları
farklıysa güncelleme yapılır.)
Dizinlerin, sembolik bağların veya diğer özel
dosyaların kopyalanmasını etkilemez. Ayrıca,
gönderici ve alıcı arasındaki dosya
biçemi farkı, nesneler üzerinde hangi tarih olursa
olsun, güncelleme için her zaman yeterince önemli
kabul edilir. Başka bir deyişle, hedefteki bir
dosyayı içeren dizin kaynakta da varsa, aktarım zaman
damgalarına bakılmaksızın
gerçekleşir.
Bu seçenek bir aktarım kuralıdır,
dışlama kuralı değildir, bu nedenle dosya
listelerine giren verileri etkilemez ve dolayısıyla silme
işlemlerini de etkilemez. Sadece alıcının
aktarılmasını istediği dosyaların
sayısını sınırlar.
- --inplace ile birlikte kullanım
- Kesintiye uğramış bir aktarım,
alıcı tarafta aktarımı bitmemiş bir
dosya bırakabilir, bu durumda aktarımı yeniden
çalıştırmak muhtemelen kesintiye
uğrayan dosyadan devam edilmesini sağlamayacaktır. Bu
nedenle, kesintiye uğrayan ve devam eden dosyaları
işlemek için elle bir takım işlemler yapmak
gerekiyorsa --inplace seçeneği işe
yarayabilir.
-
- --inplace
- Bu seçenek, verilerinin güncellenmesi
gerektiğinde dosyaların aktarılma yöntemini
değiştirir: Dosyanın yeni bir kopyasını
oluşturma ve tamamlandığında yerine
taşıma şeklindeki öntanımlı
yöntem yerine, rsync güncellenecek verileri
doğrudan hedef dosyaya yazar.
Bunun bazı yan etkileri vardır:
- •
- Sabit bağları bozmaz. Bu, yeni verilerin
diğer sabit bağlar üzerinden hedef dosyaya
görünür olacağı anlamına gelir.
Dahası, farklı kaynak dosyaları hedefteki birden
çok sabit bağlı hedefe kopyalama girişimleri,
hedef verilerin ileri geri değişmesine yol açan
"çekme savaşları" ile
sonuçlanabilir.
- •
- Kullanımdaki ikil dosyalar güncellenemez
(işletim sistemi bunun olmasını engeller yoksa
verileri değiştirilmeye
çalışılan ikil dosyalar hatalı
çalışır ve çöker).
- •
- Aktarım sırasında tutarsız olan
dosya verileri, aktarım kesintiye uğrar veya
güncelleme başarısız olursa bu şekilde
kalır.
- •
-
rsync’in yazamadığı bir
dosya güncellenemez. Yazma işlemi, dosyanın yazmak
amacıyla açılmasını
gerektirdiğinden ayrıcalıklı
kullancının bu kullanıcıya bu dosyada yazma
izni vermesi gerekir.
- •
- Aktarım sürerken hedef dosyadaki veriler,
rsync dosyaya yazmadan önce değişikliğe
uğrarsa, rsync’in delta-aktarım
algoritmasının verimliliği düşebilir.
Bu, --backup kullanıyorsanız geçerli
değildir, çünkü rsync, yedekleme
dosyasını aktarım için temel dosya olarak
kullanacak kadar akıllıdır.
- Uyarı:
- Bu seçenek, başkaları
tarafından erişilen dosyaları güncellemek
için kullanılmamalıdır. Kopyalama için
bu seçenek kullanılacaksa buna dikkat edilmelidir.
- Bu seçenek, büyük dosyalardaki blok
değişiklikleri veya veri eklenmesi durumlarında
özellikle ağdan değil diskten açılan
sistemlerde yararlıdır. Ayrıca, ’sadece
kopyada değişiklik olduğunda aslın
güncellendiği’ dosya sistemlerinde, bir dosyadaki
küçük değişikliklerden dolayı
dosyanın tamamı için anlık kopya
oluşturulmasını engellemeye de yardımcı
olabilir.
--partial seçeneğinin uygulanmasını
sağlar (kesintiye uğrayan aktarım dosyayı
silmez), dolayısıyla --partial-dir ve
--delay-updates seçenekleri ile birlikte
kullanılamaz. rsync 2.6.4’ten önce bu
seçenek, --compare-dest ve --link-dest ile de uyumlu
değildi.
- --append
- Bu özel kopyalama kipi, yalnızca,
alıcı taraftaki içeriğin
göndericidekiyle aynı olduğu bilindiğinde,
büyüdüğü bilinen dosyaları
verimli bir şekilde güncellemeye yarar. Aktarımdaki
tüm dosyaların büyüyen dosyalar
olduğundan %100 emin değilseniz --append
kullanımı tehlikeli olabilir. Bu nedenle, bu koşula
uymayan dosyaların ayıklandığından emin
olmak için süzme kuralları
kullanılmalıdır.
rsync, dosyada içeriğini tamamen doğrulamadan
büyüyen dosyayı yerinde günceller
(yalnızca eklediği içeriği doğrular).
rsync, alıcı tarafta göndericideki dosyadan
daha kısa olmayan tüm dosyaları atlar (bu, yeni
dosyaların da aktarıldığı
anlamına gelir). Ayrıca, gönderme
uzlaşımları sırasında gönderen
taraftaki boyutu kısalan dosyaları da atlar (bu
olduğunda rsync "küçülen
dosya" uyarısı yapar).
Dosyanın aktarımına gerek yoksa ya da bir dizinin veya
sıradan olmayan dosyaların güncellenmesini
etkilemiyorsa, dosyanın içerik dışı
özniteliklerinin (örneğin, izinler, sahiplik ve
benzerlerinin) güncellenmesini engellemez.
- --append-verify
- Bu özel kopyalama kipi --append gibi
çalışır, farklı olarak dosyadaki
tüm veriler sağlama toplamı
doğrulamasına dahil edilir (bunu daha az verimli ama
muhtemelen daha güvenli hale getirir). Aktarımdaki
tüm dosyaların büyüyen dosyalar
olduğundan %100 emin değilseniz --append-verify
kullanımı tehlikeli olabilir. Daha fazla
ayrıntı için - --append
seçeneğine bakın.
- Bilgi:
- 3.0.0 sürümünden önce
--append seçeneği --append-verify gibi
çalışıyordu, bu nedenle böyle bir
rsync ile etkileşim durumunda (veya aktarımda
30’dan eski bir protokol kullanıyorsa), ekleme
seçeneklerinden herhangi birinin belirtilmesi bile
--append-verify aktarımını
başlatılacaktır.
-
-
-d, --dirs
- Gönderen tarafta saptanan her dizinin
aktarıma dahil edilmesini sağlar. --recursive
seçeneğinin tersine, komut satırında dizin
ismi " ." ya da bölü çizgisi ile
bitmedikçe (“ .”,
“dizin/.”, " foo/" gibi) dizinin
içeriği kopyalanmaz. Bu seçenek ya da
--recursive seçeneği olmaksızın,
rsync saptadığı tüm dizinleri atlar (ve
her biri için bir ileti çıktılar).
--dirs ve --recursive seçenekleri birlikte
belirtilirse, önceliği --recursive alır.
--files-from ve --list-only seçeneklerinin
(örtük --list-only dahil) yanında
--recursive belirtilmezse, --dirs seçeneği
örtük olarak uygulanır (böylece dizinler de
listede görünür). Bunun olmaması istenirse
--no-dirs (veya --no-d) belirtilebilir.
Ayrıca, geriye uyumluluğa yardımcı bir
seçenek de vardır: --old-dirs (--old-d)
seçeneği, taraflarda eski bir rsync bulunması
durumunda özyineleme olmadan tek bir dizini listelemek için
-r --exclude=’/*/*’
çözümünün
kullanılmasını sağlar.
- --mkpath
- girdide belirtilen ancak hedefte bulunmayan yol
bileşenini oluşturur. Bu, rsyncin hedefte çok
seviyeli dizinler oluşturmasına ve gerekirse
adını değiştirerek tek bir dosyayı bu
yola yerleştirilmesine olanak tanır. Tek bir girdi ile
kopyalama yaparken hedef yolun tamamının bir dizin olarak
ele alınmasını ( rsync’in hedefte yol
bileşeni zaten varmış gibi
davranmasını) istiyorsanız, sona bir eğik
çizgi yerleştirmeniz gerekir.
Aşağıdaki örnekte, foo dosyasından
alt/dizin dizininde bar dosyası
oluşturulmakta, " alt" ve
"alt/dizin" dizinleri hedefte yoksa
oluşturulmaktadır:
rsync -ai --mkpath foo alt/dizin/bar
- Bunun yerine işlem aşağıdaki
gibi yapılsaydı, foo dosyası hedefte
alt/dizin/bar dizini altında oluşturulacaktı:
rsync -ai --mkpath foo alt/dizin/bar/
-
-
-l, --links
- Karşılaşılan her sembolik
bağ "skipping non-regular file" (normal dosya
olmadığından atlanıyor) uyarısı
ile yok sayılmak yerine, aktarılan dosyalara sessizce
sembolik bağ eklenir. Uyarıyı --info=nonreg0
kullanarak susturmak da mümkündür.
Daha ayrıntılı bilgi için bkz:
SEMBOLİK BAĞLAR
-
-L, --copy-links
- Gönderici, sembolik bağın
gösterdiği dosya veya dizine giden zinciri izleyerek
karşılaşılan her sembolik bağı
olduğu gibi kopyalar. Sembolik bağ zinciri bozulursa, bir
hata çıktılanır ve dosya aktarımdan
çıkarılır.
Bu seçenek, aktarımda hiçbir sembolik bağ
bırakmadığından, aktarımdaki sembolik
bağları etkileyen diğer seçeneklerin yok
sayılmasına sebep olur.
Bu seçenek, sembolik bağların alıcı
tarafta da izlenmesine sebep olan bir yan etkiye sahip 2.6.3’ten
önceki rsync sürümlerinden farklı
olarak, alıcı tarafta zaten mevcut olan sembolik
bağların izlenmesi işleminde bir
değişiklik yapmaz. Günümüz
rsync’i, bu seçeneği uzak
alıcıya iletmez (çünkü yalnızca
gönderenin bunu bilmesi gerekir), bu nedenle, bu
yetersizliğin yalnızca 2.6.7’den eski
(alıcıya -L seçeneğinin
aktarımı durdurmayan) rsync istemcisi
kullananları etkilemesi gerekir.
Alıcı tarafta gerçek bir dizin olarak ele
alınması için bir dizine sembolik bağ
gereksinimi varsa bkz: --keep-dirlinks (-K).
Daha ayrıntılı bilgi için bkz:
SEMBOLİK BAĞLAR
- --copy-unsafe-links
- Bu seçenek rsync’e, kopyalanan
ağacın dışındaki bir hedefi
gösteren sembolik bağları kopyalamasını
söyler. Mutlak sembolik bağlar ayrıca sıradan
dosyalar olarak ele alınır, böylece bunlar
--relative kullanıldığında kaynak dosya
yolunun kendindeki sembolik bağlar haline gelir.
Kesme noktasının, rsync’in
ayrıntılı çıktıda
bahsetmediği yolun parçası olarak
aktarımın tepe dizini oluşuna dikkat edilmelidir.
“ /kaynak/alt” dizinini
“/hedef/” dizinine kopyalarsanız, “
alt" dizini aktarımın tepe dizini değil (
/kaynak için tepe dizindir) aktarım
ağacının içindeki bir addır,
dolayısıyla oluşturulan göreli sembolik
bağlar, /kaynak ve /hedef dizinlerindeki diğer
adlar için meşrudur. Bunun yerine “
/kaynak/alt/” (sonda eğik çizgi ile) “
/hedef/alt” dizinine kopyalanırsa,
“alt" dizini dışındaki
hiçbir dosyaya sembolik bağa izin verilmez.
Güvenli sembolik bağların yalnızca
--links açıkça veya örtük olarak
belirtilmişse kopyalanacağını
unutmayın. --copy-unsafe-links seçeneğinin,
--copy-links ile birlikte kullanılınca fazladan bir
etkisi olmaz.
Daha ayrıntılı bilgi için bkz:
SEMBOLİK BAĞLAR
- --safe-links
- Bu seçenek rsync’e, kopyalanan
ağacın dışındaki bir hedefi
gösteren sembolik bağları yoksaymasını
söyler. Ayrıca, mutlak sembolik bağların da
tamamı yok sayılır.
Yok sayma alıcı tarafta
gerçekleştiğinden, gönderen taraf
geçersiz sembolik bağlara sahip olsa bile (
--munge-links kullanılıyorsa) bu yok sayma yine de
etkili olacaktır. Ayrıca, silme işlemlerini de
etkiler, çünkü dosya aktarımda mevcut ise,
sembolik bağın güvenli olmadığı
kabul edildiğinde ve atlandığında
alıcıdaki
karşılığının silinmesini
önler.
Sembolik bağların aktarımda koşullu olarak yok
sayılabilmesi için bu seçenek --links (veya
--archive) ile birlikte kullanılmalıdır.
--copy-unsafe-links seçeneğini etkisiz kılar.
Bu seçeneğin --relative ile birlikte
kullanımı istenmeyen sonuçlara yol açabilir.
Daha ayrıntılı bilgi için bkz:
SEMBOLİK BAĞLAR
- --munge-links
- Bu seçenek, aktarımın yalnızca
bir tarafını etkiler ve rsync’e, sembolik
bağ değerlerini dosya alırken geçersiz
kılmasını veya dosya gönderirken
geçerli kılmasını söyler.
rsync’in sembolik bağları geçersiz
kılmak için kullandığı yöntem,
sembolik bağ (adının değil) dizgesinin
önüne “/rsyncd-munged/” dizgesi koymak,
geçerli kılmak için de dizgenin önüne
konan “/rsyncd-munged/” dizgesini
kaldırmaktır. Geçersiz
kılınmış değerler, sembolik
bağları diskte kullanılamaz hale getirir, ancak
sembolik bağın gösterdiği dosyaya/dizine
dokunulmaz.
Örneğin bir rsync artalan sürecinin
yapılandırma dosyasındaki veya rrsync(1)
(sınırlı rsync) betiğine
aktarılan bir seçenek üzerinden rsync sunucu
tarafında bu seçeneği genellikle istemcinin bilgisi
dışında etkinleştirir. İstemci
tarafında belirtildiğinde, geçersiz sembolik
bağlara sahip olan/ihtiyaç duyan istemci tarafıysa
seçenek normal olarak belirtilmelidir; geçersiz sembolik
bağlara sahip olduğunda/ihtiyaç duyduğunda
sunucuya seçenek vermek için -M --munge-links
kullanılmalıdır. Yerel bir aktarımda,
istemcinin gönderici olduğuna dikkat edin, bu nedenle
seçeneğin belirtilmesi sembolik bağları
doğrudan geçerli kılarken, uzak seçenek olarak
belirtildiğine sembolik bağları geçersiz
kılar.
Bu seçeneğin --remote-option
aracılığıyla bir artalan sürecine
gönderildiğinde hiçbir etkisi yoktur,
çünkü artalan süreci geçersiz sembolik
bağlar isteyip istemediğini "
--munge-symlinks" aracılığıyla
yapılandırır.
Sembolik bağ değeri, aktarıma girdikten sonra
geçerli/geçersiz duruma getirilir, bu nedenle, sembolik
bağları sembolik olmayanlara
dönüştüren herhangi bir seçenek,
alıcının yaptığı bir
seçim olan --safe-links dışında,
geçerli/geçersiz kılma işleminden önce
gerçekleşir, bu nedenle, karar
geçerli/geçersiz kılma değerine
dayandırılır. Bu, bir alıcıda
geçersiz kılma etkinleştirilmişse,
--safe-links kullanmanın tüm sembolik
bağların yok sayılmasına neden
olacağı anlamına gelir (çünkü
hepsi mutlaktır).
rsync’in sembolik bağları geçersiz
kılmak için kullandığı yöntem,
her birinin değerinin önüne
“/rsyncd-munged/” dizgesi koymaktır. Bu, dizin
olmadığı sürece bağların
kullanılmasını engeller. Bu seçenek
etkinleştirildiğinde, bu yol bir dizinse veya bir dizine bir
sembolik bağ ise rsync çalışmayı
reddedecektir (ancak yalnızca başlangıçta buna
bakar). Bir veya daha fazla sembolik bağı yerinde
geçerli/geçersiz kılmak için kaynak kodun
support dizinindeki " munge-symlinks" python
betiğine de bakın.
-
-k, --copy-dirlinks
- Bu seçenek, gönderen tarafın bir dizin
sembolik bağını gerçek bir dizinmiş
gibi ele almasına neden olur. --copy-links
kullanılırken, dosya sembolik
bağlarının etkilenmesi istenmiyorsa bu seçenek
kullanışlıdır.
Bu seçenek olmadan, gönderen taraf bir dizini dizin sembolik
bağıyla değiştirmişse,
alıcı taraf yeni sembolik bağın yolunda olan
her şeyi dizinler dahil siler ( --force veya --delete
etkili olduğu sürece).
Alıcı taraf için benzer bir seçenek
--keep-dirlinks seçeneğidir.
--copy-dirlinks, kaynaktaki dizin sembolik
bağlarının tamamına uygulanır.
Yalnızca belli birkaç sembolik bağın izlenmesi
isteniyorsa, yolların doğru eşleşmesi
için --relative seçeneğini kullanarak
bunları eğik çizgi sonlandırmalı kaynak
girdileri olarak belirtmektir. Örnek:
rsync -r --relative kaynak/./ kaynak/./devam/ hedef/
- Bunun çalışmasının
nedeni, rsync’in kaynak girdide belirtildiği gibi
lstat(2) çağrısı yapması ve
sondaki eğik çizginin lstat() işlevinin sembolik
bağı izlemesini sağlamasıyla dosya listesinde
" kaynak/./” taraması sırasında
bulunan sembolik bağı geçersiz kılan bir
dizine yol açmasıdır.
Daha ayrıntılı bilgi için bkz:
SEMBOLİK BAĞLAR
-
-K, --keep-dirlinks
- Alıcı taraftaki bir dizin sembolik
bağı, göndericide gerçek bir dizinle
eşleşiyorsa gerçek bir dizinmiş gibi ele
alınır. Bu seçenek olmaksızın
alıcıdaki sembolik bağ silinip yerine gerçek
bir dizin konur.
Örneğin, " dosya" dosyasını
içeren " foo" dizinini
aktardığınızı, ancak "
foo"nun alıcıda " bar" dizinine
sembolik bağ olduğunu varsayalım.
--keep-dirlinks olmadan, alıcıda "
foo" sembolik bağı silinir, bir dizin olarak
yeniden oluşturulur ve dosya bu yeni dizine kopyalanır.
--keep-dirlinks ile alıcıdaki sembolik bağ
korunur ve " dosya" içeriği
"bar" dosyasına aktarılır.
- Dikkat:
-
--keep-dirlinks kullanıyorsanız,
alıcıdaki tüm sembolik bağlara
güvenmeli veya alıcı tarafta --munge-links
seçeneğini etkinleştirmelisiniz! Güvenilmeyen
bir kullanıcının gerçek bir dizini
gösteren bir sembolik bağ oluşturması
mümkünse, kullanıcı (bir sonraki kopyada)
sembolik bağı gerçek bir dizinle
değiştirebilir ve sembolik bağın
başvurduğu dizinin içeriğini etkileyebilir.
Yedekleme kopyalarında, alıcıdaki hiyerarşiyi
değiştirmek için sembolik bağ kullanmak yerine
dosyayı bir bağlama noktası gibi kullanmak daha
iyidir.
- Gönderen taraf için benzer bir seçenek
--copy-dirlinks seçeneğidir.
Daha ayrıntılı bilgi için bkz:
SEMBOLİK BAĞLAR
-
-H, --hard-links
- Bu seçenek rsync’e, sabit
bağları aynı kaynak sistemdeki gibi yeniden
oluşturmasını söyler. Bu seçenek
olmaksızın kaynak taraftaki sabit bağlı
dosyalar ayrı dosyalar olarak ele alınır.
Bu seçenek, hedefteki sabit bağ kalıbının
kaynaktakiyle tam olarak eşleşmesini GEREKTİRMEZ.
Hedefte ek sabit bağların oluşabileceği
durumlar:
- •
- Alıcı, ikincil sabit bağlar (kaynak
dosya listesinde mevcut olandan daha fazlasını)
içeriyorsa, kopyalama algoritması bunların
bağını açıkça kesmez. Ancak,
yollardan birinin veya daha fazlasının içerik
farklılıkları varsa, normal dosya güncelleme
işlemi bu ek bağları kesecektir ( --inplace
seçeneği kullanılmıyorsa).
- •
- Sabit bağlar içeren bir --link-dest
dizini belirtilirse, hedef dosyaların --link-dest
dosyalarıyla karşılıklı
bağlanması, --link-dest ilişkilendirmeleri
nedeniyle hedefteki bazı yolların birbirine
bağlanmasına neden olabilir.
-
rsync’in yalnızca aktarım
listesinde bulunan dosyalar arasındaki sabit bağları
algılayabildiği unutulmamalıdır. rsync,
aktarımın dışındaki dosyalarla fazladan
sabit bağ ilişkileri olan bir dosyayı
güncellerse, bu ilişki kopacaktır. Bu
kırılmayı önlemek için --inplace
seçeneği kullanılmak istenirse, dosyaların
nasıl güncellendiğinin bilinmesi gerekir,
böylece kalıcı sabit bağlar nedeniyle
istenmeyen değişikliklerin olmayacağından emin
olunabilir (başka uyumsuzluklar için --inplace
seçeneğine de bakılabilir).
Arttırımlı özyineleme etkinse (bkz.
--inc-recursive), rsync, başka bir yerde bu
içerikler için başka bir bağın
bulunduğunu keşfetmeden önce eksik bir sabit
bağlı dosyayı aktarabilir. Bu,
aktarımın doğruluğunu (yani, hangi
dosyaların birbirine sabit olarak bağlı
olduğunu) değil, yalnızca verimliliğini
etkiler (yani, aktarımda sabit bağlı dosya
kümesinin daha sonra bulunabilecek başka bir üyesi
olan sabit bağlı bir dosyanın yeni bir ilk
kopyası için verilerin kopyalanması). Bu
verimsizliği önlemenin tek yolu, --no-inc-recursive
seçeneğini kullanarak arttırımlı
özyinelemeyi devre dışı
bırakmaktır.
-
-p, --perms
- Bu seçenek rsync’e, izinleri hedefte
aynı kaynak sistemdeki gibi belirlemesini söyler. (
rsync’in kaynak izinlerini hedefte nasıl
değiştirdiği --chmod seçeneğinde
açıklanmıştır.)
Bu seçenek belirtilmediğinde izinler şöyle
belirlenir:
- •
- Mevcut dosyaların (güncellenmiş
dosyalar dahil) mevcut izinleri korunursa da --executability
seçeneği ile dosyanın
çalıştırma izni
değiştirilebilir.
- •
- Yeni dosyalar "normal" izin bitlerini,
alıcı dizinin öntanımlı izinleriyle
(alıcı sürecin umask’ı veya hedef
dizinin öntanımlı ACL’si
aracılığıyla belirtilen izinler)
maskelenmiş kaynak dosya izinlerinden alır, özel izin
bitleri ise, yeni bir dizinin setgid bitini kendi üst dizininden
devraldığı durum dışında devre
dışı bırakılır.
- Bu nedenle, --perms ve --executability
seçeneklerinin ikisi de devre dışı
bırakıldığında, rsync’in
davranışı cp(1) ve tar(1) gibi
diğer dosya kopyalama uygulamalarıyla aynıdır.
Özetle: Hedef dosyalara (hem eski hem de yeni) kaynak izinlerini
vermek için --perms kullanılmalıdır.
Yeni dosyalara hedefin öntanımlı izinlerini vermek
için (mevcut dosyaları değiştirmeden
bırakarak), --perms seçeneği
olmaksızın --chmod=ugo=rwX kullanılması
gerekir (bu, tüm maskelenmemiş bitlerin
etkinleştirilmesini sağlar). Bu seçeneklerin daha
sonra kolayca yazılması için, ~/.popt adında
bir dosya oluşturup komut satırının bu dosyay
yazılması ve popt takma adının
tanımlanması yeterli olur. Aşağıdaki
örnekte, diğer seçeneklere ek olarak hedef dizinin
öntanımlı grubunun kullanılması
için --no-g seçeneğini de içeren bir
takma ad olarak -Z seçeneği
tanımlanmaktadır:
rsync alias -Z --no-p --no-g --chmod=ugo=rwX
- Bu yeni seçenek komut satırında
şöyle kullanılabilirdi:
rsync -avZ kaynak/ hedef/
- (Önemli: -a seçeneğinin
-Z seçeneğinden önce
kullanılmasına dikkat edilmelidir, yoksa yukarıdaki -
-no-* seçeneklerinin ikisi de geçersiz olur.)
--perms seçeneğinin belirtilmediği durumda yeni
oluşturulan dizinlerde hedefin setgid bitinin korunması
özelliği 2.6.7 sürümünde
eklenmiştir. Daha eski rsync sürümleri, yeni
oluşturulan dizinde hedefin setgid bitini geçersiz
kılarken, --perms belirtilmediğinde yeni
oluşturulan dosyalar için üç özel izin
bitini hatalı bir şekilde koruyordu. rsync 2.6.7
sürümünde ACL yamasına
öntanımlı ACL gözlemi eklendi, bu nedenle daha
eski (veya ACL-etkin olmayan) rsync’ler,
öntanımlı ACL’ler mevcut olsa bile
umask’ı kullanır. (Bu
davranışları etkileyenin,
alıcının rsync sürümü
olduğunu unutulmamaldır.)
-
-E, --executability
-
--perms seçeneği etkin değilse
bu seçenek normal dosyaların
çalıştırılabilirliğini/çalıştırılamazlığını
korur. Normal bir dosyanın
çalıştırılabilir olması
için izinlerinde en azından bir "x" etkin
olmalıdır. Mevcut bir hedef dosyanın
çalıştırılabilirliği
kaynaktakinden farklıysa rsync hedef dosyanın
izinlerinde aşağıdaki gibi değişiklik
yapar:
- •
- Bir dosyanın
çalıştırılabilir olmaması
için rsync dosyanın tüm ’x’
izinlerini kapatır.
- •
- Bir dosyayı
çalıştırılabilir yapmak için her
etkin ’r’ izni için ’x’ iznini etkin
kılar.
-
--perms seçeneği etkinse bu
seçenek yok sayılır.
-
-A, --acls
- Bu seçenekle hedefin ACL’si (Erişim
Denetim Listesi) kaynağınkiyle aynı
yapılır. Bu seçenek --perms
seçeneğinin örtük olarak uygulanmasına
sebep olur.
Bu seçeneğin düzgün
çalışabilmesi için kaynak ve hedef
ACL’lerinini uyumlu olması gerekir. Uyumlu olmayan
ACL’lerin yedeklenmesi ve geri yüklenmesi ile ilgili bilgi
için bkz: --fake-super.
-
-X, --xattrs
- Bu seçenek, hedefin ek özniteliklerinin
kaynağınkiyle aynı olmasını
sağlar.
Genişletilmiş öznitelik isim alanlarını
destekleyen sistemler için, ayrıcalıklı
kullancı tarafından yapılan bir kopyalama,
sistem.* dışındaki tüm isim
alanlarını kopyalar. Normal bir kullanıcı
yalnızca user.* isim alanını kopyalar. Normal
kullanıcı aidiyetinde olmayan isim alanlarının
normal bir kullanıcı olarak yedeklenmesi ve geri
yüklenmesi ile ilgili bilgi için bkz: --fake-super.
Yukarıdaki isim alanı yetkilendirmesi x belirteçli
süzme seçenekleriyle geçersiz
kılınabilir. Ek öznitelikleri etkileyen bir
süzme kuralı belirtildiğinde, rsync,
kullanıcının kendi sistem.*/user.*
süzme kurallarını uygulamasını ve
ayrıca kopyalanacak veya silinecek ek öznitelik
adlarına ilişkin ek süzme işlemlerini
yapmasını gerektirir. Örneğin, sistem.*
isim alanını atlamak için şu belirtilebilir:
- Kullanıcı isim alanı
dışındaki tüm isim alanlarını
atlamak için kullanıcı isim alanına
olumsuzlama uygulanabilir:
- Özniteliklerin silinmesini engellemek için
tüm isimleri dışlayan alıcıya
özel bir kural belirtilebilir:
-
-X seçeneği yinelenmedikçe
(-XX gibi) rsync’in özel ek öznitelik
değerlerini (örn, --fake-super ile
kullanılanları) kopyalamaz. Bu "tüm ek
öznitelikleri kopyala" kipi --fake-super
seçeneğiyle birlikte kullanılamaz.
-
--chmod=KİP
- Bu seçenek, aktarımdaki dosyaların
izinlerine bir veya daha fazla virgül ayraçlı
chmod kipinin uygulamasını sağlar. Ortaya
çıkan değer, gönderen tarafın dosya
için sağladığı izinler olarak
değerlendirilir; --perms seçeneği
belirtilmemişse bu seçeneğin mevcut dosyalar
üzerinde hiçbir etkisi olmaz.
chmod(1) kılavuz sayfasında belirtilen normal
çözümleme kurallarına ek olarak, ’
D’ ile öncelenerek belirtilen öğeler
yalnızca dizinlere, ’ F’ ile
öncelenerek belirtilen öğeler ise yalnızca
dosyalara uygulanır. Örneğin,
aşağıdakiler tüm dizinlerin setgid olarak
imlenmesini, dosyalara başkaları tarafından
yazılamamasını, kullanıcı ve grup
tarafından yazılabilmesini ve tüm bitlerle
tutarlı çalıştırılabilirlik
sağlayacaktır:
--chmod=Dg+s,ug+w,Fo-w,+X
- Ayrıca sekizlik gösterime de izin verilir:
- Çok sayıda --chmod
seçeneği belirterek bunların yapılacak
değiklikler listesine eklenmesini sağlamak da
mümküdür.
Aktarımdaki dosyalara uygulanabilen izin değerlerinin
--perms ve --executability seçenekleriyle
verdiği sonuçları incelemek için bu
seçeneklerin açıklamalarına
bakılabilir.
-
-o, --owner
- Alıcı taraftaki rsync
ayrıcalıklı kullancının aidiyetinde
çalıştırıldığı
takdirde, hedef dosyanın sahibinin aynı kaynak dosyadaki
gibi belirlenmesini sağlar (ayrıca, bkz: --super ve
--fake-super). Çoğu sistemde sadece
ayrıcalıklı kullanıcı dosya aidiyetini
belirleyebilir. Bu seçenek olmaksızın yeni ve/veya
aktarılan dosyaların sahibi alıcı taraftaki
rsync’i çalıştıran
kullanıcıdır.
Sahiplik koruması, ilişkilendirmenin
öntanımlı olarak kullanıcı
adıyla yapılmasını gerektirir, ancak
bazı durumlarda son çare olarak kullanıcı
kimliği de kullanılabilir (Bu konu --numeric-ids
seçeneğinin açıklamasında daha
ayrıntılı incelenmiştir).
-
-g, --group
- Alıcı taraftaki rsync
ayrıcalıklı kullancının aidiyetinde
çalıştırıldığı
takdirde, hedef dosyanın grubunun aynı kaynak dosyadaki gibi
belirlenmesini sağlar. Alıcı tarafta
rsync’i ayrıcalıklı
kullanıcı çalıştırmıyorsa
(veya --no-super belirtilmişse), yalnızca
çalıştıran kullanıcının
üyesi olduğu gruplar korunur. Bu seçenek
olmaksızın yeni ve/veya aktarılan dosyaların
grubu alıcı taraftaki rsync’i
çalıştıran kullanıcının
öntanımlı grubudur.
Grup koruması, ilişkilendirmenin
öntanımlı olarak grup adıyla
yapılmasını gerektirir, ancak bazı durumlarda
son çare olarak grup kimliği de kullanılabilir (Bu
konu --numeric-ids seçeneğinin
açıklamasında daha ayrıntılı
incelenmiştir).
- --devices
- Aktarılan karakter ve blok aygıtları
alıcı sistemde yeniden oluşturulur.
Alıcı taraftaki rsync
ayrıcalıklı kullanıcının
aidiyetine değilse, aygıt dosyalarını
oluşturma adımı sessizce atlanır
(ayrıca, bkz: --super ve --fake-super).
Bu seçenek belirtilmemişse, öntanımlı
olarak rsync rastladığı her aygıt
dosyası için "skipping non-regular file" (normal
dosya olmadığından atlanıyor)
uyarısı üretir. Uyarıyı
--info=nonreg0 kullanarak susturmak mümkündür.
- --specials
- Soket, isimli boru gibi özel dosyaların
aktarılmasını sağlar. Alıcı
taraftaki rsync ayrıcalıklı
kullanıcının aidiyetine değilse, bu
dosyaları oluşturma adımı sessizce
atlanır (ayrıca, bkz: --super ve
--fake-super).
Bu seçenek belirtilmemişse, öntanımlı
olarak rsync rastladığı her özel dosya
için "skipping non-regular file" (normal dosya
olmadığından atlanıyor) uyarısı
üretir. Uyarıyı --info=nonreg0 kullanarak
susturmak mümkündür.
- -D
- "--devices --specials"
seçeneklerine eşdeğerdir.
- --copy-devices
- Bir aygıtın gönderen tarafta
sıradan bir dosya olarak ele alınmasını ve
alıcı tarafta normal bir dosyaya (veya
--write-devices seçeneği de belirtilmişse
başka bir aygıta) kopyalanmasını
sağlar.
Bu seçenek rsync artalan süreci tarafından
öntanımlı olarak reddedilir.
- --write-devices
- Bir aygıtın alıcı tarafta
sıradan bir dosya olarak ele alınmasını ve
dosya verisinin bir aygıta yazılmasını
sağlar.
Örtük olarak --inplace seçeneğinin
uygulanmasını sağlar.
- Dikkat:
-
rsync özellikle,
ayrıcalıklı kullancının aidiyetinde
çalışıyorsa, aktarım
sırasında alıcı tarafta hangi
aygıtların mevcut olduğunun bilinmesi gerekir.
- Bu seçenek rsync artalan süreci
tarafından öntanımlı olarak reddedilir.
-
-t, --times
- Bu seçenek rsync’e, dosyaları
değişiklik zamanlarına göre
aktarmasını ve bunları uzak sistemde
güncellemesini söyler. Bu seçenek
kullanılmazsa, değiştirilmemiş
dosyaları dışlayan en iyileme etkili olamaz;
başka bir deyişle, bu seçeneğin veya -a
seçeneğinin yokluğu sonraki aktarımda
-I kullanılmış gibi tüm
dosyaların güncellenmesine yol açar (eğer
dosyalar gerçekten değişmemişse,
rsync’in delta aktarım algoritması
güncellemeyi oldukça verimli yapsa da bu
seçeneğin kullanılması çok daha iyi
olacaktır).
-
-U, --atimes
- Hedef dosyanın erişim zamanına kaynak
dosyadaki değerin atanmasını sağlar.
Yinelenirse, aktarım tamamlandıktan sonra
rsync’in bir süre daha
çalıştırılması gerekmeksizin,
gönderici ve alıcı sistemlerin aktarılan
dosyaların erişim zamanlarını
eşlemesine yardımcı olan --open-noatime
seçeneğini örtük olarak etkinleştirir.
- Bilgi:
- 3.2.0 öncesi bazı rsync
sürümleri, bu seçenek yinelendiğinde
örtük olarak --open-noatime uygulamayan bir ön
--atimes yamasıyla derlenmiş olabilir.
-
- --open-noatime
- Aktarılmakta olan dosyaların erişim
zamanının değiştirilmemesi için
dosyaların O_NOATIME bayrağıyla (destekleyen
sistemlerde) açılmasını sağlar.
İşletim sisteminiz O_NOATIME
bayrağını desteklemiyorsa, rsync bu
seçeneği sessizce yok sayar. Ayrıca, bazı
dosya sistemlerinin, O_NOATIME bayrağı belirtilmeden
bile, okuma erişiminde erişim zamanın
güncellenmesini önleyecek şekilde
bağlanabildiği unutulmamalıdır.
-
-N, --crtimes
- Hedef dosyanın oluşturulma zamanına
kaynak dosyadaki değerin atanmasını sağlar.
-
-O, --omit-dir-times
- Değişiklik, erişim ve
oluşturulma zamanlarını korumak için
dizinlerin atlanmasını sağlar. Alıcı
tarafta NFS’nin paylaştığı dizinler
için bu seçeneği kullanmak daha iyidir.
--backup bu seçenekle birlikte --backup-dir
olmaksızın kullanılamaz.
Bu seçeneğin ayrıca --inc-recursive
seçeneğinde incelendiği gibi
arttırımlı özyineleme
etkinleştirildiğinde eksik alt dizinlerin önceden
oluşturulmasını önleme gibi bir yan etkisi de
vardır.
-
-J, --omit-link-times
- Değişiklik, erişim ve
oluşturulma zamanlarını korumak için sembolik
bağların atlanmasını sağlar.
- --super
- Bu seçenekle rsync, alıcı
tarafta ayrıcalıklı kullanıcı
tarafından
çalıştırılmamış olsa bile
ayrıcalıklı kullanıcı etkinliklerini
yerine getirebilir. Bu etkinlikler şunları içerir:
--owner seçeneği
aracılığıyla
kullanıcıları korumak, --group
seçeneği aracılığıyla tüm
grupları (yalnızca geçerli
kullanıcının gruplarını değil)
korumak ve --devices seçeneği
aracılığıyla aygıtları
kopyalamak. Ayrıcalıklı kullanıcı
olmadan bu tür etkinliklere izin veren sistemler için ve
ayrıca alıcı taraf ayrıcalıklı
kullanıcı olarak
çalıştırılmıyorsa hata
almanızı sağlamak için
kullanışlıdır.
Ayrıcalıklı kullanıcı etkinliklerini
kapatmak için ayrıcalıklı
kullanıcı --no-super seçeneğini
kullanabilir.
- --fake-super
- Bu seçenek etkinleştirildiğinde,
rsync, her dosyaya eklenen özel ek öznitelikler
aracılığıyla (gerektiğinde)
ayrıcalıklı öznitelikleri kaydederek/geri
yükleyerek ayrıcalıklı kullanıcı
etkinliklerini taklit eder. Buna dosyanın sahip ve grubu
(öntanımlı değilse), dosyanın
aygıt bilgisi (aygıt ve özel dosyalar boş
metin dosyaları olarak oluşturulur) ve gerçek
dosyalara atanmasına izin verilmeyen veya sahibinin
erişimini kısıtlayan ( chattr +i <dosya>
komutundaki gibi) izin bitleri dahildir. Bu seçenek ayrıca
ACL’lerin ( --acls belirtilmişse) ve
kullanıcı ek özniteliklerinin ( --xattrs
belirtilmişse) de işlenebilmesini sağlar.
Bu seçenek, ayrıcalıklı kullanıcı
olmaksızın verileri yedeklemenin ve uyumsuz sistemlerdeki
ACL’leri depolamanın iyi bir yoludur.
Bu seçenek sadece seçeneği kullanan tarafı
etkiler. Uzak kabuk bağlantısının uzak
tarafını etkilemek için --remote-option
(-M) seçeneği kullanılır:
rsync -av -M --fake-super /kaynak/ konak:/hedef/
- Yerel kopya için, bu seçenek hem
kaynağı hem de hedefi etkiler. Yerel kopyanın sadece
hedef dosyalar için bu seçeneği
etkinleştirmesi istenirse -M --fake-super
seçenekleri, sadece kaynak dosyalar için ise --super
ile -M -fake-super birlikte kullanılır.
Bu seçenek hem --super hem de --no-super
seçeneğini geçersiz kılar.
Artalan sürecinin rsyncd.conf(5) dosyasındaki
"fake super" modül seçeneğinin
açıklamasına da bakılabilir.
-
-S, --sparse
- Bu seçenekle rsync, seyrek dosyaların
hedefte daha az yer kaplayacak şekilde elde edilmesini
sağlamaya çalışır. --inplace ile
birlikte kullanılırsa, oluşturulan dosya bazı
çekirdek sürümlerinde ve/veya dosya sistemlerinde
seyrek bloklarla sonuçlanmayabilir. --whole-file etkinse
(örneğin yerel kopya için),
güncellenmiş sürüm yazılmadan
önce dosya kırpıldığından daima
en iyi sonuç elde edilir.
- Uyarı:
- 3.1.3 öncesi rsync sürümlerinde
--sparse ve --inplace birlikte kullanılamaz.
-
- --preallocate
- Alıcı tarafın, dosyaya veri yazmadan
önce her hedef dosyaya nihai boyutunu tahsis etmesini
sağlar. rsync, her bloğa boş karakter yazan
yavaş glibc uygulamasını değil,
yalnızca Linux’un fallocate(2) sistem
çağrısı veya Cygwin’in
posix_fallocate(3) çağrısı
tarafından sağlanan gerçek dosya sistemi
düzeyinde ön tahsis desteğini kullanır.
Bu seçenek olmadan, büyük dosyaların
blokları dosya sisteminde bitişik olmayabilir, ancak bu
seçenekle rsync muhtemelen daha yavaş kopyalama
yapar. Hedef, genişletme destekleyen bir dosya sistemi (ext4, xfs,
NTFS, vb.) değilse, bu seçeneğin hiçbir olumlu
etkisi olmayabilir.
--sparse ile birlikte kullanımda çekirdek
sürümü ve dosya sistemi türü,
(boş karakter dizgeleri tahsisinin aksine) ayrılan veride
delikler oluşturmayı destekliyorsa, dosyada yalnızca
seyrek bloklar bulunacaktır.
-
-n, --dry-run
- Bu seçenek rsync’e, herhangi bir dosya
aktarımı yapmamasını, sadece
yapıyormuş gibi işlemleri raporlamasını
söyler. rsync gerçekten
çalıştırılmadan önce ne
yapacağını görmek için
çoğunlukla --verbose (-v) ve/veya
--itemize-changes ( -i) seçenekleriyle birlikte
kullanılır.
--itemize-changes çıktısının,
kuru çalıştırmada ve sonraki gerçek
çalıştırmada tamamen aynı olması
beklenir (kasıtlı hile ve sistem
çağrısı hataları hariç);
aynı değilse, bu yazılım
hatasıdır. Diğer
çıktıların çoğunlukla
değişmemesi gerekir, ancak bazı alanlarda
farklılık gösterebilir. Özellikle, kuru
çalıştırmada dosya aktarımları
için gerçek veriler gönderilmez, bu nedenle
--progress seçeneğinin hiçbir etkisi olmaz,
"gönderilen baytlar", "alınan baytlar",
"değişmez veriler" ve "eşleşen
veriler" istatistikleri çok
küçüktür ve "hızlanma"
değeri, dosya aktarımının gerekmediği
bir çalıştırmaya eşdeğerdir.
-
-W, --whole-file
- Bu seçenekle delta aktarım algortiması
kullanılmaz ve bunun yerine dosya olduğu gibi
gönderilir. Eğer kaynak ile hedef konaklar arasındaki
aktarım hızı disk yazma hızından
(özellikle disk, ağ dosya sisteminin bir
parçası ise) yüksekse bu seçenekle
aktarım daha hızlı olabilir. Kaynak ve hedef yerel
dosya yolları olarak belirtilmişse ve hiçbir toplu
işlem dosyası yazma seçeneği etkin
değilse bu seçenek öntanımlıdır.
-
-no-W, --no-whole-file
- Yerel aktarımda --whole-file
öntanımlı olduğunda bu seçenek onu
kapatır. Bu genellikle rsync’i
yavaşlatır, ancak hedef dosyaya yazılanlar en aza
indirilmeye çalışılıyorsa (
--inplace ile birlikte kullanılıyorsa) veya
sağlama toplamı tabanlı güncelleme
algoritması sınanacaksa yararlı olabilir.
Bkz: Yukarıdaki --whole-file seçeneği.
-
-cc, --checksum-choice=ALGO
- Bu seçenek, sağlama toplamı
algoritmalarını geçersiz kılar. Bir algoritma
adı belirtilirse, hem aktarım sağlama
toplamları hem de ( --checksum belirtildiğini
varsayarak) aktarım öncesi sağlama toplamları
için kullanılır. Virgülle
ayrılmış iki ad verilirse, ilk ad aktarım
sağlama toplamlarını ve ikinci ad aktarım
öncesi sağlama toplamlarını ( -c)
etkiler.
Algoritma seçenekleri:
auto (öntanımlı otomatik seçim)
xxh128
xxh3
xxh64 (diğer adı: xxhash)
md5
md4
none
- Kurulu sürümün
öntanımlı sağlama toplamı
algoritmalarının listesi (yukarıdakinden
farklı olabilir) için rsync --version komutu
kullanılabilir.
İlk isim veya tek isim olarak " none" belirtilirse
--whole-file seçeneği zorlanır ve
hiçbir sağlama toplamı sınaması
yapılmaz. İkinci veya tek isim olarak "
none" belirtilirse --checksum seçeneği
belirtilemez.
" auto" seçeneği
öntanımlı olup rsync, algoritma
seçimini aşağıdaki gibi istemci ve sunucu
arasındaki uzlaşıma dayalı olarak yapar:
Aktarımın her iki tarafında da 3.2.0 ve
üstü rsync olduğunda, istemcinin ve sunucunun
seçenekler listesindeki ilk algoritma seçilir. Ortak bir
sağlama toplamı seçeneği bulunamazsa,
rsync hata vererek çıkar. Uzak rsync,
sağlama toplamı uzlaşımını
desteklemek için çok eskiyse, protokol
sürümüne göre bir değer seçilir
(protokol yaşına göre MD4’ün
çeşitli türleri ile MD5 arasından bir
seçim yapılır).
Öntanımlı sıra, RSYNC_CHECKSUM_LIST ortam
değişkenine boşlukla ayrılmış
kabul edilebilir sağlama toplamı adları listesi
atanarak özelleştirilebilir. Dizge bir "&"
karakteri içeriyorsa, liste "istemci dizgesi & sunucu
dizesi" olarak ayrılır, aksi takdirde aynı dizge
her ikisi için de geçerli olur. Dizge (veya dizge
bölümü) boşluk olmayan karakterler
içermiyorsa, öntanımlı sağlama
toplamı listesi kullanılır. Bu yöntem,
aktarım sağlama toplamını, aktarım
öncesi sağlama toplamından ayrı olarak
belirlemenize izin vermez ve " auto" ve tüm
bilinmeyen sağlama toplamı adlarını yok sayar.
Yalnızca geçersiz adlardan oluşan bir liste,
başarısız uzlaşımla
sonuçlanır.
Bu seçenek ortam değişkeninde belirtilen listeyi
geçersiz kılar.
-
-x, --one-file-system
- Bu seçenek rsync’e,
ardışık aktarım sırasında dosya
sistemi sınırlarının
dışına çıkmamasını
söyler. Bu, kullanıcının birden çok
dosya sisteminden kopyalanacak öğeleri belirleme
yeteneğini sınırlamaz, yalnızca
rsync’in kullanıcının
belirlediği her dizini ve alt dizinlerini
ardışık taramasını ve ayrıca
silme sırasında alıcı tarafta da buna benzer
bir işlem yapmasını sağlar. Ayrıca,
rsync’in aynı aygıta bir
"bağlama" noktası oluşturup aynı
dosya sistemindeymiş gibi davrandığını
unutulmamalıdır.
Bu seçenek yinelenirse, rsync tüm bağlama
noktası dizinlerini kopyadan çıkarır. Aksi
takdirde, karşılaştığı her
bağlama noktasında (bağlama noktasının
bulunduğu dizininin özelliklerine
erişilemediğinden bağlı dizinin
özniteliklerini kullanarak) boş bir dizin oluşturur.
rsync’ten sembolik bağları daraltması
istendiyse ( --copy-links veya --copy-unsafe-links
aracılığıyla), başka bir
aygıttaki bir dizine giden bir sembolik bağ, bir
bağlama noktası olarak değerlendirilir. Dizin
olmayanlara sembolik bağlar bu seçenekten etkilenmez.
-
--existing, --ignore-non-existing
- Bu seçenek rsync’e, hedefte yeni
dosya/dizin oluşturulmasını gerektirecek
aktarımları yapmamasını sadece
güncelleme yapmasını söyler.
--ignore-existing seçeneği ile birlikte
kullanılırsa, hiçbir dosya güncellenmez
(yapılmak istenen gereksiz dosyaları silmekse yararlı
olabilir).
Bu seçenek bir aktarım kuralıdır,
dışlama kuralı değildir, bu bakımdan
dosya listelerine giden veriyi ve dolayısıyla silme
işlemini etkilemez. Sadece alıcının
aktarılmasını istediği dosyaları
sınırlar.
- --ignore-existing
- Bu seçenek rsync’e, hedefte mevcut
olan dosyaları güncellememesini söyler (Bu mevcut
dizinleri yok saymaz ya da hiçbir şey yapılmaz).
Ayrıca bkz: --ignore-non-existing
Bu seçenek bir aktarım kuralıdır,
dışlama kuralı değildir, bu bakımdan
dosya listelerine giden veriyi ve dolayısıyla silme
işlemini etkilemez. Sadece alıcının
aktarılmasını istediği dosyaları
sınırlar.
Bu seçenek, --link-dest seçeneğini kullanarak
yedekleme yapanlar için kesintiye uğrayan bir yedeklemeyi
devam ettirmek gerektiğinde yararlı olabilir.
--link-dest kullanımı (düzgün
kullanıldığında) yeni bir dizin
hiyerarşisine kopyalama yapılmasını
sağladığından --ignore-existing
seçeneği ile evvelce işlem
görmüş dosyaların didiklenmemesi
sağlanır (sabit bağlı dosyaların
izinlerinde değişiklik yapılmasını
önler). Yani, bu seçenek yalnızca hedef
hiyerarşi içinde mevcut olan dosyalarla ilgilenir.
--info=skip2 kullanıldığında
rsync, BİLGİ’nin "tür
değişikliği", "toplam
değişiklik" ( -c gerektirir), "dosya
değişikliği" (hızlı
sınamaya dayalı olarak),"öznitelik
değişikliği" veya "güncel"
anlamına geldiği " DOSYA var
(BİLGİ)" iletisini
çıktılar. --info=skip1
kullanıldığında ise (örtük
olarak -vv uygulayarak) mevcut iletiyi BİLGİ
soneki olmadan çıktılar.
- --remove-source-files
- Bu seçenek rsync’e, hedefte yeni
oluşturulan dosyalarla içeriği
güncellenenleri, gönderen taraftan silmesini söyler.
Dizinler ve aygıtlar ile sadece öznitelikleri
değiştirilmiş dosyalar silinmez.
Bu seçenek yalnızca hareket görmeyen kaynak dosyalarda
kullanılmalıdır. Belirli bir dizinde
görünen dosyaların başka bir konağa
taşınması için kullanılıyorsa,
tamamlanan dosyaların kaynak dizinde doğrudan
üzerlerine yazılmadığından, isimlerinin
değiştirildiğinden emin olunmalıdır,
böylece rsync henüz tam olarak
yazılmamış bir dosyayı muhtemelen
aktaramayacaktır. Dosyalar önce farklı bir dizine
yazılamıyorsa, rsync’in henüz
tamamlanmamış dosyaları aktarmaktan
kaçınmasını sağlayan bir
adlandırma deyimi kullanılmalıdır
(örneğin, dosyanın adını
yazıldığında “ foo.new”,
işi bittiğinde “ foo” yapmak ve
ardından rsync aktarımı için
--exclude=’*.new’ seçeneğini kullanmak
gibi).
3.1.0 sürümünden başlayarak, dosyanın
boyutu veya değiştirilme zamanı
değişmemişse, rsync gönderen
tarafı silme işlemini bir hata vererek atlayacaktır.
- --delete
- Bu seçenek rsync’e, hedefte olup
kaynakta olmayan dosyaları hedeften silmesini söyler, fakat
sadece dosyalar dizinleri ile belirtilmişse bu
yapılır. Yani, rsync’den tüm dizini
(" dir" veya "dir/" gibi)
göndermesini istemeli, dizin içeriğini belirten dosya
kalıpları (" dir/*" gibi)
belirtmemelisiniz. Dosya kalıpları belirtildiğinde
kalıp kabuk tarafından yorumlanır ve kabuk
rsync’den dosyaları kapsayan dizini değil, tek
tek dosyaları aktarmasını ister. Aktarımdan
dışlanan dosyalardan biriyse, --delete-excluded
kullanılmamışsa ya da kurallar sadece gönderen
tarafla eşleşenleri imliyorsa hedefte silinecek olanlar da
dışlanır ( SÜZME KURALLARI
bölümündeki içerme/dışlama
belirteçlerine bakınız).
rsync 2.6.7 öncesinde, --recursive etkin
olmadıkça bu seçeneğin hiçbir etkisi
olmazdı. 2.6.7 sürümünden itibaren, silme
işlemi sadece içeriği kopyalanan dizinler için
sadece --dirs (-d) etkin olduğunda etkili olur.
Bu seçenek doğru şekilde kullanılmazsa tehlikeli
olabilir. Önce --dry-run (-n)
seçeneğiyle silinecek dosyaları görüp,
önemli dosyaların silinmeyeceğinden emin olduktan
sonra asıl işlemi başlatmak çok daha iyidir.
Gönderen tarafta bir G/Ç hatası
saptandığında hedefteki dosya silme işlemi
iptal edilir. Bu, gönderen tarafın alıcı
taraftaki dosyaları tümden silmesi gibi geçici dosya
sistemi hatalarına karşı (NFS hataları gibi)
bir önlemdir. Bu davranış --ignore-errors
seçeneğiyle iptal edilebilir.
--delete seçeneği silme zamanını
belirten --delete-* seçenekleriyle, --delete-excluded
dahil, herhangi bir sorun olmaksızın
birleştirilebilir. Ancak, silme zamanını belirten
--delete-* seçeneklerinden biri belirtilmemişse,
öntanımlı olarak hedefteki rsync 3.0.0 veya
sonraki bir sürümse --delete-during
algoritmasını, öncekilerden biri ise
--delete-before algoritmasını seçer.
Ayrıca bkz: --delete-after ve --delete-delay.
- --delete-before
- Alıcı taraftaki dosya silme
işlemlerinin aktarım başlamadan önce
yapılmasını sağlar. Doğrudan veya
örtük dosya silinmesi ile ilgili daha
ayrıntılı bilgi için bkz: --delete
seçeneği.
Aktarımın başında silme yapılması,
eğer dosya sistemi doluluk bakımından
sınırda ise ve ancak fazlalıkların
kaldırılmasıyla dosya aktarımı
mümkün olabilecekse yararlıdır. Ancak, bu
seçenek aktarımın başlamasını
geciktirdiğinden aktarımın
zamanaşımına uğramasına (
--timeout belirtilmişse) sebep olabilir. Ayrıca
rsync’i, aktarımdaki tüm dosyaları
bellekte bir kerede taramak için eski,
artırımlı olmayan yineleme
algoritmasını kullanmaya zorlar. (Bkz: --recursive
seçeneği).
-
--del, --delete-during
- Alıcı taraftaki dosya silme
işlemlerinin aktarım sırasında
arttırımlı yapılmasını
sağlar. Bu yöntem silme işleminin aktarımdan
önce ve sonra yapıldığı algoritmalardan
daha hızlıdır. Dizin başına silme
taraması, her dizin güncellemeler için denetlenmeden
hemen önce yapılır, bu nedenle daha verimli bir
--delete-before gibi davranır, silme işlemlerinin
dizin başına süzme dosyalarının
güncellenmesinden önce yapılması da buna
dahildir. Fakat ilk olarak rsync’in 2.6.4
sürümüyle kullanılabilir olmuştur.
Doğrudan veya örtük dosya silinmesi ile ilgili daha
ayrıntılı bilgi için bkz: --delete
seçeneği.
- --delete-delay
- Alıcı taraftaki dosya silme
işlemlerinin aktarım sırasında
hesaplanmasını ( --delete-during gibi) ve
aktarım tamamlandıktan sonra da
gerçekleştirilmesini sağlar. Bu,
--delay-updates ve/veya --fuzzy ile
birleştirildiğinde yararlıdır ve
--delete-after kullanmaktan daha verimlidir (ancak farklı
davranabilir, çünkü --delete-after silmeleri,
tüm güncellemeler yapıldıktan sonra
ayrı bir geçişte hesaplanır).
Kaldırılan dosyaların sayısı dahili bir
tamponu aşarsa, adları tutmak için
alıcı tarafta geçici bir dosya oluşturulur
(açılırken kaldırılır, bu
nedenle aktarım sırasında göremezsiniz).
Geçici dosyanın oluşturulması
başarısız olursa, rsync --delete-after
kullanmaya geri dönmeye çalışır
(eğer --recursive arttırımlı bir tarama
yapıyorsa bu yapılamaz). Doğrudan veya
örtük dosya silinmesi ile ilgili daha
ayrıntılı bilgi için bkz: --delete
seçeneği.
- --delete-after
- Alıcı taraftaki dosya silme
işlemlerinin aktarım tamamlandıktan sonra
yapılmasını sağlar. Eğer
aktarımın bir parçası olarak dizin
başına yeni dosya birleşimleri
yapıyorsanız ve bunların
dışlanmasının aktarımın silme
fazında etkin olmasını istiyorsanız bu
seçenek yararlı olacaktır. Ayrıca
rsync’i, aktarımdaki tüm dosyaları
bellekte bir kerede taramak için eski,
arttırımlı olmayan özyineleme
algoritmasını kullanmaya zorlar. (Bkz: --recursive
seçeneği). Doğrudan veya örtük dosya
silinmesi ile ilgili daha ayrıntılı bilgi için
bkz: --delete seçeneği.
Ayrıca, yalnızca silme işlemlerinin
aktarımın sonunda gerçekleşmesini isteyenler
için daha hızlı bir seçim olabilecek
--delete-delay seçeneğine de bakılabilir.
- --delete-excluded
- Alıcı tarafta olup, gönderici tarafta
olmayan dosyaların alıcı tarafta silinmesine ek
olarak, alıcı tarafta dışlanan
dosyalarında silinmesini sağlar (bkz: --exclude
seçeneği). Alıcı tarafta tek tek
dosyaların dışlanmasının bu
yöntemle silinmesi ve silinmesi istenmeyen dosyaların bu
seçenekten korunması ile ilgili bilgiler için
SÜZME KURALLARI bölümüne
bakınız. Doğrudan veya örtük dosya
silinmesi ile ilgili daha ayrıntılı bilgi için
bkz: --delete seçeneği.
- --ignore-missing-args
-
rsync, açıkça
(örneğin, komut satırı girdileri veya
--files-from girdileri ile) istenen kaynak dosyaları ilk kez
işlerken, dosyanın bulunamaması normalde bir
hatadır. Bu seçenek bu hatayı baskılar ve
dosyayı aktarmaya çalışmaz. Bir
dosyanın başlangıçta mevcut olduğu ve
daha sonra artık orada olmadığı tespit
edilmişse, sonraki kaybolan dosyalarla ilgili hatalar bundan
etkilenmez.
- --delete-missing-args
- Bu seçenek --ignore-missing-args
seçeneğinin (örtük)
davranışını bir adım öteye
taşır: her eksik girdi, alıcı taraftaki
(varsa) karşılık gelen hedef dosya için silme
isteği haline gelir. Hedef dosya boş olmayan bir dizinse,
yalnızca --force veya --delete etkinse
başarıyla silinir. Bunun dışında, bu
seçenek diğer herhangi bir silme işlemi
türünden bağımsızdır.
Eksik kaynak dosyalar, --list-only
çıktısında " *missing"
girdisi olarak görünen özel dosya listesi
girdileriyle temsil edilir.
- --ignore-errors
- G/Ç hataları olsa bile --delete
işleminin sürdürülmesini sağlar.
- --force
- Gönderici tarafta olmayan ancak alıcı
tarafta olan dizinlerin içleri dolu bile olsa yerlerine aynı
isimde bir dosya aktarılıyorsa silinmesini sağlar. Bu
sadece --delete seçeneği olmaksızın
böyledir, çünkü silme işlemleri
artık iç içe dizinler içeren bir tepe dizinin
silinmesi şeklinde yapılmaktadır. Doğrudan
veya örtük dosya silinmesi ile ilgili daha
ayrıntılı bilgi için bkz: --delete
seçeneği.
- Eski rsync sürümlerinde
-
--delete-after kullanılırken
--force hala zorunluydu ve --recursive
seçeneği de etkinleştirilmediği takdirde
işlevsel değildi.
-
-
--max-delete=SAYI
-
SAYI’dan fazla dosya ya da dizin silinmez.
Sınır aşılırsa silme işlemi
aktarımın sonuna atlar ve atlanan silme işlemlerinin
sayısını bildiren bir uyarı
çıktılayıp (daha önemli hatalar
olmadıkça) 25 hata koduyla çıkar.
Yansılama yapılırken çok büyük
ağaçların yıkımına yol
açmamak için yararlıdır.
3.0.0 sürümünden itibaren, hedefteki gereksiz dosyalar
hakkında hiçbiri silinmeden uyarılmak için
--max-delete=0 belirtilebilir. Daha eski istemciler bunu
"sınırsız" olarak yorumluyordu, bu nedenle
istemcinin sürümü bilinmiyorsa, silmeye izin
verilmeyeceğini belirtmek için geriye dönük
uyumlu bir yol olarak, daha az belirgin olan --max-delete=-1
kullanılabilir (gerçekten eski sürümler,
sınır aşıldığında
uyarmıyordu).
-
--max-size=BOYUT
-
BOYUT bayttan dha büyük dosyalar
aktarılmaz. BOYUT belirtilirken, bayttan büyük
birimler için sonek olarak K, M, G gibi bayt
çarpanları belirtilebileceği gibi kesirli
değerler de belirtilebilir ( --max-size=1.5m gibi).
Bu seçenek bir aktarım kuralıdır,
dışlama kuralı değildir, bu nedenle dosya
listelerine giren verileri etkilemez ve dolayısıyla silme
işlemlerini de etkilemez. Sadece alıcının
aktarılmasını istediği dosyaların
sayısını sınırlar.
Birim dizgesinin ilk harfi B (bayt), K (kilo), M (mega), G (giga), T (tera)
veya P (peta) olabilir. Dizge tek bir karakterse veya kendisine
"ib" eklenmişse (örneğin, "G"
veya "GiB") bu durumda birimler 1024’ün
katlarıdır. "B" ile biten iki harfli bir son ek
kullanırsanız (ör. “kb”) 1000’in
katları olan birimler elde edersiniz. Dizgenin harfleri, birimi
belirten herhangi bir büyük veya küçük
harfi içerebilir.
Son olarak, dizge “+1” veya “-1” ile bitiyorsa,
belirtilen yönde bir bayt kaydırılır.
Mümkün olan en büyük değer genellikle
8192P-1’dir.
Örnekler: --max-size=1.5mb-1 ise 1499999 bayttır ve
--max-size=2g+1 ise 2147483649 bayttır.
3.1.0 öncesi rsync sürümlerinde
--max-size=0 belirtilemezdi.
-
--min-size=BOYUT
- Belirtilen BOYUT değerinden daha
küçük herhangi bir dosyayı aktarmaktan
kaçınmasını söyler,
küçük, gereksiz dosyaları aktarmamaya
yardımcı olabilir. BOYUT
açıklaması ve diğer bilgiler için bkz:
--max-size seçeneği.
3.1.0 öncesi rsync sürümlerinde
--max-size=0 belirtilemezdi.
-
--max-alloc=BOYUT
- Öntanımlı olarak rsync,
malloc/realloc’u ayrırma başına boyut olarak
yaklaşık 1 GB ile sınırlar. Çoğu
durumda bu sınır gayet iyi
çalışır ve rsync’in çok
büyük miktarda bellek talep etmesine neden olan bir protokol
hatasını önler. Ancak, bir aktarımda
milyonlarca dosya, büyük miktarda sunucu belleği
varsa ve aktarım birden çok parçaya
bölünmek istenmiyorsa, ayırma başına
sınır daha büyük bir değere
yükseltilebilir ve böylece rsync daha fazla bellek
tüketir.
Bunun, ayrılan belleğin toplam boyutu için bir
sınır olmadığını
unutmayın. Her ayrı tahsis için
tutarlılık değeridir.
BOYUT --max-size seçeneğinde
açıklanan bir sonekle belirtilebilmektedir. Bir sonek
belirtilmezse birim olarak bayt öntanımlıdır.
3.2.3 sürümü itibariyle 0 değeri
sınır olmadığını belirtmektedir.
Bu seçenek tarafından desteklenen BOYUT
değerlerini kullanarak RSYNC_MAX_ALLOC ortam
değişkenine öntanımlı bir değer
atayabilirsiniz. Uzak rsync --max-alloc
seçeneğini anlamıyorsa, --max-alloc=1g
belirterek ortam değişkenindeki değeri
geçersiz kılabilirsiniz; "1G"
öntanımlı değer olduğundan rsync
seçeneği uzak tarafa göndermeyecektir.
-
-B, --block-size=BOYUT
- Delta aktarım algoritmasında sabit bir blok
boyunun kullanımına zorlar. Normalde, bu değer
güncellenen her dosya için ayrı ayrı
seçilir. Daha ayrıntılı bilgi için
teknik rapora bakınız.
3.2.3 sürümü itibariyle, BOYUT --max-size
seçeneğinde açıklanan bir sonekle
belirtilebilmektedir. Daha eski sürümler BOYUT olarak
sadece bayt sayısı kabul ederdi.
-
-e, --rsh=KOMUT
- Bu seçenek yerel ve uzak rsync
kopyaların arasında iletişim için başka
bir uzak kabuk uygulaması belirleyebilmeyi sağlar. Genelde,
rsync öntanımlı olarak ssh(1)
kullanacak şekilde yapılandırılır,
fakat yerel ağda rsh(1) kullanımı da tercih
edilebilir.
Bu seçenek [kullanıcı@]konak::modül/yol girdisi
ile birlikte kullanılırsa, uzak makinedeki rsync
sunucusunu çalıştırmak için belirtilen
uzak kabuk KOMUT’u kullanılacak ve aktarım
için uzak makinede çalışan rsync
sunucusunun soket bağlantısı değil, uzak kabuk
bağlantısı kullanılacaktır.
Ayrıca, bkz: RSYNC ARTALAN SÜRECİNE UZAK KABUKTAN
BAĞLANMAK
rsync 3.2.0 ve sonrasında, uzak kabuk
bağlantısı aracılığıyla
artalan sürecine bağlanılırsa
RSYNC_PORT ortam değişkeni etkinleştirilir.
Öntanımlı artalan süreci portu
kullanılacaksa değişkene 0 atanır. Ya da
rsync://URL ile veya --port seçeneği ile
belirtilen rsync portunun değeri atanır. Bu,
betiğin öntanımlı olmayan bir port istenip
istenmediğini ayırt etmesine ve ssl veya
stunnel yardımcı betiğinin
öntanımlı porta veya başka bir porta
bağlanmasını sağlar.
KOMUT’un rsync’e tek bir girdi olarak
sunulması koşuluyla, KOMUT içinde komut
satırı girdileri kullanımına izin verilir.
Komutu ve girdileri birbirinden ayırmak için boşluk
(sekme veya diğer boşluk karakterlerini değil)
kullanılmalıdır. Bir girdideki
boşlukları korumak için ise tek ve/veya çift
tırnak kullanılabilir (ancak ters eğik
çizgileri değil). Tek tırnaklı bir dizge
içinde çifte tek tırnak
kullanımının tek tırnakla
sonuçlandığı, çift tırnak
için de benzerinin geçerli olduğunu
unutulmamalıdır (ayrıca, kabuğun ve
rsync’in hangi tırnakları
çözümlediğinin de bilinmesi gerekir).
Bazı örnekler:
-e ’ssh -p 2234’
-e ’ssh -o "VekilKomutu nohup ssh firewall nc -w1 %h %p"’
- (ssh kullanıcıları konağa
özgü bağlantı seçeneklerini kendi
.ssh/config dosyalarında belirtebilir.)
Ayrıca, uzak kabuk uygulaması -e
seçeneğindeki gibi değer kabul eden RSYNC_RSH
ortam değişkeni kullanılarak da belirtilebilir.
Ayrıca, bu seçenekten etkilenen --blocking-io
seçeneğine de bakılabilir.
-
--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/rsync gibi).
UYGULAMA kabuk tarafından
çalıştırılacağından
herhangi bir uygulama, betik ya da bir dizi komut olabilir. Bir dizi komut
belirtiyorsanız rsync’in iletişimde
kullanacağı standart girdi ve standart
çıktının devre dışı
kalmamasına dikkat edilmelidir.
Aşağıdaki örnekte uzak makinede
--relative seçeneği ile kullanmak için
farklı bir öntanımlı dizin belirtilmektedir:
rsync -avR --rsync-path="cd /a/b && rsync" konak:c/d /e/
-
-
-M,
--remote-option=SEÇENEK
- Bu seçenek, belli etkilerin aktarımın
sadece bir tarafıyla sınırlanmasının
istendiği ileri düzey durumlarda kullanılır.
Örneğin, --log-file=DOSYA ve
--fake-super seçenekleri uzak sisteme aktarılmak
istenirse, şöyle belirtilebilir:
rsync -av -M --log-file=foo -M --fake-super kaynak/ hedef/
- Normalde her iki tarafı da etkileyen bir
seçeneğin, aktarımın sadece yerel
tarafını etkilemesi istenirse uzak tarafa bir red
gönderilebilir:
rsync -av -x -M --no-x kaynak/ hedef/
- Bu kullanılırken dikkatli
olunmalıdır, çünkü rsync’in
soket üzerinden hangi verilerin bekleneceği konusunda
farklı bir fikre sahip olmasına neden olacak ve
anlaşılmaz bir nedenle başarısız
kılacak bir seçeneği açıp kapamak
mümkündür.
Aktarmak istediğiniz her uzak seçenek için ayrı
bir -M seçeneği kullanmanız gerektiğini
unutmayın. Daha eski rsync sürümlerinde, uzak
seçenek girdisi içinde herhangi bir boşluğun
varlığı, onun ayrı ayrı uzak girdilere
bölünmesine neden olabilir, ancak
günümüz rsync’inde bu durum --old-args
kullanımını gerektirir.
Yerel aktarım açısından, "yerel" taraf
gönderici, "uzak" taraf alıcıdır.
Popt seçenek çözümleme
kütüphanesinin bazı sürümlerinde,
içinde eşit imi bulunan bir seçeneğin,
kısa bir seçenek harfine bitişik olarak
kullanılmasını (-M--log-file=/tmp/foo gibi)
engelleyen bir yazılım hatası vardır.
Kullanılan popt sürümünü etkileyen
böyle bir hata varsa, rsync ile birlikte gelen popt
sürümü kullanılabilir.
-
-C, --cvs-exclude
- Sistemler arasında aktarımı istenmeyen
geniş bir dosya kümesinin dışlanması
için bir kısayol olarak
kullanışlıdır. CVS’nin
yoksayılacak dosyaları saptamakta
kullandığı algoritma kullanılır.
Dışlama listesi aşağıdakilerle
ilklendirilir (bunlar kolay bozulan olarak imlenir - bkz: SÜZME
KURALLARI):
RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS .make.state .nse_depinfo *~
#* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj
*.so *.exe *.Z *.elc *.ln core .svn/ .git/ .hg/ .bzr/
$HOME/.cvsignore içindeki dosyalarla CVSIGNORE ortam
değişkeninde (tüm isimler bir boşlukla
ayrılarak belirtilir) listelenen her dosya aralarına
boşluk konarak bu listeye eklenir.
Son olarak, .cvsignore dosyası ile aynı dizindeki
dosyalardan .cvsignore dosyasında listelenmiş
kalıplarla eşleşen dosyalar yok
sayılır. rsync’in süzme ve
dışlama uyguladığı dosyaların
aksine bu kalıplar boşluklarla ayrılır. Daha
fazla bilgi için cvs(1) sayfasına
bakınız.
Bu seçenek --filter kurallarıyla birlikte belirtilirse,
-C seçeneğinin komut satırının
neresinde olduğuna bakılmaksızın, CVS
dışlananları --filter
kurallarının sonuna eklenir. Bu, onlara --filter
kurallarına göre daha düşük
öncelik verir. CVS dışlananlarının
--filter kurallarına nasıl ekleneceği
belirlenmek istenirse, -C seçeneği, komut
satırında değil --filter=:C veya
--filter=-C biçeminde --filter
seçeneğinin bir uzantısı olarak belirtilebilir
(bu, komut satırında belirtilebileceği gibi
süzme dosyasına ":C" ve "-C"
kuralları yerleştirilerek de belirtilebilir). İlk
kural her dizinde .cvsignore dosyalarına
bakılmasını, ikinci kural ise yukarıda
bahsedilen CVS dışlananlarının bir
kereliğine dahil edilmesini sağlar.
-
-f, --filter=KURAL
- Bu seçenek aktarılacak dosyalar listesinden
belli dosyaların seçilerek dışlanması
için kurallar eklemenizi mümkün kılar. Bu
seçenek alt dizinlerin ardışık
aktarıldığı aktarımlarda
kullanıldığında çok
yararlıdır.
Dışlanacak dosyaların listesini oluşturmak
içim komut satırında çok sayıda
--filter seçeneği belirtebilirsiniz. KURAL
boşluk karakterleri içeriyorsa, kabuğun kuralı
tek bir terim olarak aktarabilmesi için tırnak içine
alınması gerekir. Kılavuzun devamında
belirtildiği gibi, kuralı girdileriyle
ilişkilendirmek için boşluk yerine alt çizgi
konulabilir.
Bu seçenek hakkında daha ayrıntılı bilgi
için bkz: SÜZME KURALLARI
- -F
- Bu seçenek iki defa belirtildiğinde komuta
iki --filter kuralı eklemeye eşdeğerdir.
İlk seçenek şu kuralı ekler:
--filter=’: /.rsync-filter’
- Bu kural, rsync’in dizin hiyerarşisi
dahilinde serpiştirilmiş .rsync-filter
dosyalarına bakmasını ve aktarımda bu
dosyalardaki süzme kurallarını
kullanmasını sağlar. -F seçeneği
ikinci kez kullanılmışsa şu kuralı
uygular:
--filter=’- .rsync-filter’
- Bu kural .rsync-filter dosyalarının
kendilerinin aktarımdan dışlanmasını
sağlar.
Bu seçenek hakkında daha ayrıntılı bilgi
için bkz: SÜZME KURALLARI
-
--exclude=KALIP
- Bu seçenek bir dışlama kuralı
tanımlanmasını sağlayan --filter
seçeneğinin basitleştirilmiş bir
biçimidir. Seçenek, normal süzme
kurallarının kural çözümleme
sözdizimine izin vermez.
Bu seçenek hakkında daha ayrıntılı bilgi
için bkz: SÜZME KURALLARI
-
--exclude-from=DOSYA
- Bu seçenek, dışlama
kurallarının belirtilen dosyadan
alınmasını sağlaması
dışında --exclude seçeneğinin
benzeridir. DOSYA içindeki boş satırlar,
’ ;’ veya ’#’ ile
başlayan satırlar yoksayılır.
DOSYA olarak - belirtilmişse, liste standart girdiden
okunur.
-
--include=KALIP
- Bu seçenek bir içerme kuralı
tanımlanmasını sağlayan --filter
seçeneğinin basitleştirilmiş bir
biçimidir. Seçenek, normal süzme
kurallarının kural çözümleme
sözdizimine izin vermez.
Bu seçenek hakkında daha ayrıntılı bilgi
için bkz: SÜZME KURALLARI
-
--include-from=DOSYA
- Bu seçenek, içerme kurallarının
belirtilen dosyadan alınmasını sağlar.
DOSYA içindeki boş satırlar, ’
;’ veya ’ #’ ile başlayan
satırlar yoksayılır.
DOSYA olarak - belirtilmişse, liste standart girdiden
okunur.
-
--files-from=DOSYA
- Bu seçeneği kullanarak aktarılacak
dosyaların tam listesi belirtilebilir. Liste DOSYAdan ya da
"-" belirtilmişse standart girdiden okunur.
Ayrıca, bu seçenekle birlikte öntanımlı
uygulanan seçeneklere bağlı olarak
rsync’in öntanımlı
davranışı kolayca değiştirilebilir:
- ○
-
--relative (-R) seçeneği
uygulanarak DOSYA içindeki her öğede
belirtilen yol bilgisi korunmuştur (bu
davranışı kapatmak için --no-relative
veya --no-R seçeneği
kullanılmalıdır).
- ○
-
--dirs (-d) seçeneği
uygulanarak listede belirtilen dizinlerin atlanmayıp, hedefte
oluşturulması sağlanmıştır (bu
davranışı kapatmak için --no-dirs veya
--no-d seçeneği
kullanılmalıdır).
- ○
-
--archive (-a) seçeneği
uygulanmasına rağmen bu seçeneğin
uygulamalarından biri olan --recursive (-r)
seçeneği uygulanmadığından, bu
davranışın uygulanması istenirse
--recursive ( -r) seçeneğinin ayrıca
belirtilmesi gerekir.
- ○
- Yan etkiler rsync’in
öntanımlı durumunu değiştirir. Bu
nedenle komut satırındaki --files-from
seçeneğinin konumunun diğer seçeneklerin
çözümlenişiyle hiçbir ilgisi yoktur
(örneğin, -a seçeneği,
--files-from seçeneğinin öncesinde de
sonrasında da aynı biçimde
çalışır).
-
DOSYA’dan okunan dosya isimlerinin hepsi
kaynak dizine göre değerlendirilir; öğelerin
başındaki " /"lar ile daha üst
dizinlere çıkılmasını sağlayan
" ../"lar kaldırılır. Örnek:
rsync -a --files-from=/tmp/foo /usr uzak:/yedek
-
/tmp/foo içinde "bin" (hatta
" /bin") diye bir girdi varsa, /usr/bin dizini
hedefte /yedek/bin dizini olarak oluşturulur. Dizin
"bin/" olarak içeriliyorsa (sondaki
/’a dikkat), 2.6.4 ve üstü
sürümlerde /usr/bin dizinindeki dosyalar da
aktarılır. Her iki durumda da -r
(ardışıklık) seçeneği
belirtilmişse dizinin tüm hiyerarşisi
aktarılır ( -a seçeneği
tarafından uygulanmadığından -r
seçeneğinin açıkça --files-from
seçeneği ile birlikte belirtilmesi gerektiği
unutulmamalıdır). Ayrıca -r
seçeneğinin etkisinin (öntanımlı olarak
etkindir) yalnızca dosyadan okunan yol bilgisini yinelemek
olduğu da unutulmamalıdır - ancak, kaynak için
belirtilmiş yolun yinelenmesine zorlamaz (örnekte
/usr)
Ek olarak, eğer DOSYA’yı
"uzak:" öneki ile belirtirseniz, bu dosya yerel
konaktan değil, uzak konaktan okunur (konak
eşleştirmesi aktarımın sonunda
yapılır). Bir kısaltma olarak,
"aktarımın yapıldığı uzak
konak" anlamında sadece ":" önekini de
kullanabilirsiniz. Örnek:
rsync -a --files-from=:/yol/dosya-listesi uzak:/ /tmp/kopya
- Bu komut "uzak" makinesindeki
/yol/dosya-listesi dosyasında listelenmiş
dosyaları kopyalayacaktır.
--iconv ve --protect-args seçenekleri
belirtilmişse ve --files-from seçeneği
dosyaları bir konaktan diğerine gönderiyorsa
aktarılan dosyaların karakter kümesi, gönderen
konağın karakter kümesinden alıcı
konağın karakter kümesine
dönüştürülür.
- Bilgi:
-
--files-from girdisindeki dosya listesini
sıralamak, bitişik girdiler arasında
paylaşılan yol öğelerinin yeniden ziyaretinden
kaçınılacağından rsync’in
daha verimli olmasına yardımcı olur. Giriş
sıralanmazsa, bazı yol öğeleri
(örtük dizinler) birden çok kez taranabilir ve
rsync, bunları eninde sonunda dosya listesi
öğelerine dönüştürerek
tekilleştirir.
-
-
-0, --from0
- Bu seçenek rsync’e, bir dosyadan
okunan dosya isimlerinin sonlandırılmasının
satır sonu karakteri (LF) veya satır başı
karakteri (CR) ya da her bu ikisinin birlikte
kullanılmasıyla (CR+LF) değil sadece boş
karakterle (’\0’)
yapıldığını belirtir. Bu seçenek
--exclude-from, --include-from, --files-from ve
--filter kuralı ile belirtilen dosyaları etkiler.
Dosya isimlerinin boşluk ile ayrıldığı
.cvsignore dosyalarını kullanan --cvs-exclude
seçeneğini etkilemez.
- --old-args
-
rsync’e uzak taraftaki girdi
değerlerini istenmeyen sözcük
ayrıştırmasından veya diğer
yanlış yorumlamalardan korumaya
çalışmayı bırakmasını
söyler.
Günümüz rsync’inde
öntanımlı olan, uzak kabuğa gönderilen
girdilerde kabuğun özel karakterlerinin (boşluklar
dahil) ters eğik çizgi ile öncelenmesidir. *, ?,
[, ] joker karakterleri , --usermap gibi seçenek
girdilerinde öncelenirken dosya adı girdilerinde
öncelenmez (birden çok dosya adına
genişlemeleri sağlanır).
Dosya adlarında eski tarz sözcük
ayrıştırması bir betikle
yapılıyorsa, bu seçenek bir kez belirtilir. Uzak
kabukta ters eğik çizgi öncelemesi sorunluysa, iki
kez belirtilir.
Bu seçenek yerine RSYNC_OLD_ARGS ortam değişkeni
de kullanılabilir. Ortam değişkenin değeri
"1" ise rsync öntanımlı olarak tek
seçenekli, "2" veya daha büyük ise,
rsync öntanımlı olarak yinelenen
seçenek durumuna geçer. "0" ise,
öntanımlı önceleme
davranışı elde edilir. Ortam
değişkeninin değeri, komut satırından
belirtilen olumlu veya olumsuz seçenekler tarafından
geçersiz kılınabilir ( --no-old-args olumsuz
seçenektir).
Bu seçenek --protect-args seçeneğiyle birlikte
kullanılamaz.
-
-s, --protect-args
- Bu seçenek, tüm dosya adlarını
ve çoğu seçeneği rsync’e uzak
kabukta yorumlamamak üzere gönderir. Joker karakterler, uzak
konakta kabuk yerine rsync tarafından genişletilir.
Bu, 3.2.4’te eklenen, girdilerin yeni tarz ters eğik
çizgi öncelemesine benzer, ancak bazı ek
özellikler de desteklenir ve işlem, uzak kabuktaki ters
eğik çizgi öncelemesine bırakılmaz.
Bu seçenek --iconv ile birlikte
kullanıldığında, uzak taraftaki ilgili
girdilerin karaktar kümesi yerelinkinden uzağınkine
dönüştürülür. Bu
dönüşüm joker karakterler
genişletilmeden önce yapılır. Ayrıca
bkz: --files-from.
Bu seçenek yerine RSYNC_PROTECT_ARGS ortam
değişkeni de kullanılabilir. Sıfırdan
farklı bir değer atanırsa işlem
öntanımlı olarak etkin olur, aksi takdirde
öntanımlı olarak etkin olmaz. Ortam
değişkeninin değeri, komut satırından
belirtilen olumlu veya olumsuz seçenekler tarafından
geçersiz kılınabilir ( --no-s ve
--no-protect-args olumsuz seçeneklerdir). Bu ortam
değişkeni ayrıca sıfırdan farklı
bir değerle atanmış RSYNC_OLD_ARGS ortam
değişkeni tarafından da geçersiz
kılınabilir.
3.0.0 öncesi bir rsync ile etkileşirken bu
seçeneği iptal etmeniz gerekebilir.
Bu seçenek --old-args seçeneği ile birlikte
kullanılamaz.
Bu seçeneğin, seçenekleri betiğin incelemesinden
gizleyen kısıtlı rsync betiğinin
(rrsync) kullanımıyla uyumlu
olmadığını unutulmamalıdır.
-
--copy-as=KULLANICI[:GRUP]
- Bu seçenek, kopyalama işlemleri için
rsync’e KULLANICI’yı ve (iki nokta
üst üste belirtilmişse) GRUP’u
kullanmasını söyler. Bu, yalnızca
rsync’i çalıştıran
kullanıcının kullanıcıları
değiştirme yeteneği varsa
çalışır. GRUP belirtilmemişse,
kullanıcının öntanımlı grubu
kullanılır.
Bu seçenek, sistem dosyalarının root yetkileriyle
okunup yazılmadığından emin olunmak istenmesi
durumunda ve rsync’in, üzerinde anlık
değişiklikler olabilecek bir dizinde root olarak dizin
içinden veya dışından
çalıştırılma riskini azaltmaya
yardımcı olabilir. Seçenek, bazen root seviyesinde
konak erişim yetkilerinin kullanımına ihtiyaç
duyulan bir ortamda rsync’i belirtilen
kullanıcı olarak
çalıştırabilmeyi mümkün
kılar. Böylece, uzak kabuk veya artalan süreci
bağlantısından sonra kopyalama aşaması
için rsync’in root yetkilerini belirtilen
kullanıcya terketmesi sağlanabilir.
Seçenek, aktarım yerelken iki tarafıda etkilerken yerel
olmadığı durumda yalnızca yerel tarafı
etkiler. Uzak tarafı etkilemek için --remote-option
kullanılır. Yerel aktarım için,
aktarımın uzak tarafını etkileyen
seçenekleri belirtmek için "localhost:" veya
"lh:" konak belirtiminin kullanımına olanak
sağlayan ( rsync paketinin support dizinindeki)
lsh (veya lsh.sh) destek betiği
kullanılabilir.
Örneğin, aşağıdaki komut root aidiyetinde
çalıştırılmakta fakat yerel
dosyaları "veli" kullanıcısı
yazmaktadır:
sudo rsync -aiv --copy-as=veli konak1:backups/veli/ /home/veli/
- Bu, tüm dosyaların sahibini ve grubunu
"veli" yapar ve veli kullanıcısının
değişiklik yapma yetkisinin olmadığı
bir dosyada değişiklik başlatmak için
zamanlı saldırı yapmasını
imkansız hale getirir.
Aşağıdaki root aidiyetinde
çalıştırılan komutta "veli"
kullanıcısı olarak hedef/ dizinine yerel
kopyalama yapılmaktadır ( support/lsh
betiğinin $PATH dizinlerinde bir yere
kopyalanmış olduğu varsayılmaktadır):
sudo rsync -aive lsh -M--copy-as=veli kaynak/ lh:hedef/
-
-
-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, belirtilen DİZİN
içindeki geçici dosya adlarının
önüne fazladan bir nokta eklenmez (yine de bunlara rastgele
bir sonek eklenir).
Bu seçenek çoğunlukla, alıcı disk
bölümünde aktarımdaki en büyük
dosyanın bir kopyasını tutacak kadar yer
olmadığında kullanılır. Bu durumda
(yani, göndericinin dizini farklı bir disk
bölümünde olduğunda), rsync
alınan her geçici dosyayı adını
değiştirerek ilişkili hedef dosyanın
üstüne yazamaz, geçici dosya yapmadan dosyayı
yerine kopyalaması gerekir. Bu durumda, hedef dosya, kopyalama
sırasında kırpılan verileri de içerir.
Bu şekilde yapılmasaydı (hedef dosya önce
silinse, veriler hedef dizindeki geçici bir dosyaya yerel olarak
kopyalanıp sonra bu dosya silinenin yerine
aktarılsaydı) eski dosya diskte yer kaplamaya devam eder
(birisi zaten açmışsa) ve bu nedenle aynı anda
diskte yeni sürümü sığdırmak
için yeterli yer olmayabilirdi.
Bu seçenek disk alanı yetersizliği
dışında bir nedenle kullanılıyorsa,
--delay-updates seçeneğiyle birlikte kullanmak iyi
olabilir; bu, kopyalanan tüm dosyaların hedef
hiyerarşisindeki alt dizinlere yerleştirilmesini ve
aktarımın bitmesinin beklenmesini
sağlayacaktır. Hedef bölüme gelen tüm
dosyaların kopyalarını yapmak için yeterli
alanınız yoksa, rsync’e disk alanı
hakkında fazlaca endişe
duyulmadığını söylemenin başka
bir yolu, göreli bir yol belirten --partial-dir
seçeneğini kullanmaktır; Bu, rsync’e
hedef hiyerarşideki bir alt dizinin, tek bir dosya
kopyasını saklamak için uygun olduğunu
söylediğinden, rsync, belirtilen dizini kopyalanan
dosyayı getirmek için bir hazırlama alanı
olarak kullanacak ve ardından onu yeniden adlandırarak
yerine yazacaktır. ( --partial-dir seçeneğine
mutlak bir yol belirtmenin böyle bir yan etkisi yoktur.)
-
-y, --fuzzy
- Bu seçenekle, hedefte bulunmayan her dosya
için benzer bir dosya aranacağı belirtilir.
Şimdiki algoritma, hedef dosya için aynı dizinde,
aynı boyda ve aynı değişiklik zamanlı
ya da aynı isimli bir dosya arar. Böyle bir dosya varsa, bu
dosya bulanık bir hedef dosya olarak aktarımın
hızlandırılması amacıyla
kullanılır.
Seçenek tekrarlanırsa, bulanık tarama,
--compare-dest, --copy-dest veya --link-dest
seçenekleriyle belirtilenlerle eşleşen diğer
hedef dizinlerde de yapılır.
- Bilgi:
-
--delete seçeneği bu amaçla
kullanılabilecek bir dosyanın işlem öncesinde
silinmesine yol açabileceğinden, dosyanın silinmemesi
için, bu seçenek yerine ya --delete-after
seçeneği kullanılmalı ya da uygun bir
dışlama kuralı belirtilmelidir.
-
-
--compare-dest=DİZİN
- Bu seçenekle, alıcı makinede hedef
dizinde olmayan dosyalar için
karşılaştırmanın
DİZİNe göre yapılacağı
belirtilir. Eğer DİZİN içinde
göndericideki dosyanın aynısı varsa bu dosya
aktarılmaz. Bu, sadece bir önceki yedeklemeden beri
değişmiş dosyaların yedeklenmesi için
kullanışlıdır. Bu seçenek genellikle
dosyaları boş (veya yeni oluşturulan) bir dizine
kopyalamak için kullanılır.
rsync 2.6.4 ve sonrasında, çok sayıda
--compare-dest dizini belirtilebilmektedir. Sadece
öznitelikleri uyuşmayan bir dosya bulunursa, yerel bir kopya
yapılıp öznitelikleri güncellenir. Eğer
bir eşleşme bulunamazsa, işlemi
hızlandırmak için bu DİZİNlerin
birinden temel bir dosya seçilir.
Eğer DİZİN göreli belirtilmişse
hedef dizine göreli olduğu kabul edilir. Ayrıca bkz:
--link-dest ve --copy-dest
- Bilgi:
- 3.1.0 ve üstü sürümlerde,
belirtilen diğer --compare-dest
DİZİNlerde tam bir eşleşme
bulunması durumunda boş olmayan hedef dizinlerden (nihai
sonucun yeni bir kopyayla daha iyi eşleşmesini
sağlamak için) bir dosya silinir.
-
-
--copy-dest=DİZİN
- Bu seçenek --compare-dest gibi
davranır, ancak rsync ayrıca
DİZİN’de bulunan
değişmemiş dosyaları yerel bir kopya
kullanarak hedef dizine kopyalar. Bu, mevcut dosyaları
olduğu gibi bırakırken yeni bir hedefe aktarım
yapmak ve ardından tüm dosyalar başarıyla
aktarıldığında hızlıca bir
geçiş yapmak için
kullanışlıdır.
Çok sayıda --copy-dest DİZİNi
belirtilebilir, bu da rsync’in
değişmemiş bir dosyayı listede belirtilen
sırada aramasına neden olur. Bir eşleşme
bulunamazsa, aktarımı hızlandırmak için
DİZİN’lerden birinden temel bir dosya
seçilir.
DİZİN göreli bir yol belirtiyorsa hedef dizine
görelidir. Ayrıca bkz --compare-dest ve
--link-dest.
-
--link-dest=DİZİN
- Bu seçenek, DİZİN
içindeki değişmemiş dosyaların hedef
dizine sabit bağlı yapılması
dışında --compare-dest seçeneği
gibi davranır. Sabit bağlı yapılacak dosyalar
öznitelikleri (izinler, sahipler, v.s) bakımından
kaynaktakilerle tamamen aynı olmalıdır. Örnek:
rsync -av --link-dest=$PWD/öndizin konak:kaynak/ yeni/
- Dosyalar bağlanmıyorsa,
özniteliklerine en az iki kez bakılmalıdır.
Ayrıca bazı özniteliklerin rsync’in denetimi
dışında zorlanıp
zorlanmadığına da bakılmalıdır,
örneğin kök dizini tek bir kullanıcıya
zorlayan veya çıkarılabilir bir
sürücü soysal sahiplikle bağlayan bir mount
seçeneği (OS X’in "Bu birimde sahipliği
yoksay" seçeneği gibi).
2.6.4 sürümünden başlayarak, çok
sayıda --link-dest dizini belirtilebilmektedir. Bu da
rsync’in tam eşleşme için listeyi belirtilen
sırayla aramasına neden olur (bu türde 20 dizinlik
sınır vardır). Yalnızca niteliklerde
farklılık gösteren bir eşleşme
bulunursa, yerel bir kopya yapılır ve nitelikler
güncellenir. Bir eşleşme bulunamazsa,
aktarımı hızlandırmak için
DİZİN’lerin birinden temel bir dosya
seçilecektir.
Bu seçenek en çok boş bir hedef hiyerarşisine
kopyalama yaparken işe yarar, çünkü mevcut
dosyaların öznitelikleri değiştirilebilir ve
bu da diğer hedef dosyaları sabit bağlar yoluyla
etkileyebilir. Ayrıca, değişikliklerin
ayrıntılandırılması biraz
karışık olabilir. 3.1.0
sürümünden önce, bir hedef dosya zaten mevcut
olduğunda, başka bir dizinle tam bir
eşleşmenin asla sağlanamayacağı (veya
hedefe bağ oluşturulamayacağı)
unutulmamalıdır.
- Bilgi:
- Bu seçenek --ignore-times ile birlikte
kullanılırsa, rsync hiçbir dosyayı birbirine
bağlamayacaktır, çünkü dosyanın
aktarılması için yedek olarak sadece eş
dosyalar birbirine bağlanır, dosya güncellendikten
sonra asla ek bir denetim yapılmaz.
-
DİZİN göreli bir yol
belirtiyorsa hedef dizine görelidir. Ayrıca bkz:
--compare-dest ve --copy-dest.
2.6.1 sürümünden önceki
sürümlerde, -o seçeneği (-a
seçeneği de bu seçeneği uygular)
belirtilmişse, --link-dest seçeneği root
olmayan bir kullanıcı için istendiği gibi
çalışmayacaktır (yazılım
hatası). Bu hatadan korunmak için böyle bir
rsync ile gönderimde -o seçeneği
kullanılmamalıdır.
-
-z, --compress
- Bu seçenekle gönderilen dosyaların
verileri, aktarım miktarını azaltmak için
sıkıştırılır. Özellikle,
yavaş bağlantılar için çok
yararlıdır.
Rsync çok sayıda sıkıştırma
yöntemini desteklemektedir, --compress-choice (--zc)
seçeneği ile zorlanmadıkça birini otomatik
olarak seçecektir.
Derleme sırasında seçilmiş
sıkıştırma algoritmalarının
listesi rsync --version komutu ile
görüntülenebilir.
Aktarım sırasında her iki tarafta da 3.2.0 veya
üstü bir sürüm kullanılıyorsa,
istemcinin ve sunucunun algoritma listesinden ilk algoritmaları
ayrı ayrı seçer. Ortak bir
sıkıştırma algoritması bulunamazsa
rsync hata vererek çıkar. Uzak rsync
sağlama toplamı uzlaşımını
desteklemek için çok eski ise listesinde "zlib"
bulunduğu varsayılır.
Öntanımlı sıra, RSYNC_COMPRESS_LIST ortam
değişkenine kabul edilebilir algoritma isimleri
boşluk ayraçlı sıralanarak
özelleştirilebilir. Algortima isimleri &
içeriyorsa "istemci dizgesi & sunucu dizgesi"
biçeminde oluşturulduğu varsayılır,
aksi takdirde aynı dizge her iki tarafa da uygulanır. Dizge
(veya bir kısmı) boşluk olmayan karakterler
içermiyorsa öntanımlı
sıkıştırma listesi kullanılır.
Listedeki bilinmeyen algoritma isimleri iptal edilir, ancak liste tamamen
geçersiz isimlerden oluşuyorsa uzlaşım
başarısız olur.
Bazı eski rsync sürümleri
öntanımlı zlib sıkıştırma
yöntemi ile uyumsuz olduklarında -zz
seçeneğinin kullanımı gerektirecek
şekilde yapılandırıldıklarından
-z seçeneğinin kullanımını
reddeder. rsync sunucusu, açıkça -zz
belirtilmesi gerektiği konusunda uyarmadıkça bu
tuhaflık yok sayılabilir.
-
-zc,
--compress-choice=DİZGE
- Bu seçenek, --compress
kullanıldığında yapılan otomatik
sıkıştırma algoritması
uzlaşımını geçersiz kılmak
için kullanılabilir. Örtük olarak
--no-compress uygulanmasını sağlayan
"none" belirtilmedikçe bu seçenek
örtük olarak --compress seçeneğinin
uygulanmasını sağlar.
Kullanılabilen sıkıştırma
seçenekleri:
- Derleme sırasında seçilmiş
sıkıştırma algoritmalarının
listesi rsync --version komutu ile
görüntülenebilir (yukarıdaki listeden
farklı olabilir).
--old-compress veya --new-compress seçeneği
hakkında bir hata görürseniz, daha fazla rsync
sürümünün tanıdığı
--compress-choice=zlib veya --compress-choice=zlibx
seçeneği geriye uyumluluk adına gönderilmeye
çalışılıyor demektir. Bu hata,
sunucudaki eski rsync sürümünün
sıkıştırma türünü
zorlamanıza izin vermeyeceğini gösterir.
"zlibx" sıkıştırma
algoritmasının, (harici bir zlib gerçeklenimiyle
uyumlu hale gelebilmesi için) eşleşen verilerin
sıkıştırma akımına dahil
edilmediği bir "zlib" algoritması oluşuna
dikkat edilmelidir.
-
-zl, --compress-level=SAYI
- Öntanımlı
sıkıştırma seviyesi yerine kullanılacak
sıkıştırma seviyesini (bkz: --compress,
-z) doğrudan tanımlamak için
kullanılır. --compress seçeneği,
geçerli olan sıkıştırma
algoritması için
"sıkıştırma yapılmayan"
seviye seçilmediği sürece örtük olarak
uygulanır (örneğin, zlib
sıkıştırması, 0. seviyeyi
"sıkıştırma yapılmayan"
seviye olarak değerlendirir).
Seviye değerleri etkin olan sağlama toplamına
bağlı olarak değişiklik gösterir.
Çünkü rsync öntanımlı
olarak bir sağlama toplamı seçiminde (uzak
rsync yeterince yeni bir sürümse)
uzlaşım arayacaktır. Geçerli seçimden
emin olunamıyorsa, bu seçeneği bir
--compress-choice ( --zc) seçeneğiyle birlikte
kullanmak iyi olabilir. Örnek:
rsync -aiv --zc=zstd --zl=22 konak:kaynak/ hedef/
-
zlib ve zlibx
sıkıştırmaları için
geçerli değerler 1’den 9’a kadar olup 6
öntanımlı değerdir. --zl=0 belirtilirse
sıkıştırma yapılmaz. --zl=-1 ile
öntanımlı olan 6. seviye
sıkıştırma uygulanır.
zstd sıkıştırması için
geçerli değerler -131072’den 22’ye
kadar olup 3 öntanımlı değerdir. SAYI
olarak 0 belitilirse öntanımlı
öntanımlı olan 3. seviye
sıkıştırma uygulanır.
lz4 sıkıştırması için
geçerli bir değer yoktur, dolayısıyla
değer daima 0 olur.
Çok küçük ya da çok büyük
bir değer belirtilirse sayı sessizce geçerli
değerle sınırlanır. Bu, --zl=999999999
gibi bir değer belirtilmeye ve hangi algoritma seçilirse
seçilsin azami sıkıştırma seviyesine
ulaşmaya olanak tanır.
Etkin olan sıkıştırma seviyesini sorgulamak ve
"uzlaşılan dizge" sonuçlarını
görüntülemek için --debug=nstr
belirtilebilir. Bu, (etkin sağlama toplamı seçimi ile
birlikte) "Client compress: zstd (level 3)" benzeri bir dizge
çıktılar.
-
--skip-compress=LİSTE
- Bilgi:
- Her dosya için ayrı ayrı
sıkıştırma değişikliği
desteği olan herhangi bir yöntem yoksa bu
seçeneğin de herhangi bir etkisi yoktur.
- Çok az
sıkıştırılabilecek dosya soneklerini
içeren LİSTEyi geçersiz kılar.
rsync, her dosya için sıkıştırma
düzeyini dosyanın sonekine göre ayarlar.
Sıkıştırma algoritmasının
"sıkıştırma yapılmayan"
seviyesi varsa, bu dosyalar için
sıkıştırma gerçekleşmez.
Akım seviyesinde anında seviye değiştirmeyi
destekleyen diğer algoritmalar, eşleşen her dosya
için işlemci kullanımını
mümkün olduğunca azaltmak için seviyeyi en aza
indirecektir.
LİSTE eğik çizgilerle (/)
ayrılmış birden fazla dosya soneki içerebilir.
Hiçbir dosyanın atlanmayacağını
belirtmek için değer olarak boş dizge ("")
verilebilir.
Basit karakter sınıfı eşleşmesi
desteklenmektedir. Örneğin "[:alpha:]"
sınıfından başka birşey belirtilmezse
’-’ karakterinin özel bir anlamı
olmaz.
Yıldız (*) ve soru iminin (?) özel anlamları
vardır.
Aşağıdaki örnekte atlanacak 6 sonek
belirtilmektedir (mp[34] iki sonekle eşleşir):
--skip-compress=gz/jpg/mp[34]/7z/bz2
-
rsync tarafından bu sürümde
desteklenen sıkıştırılmayacak
dosyaların öntanımlı sonek listesi:
3g2 3gp 7z aac ace apk avi bz2 deb dmg ear f4v flac flv gpg gz iso jar jpeg
jpg lrz lz lz4 lzma lzo m1a m1v m2a m2ts m2v m4a m4b m4p m4r m4v mka mkv
mov mp1 mp2 mp3 mp4 mpa mpeg mpg mpv mts odb odf odg odi odm odp ods odt
oga ogg ogm ogv ogx opus otg oth otp ots ott oxt png qt rar rpm rz rzip
spx squashfs sxc sxd sxg sxm sxw sz tbz tbz2 tgz tlz ts txz tzo vob war
webm webp xz z zip zst
Bu listenin yerini, biri hariç tüm durumlarda
LİSTE alacaktır: rsync artalan
sürecinden alınan bir kopya, LİSTEye eklenir
(artalan sürecinin listesi farklı bir
öntanımlı liste ile
yapılandırılabilir).
- --numeric-ids
- Bu seçenekle rsync, her iki uçta
kullanıcı ve grup isimlerini değil,
kullanıcı ve grup kimliklerini eşleştirmeye
çalışacaktır.
Öntanımlı olarak rsync, dosyaların
sahibini belirlemekte kullanıcı ve grup isimlerini
kullanır. Özel kullanıcı ve grup
kimliği olan 0 kimliği, bu seçenek
belirtilmemiş olsa bile, kullanıcı ve grup
isimleriyle asla eşleştirilmez.
Eğer kullanıcı ve grup yerelde herhangi bir isimle
eşleşmiyorsa veya hedefte bir eşleşme yoksa,
bunların yerine kaynak sistemdeki kullanıcı ve grup
kimlikleri kullanılır. chroot
ayarlarının rsync’in kullanıcı
ve grup isimlerini arama yeteneklerini nasıl etkilediğini ve
bunların nasıl değiştirebileceği
hakkında bilgi için bkz: rsyncd.conf(5)
kılavuz sayfasındaki use chroot modül
seçeneğinin açıklaması.
-
--usermap=DİZGE,
--groupmap=DİZGE
- Bu seçenekler, alıcı tarafın
diğer değerlere eşlenmesi gereken
kullanıcıları ve grupları belirlemesine olanak
tanır. DİZGE, virgülle
ayrılmış bir veya daha fazla
GÖNDEREN:ALAN değer çiftidir.
Göndericiden gelen herhangi bir eşleşen
GÖNDEREN değeri, alıcıdan gelen bir
ALAN değeri ile değiştirilir.
GÖNDEREN ve ALAN değerleri için
kullanıcı adları veya kullanıcı
kimlikleri belirtebilirsiniz ve GÖNDEREN değeri,
gönderenin adlarıyla eşleştirilecek bir joker
karakter dizisi de olabilir (joker karakterler kimlik numaralarıyla
eşleşmez, ancak ’*’ iminin neden her
şeyle eşleştiğini görmek için
aşağıya bakın). Bunun yerine, bir kimlik
numarası aralığı belirtebilirsiniz:
DÜŞÜK-YÜKSEK. Örnek:
--usermap=0-99:nobody,wayne:admin,*:normal --groupmap=usr:1,1:usr
- Listedeki ilk eşleşme kullanılan
eşleşmedir. Tüm kullanıcı
eşlemeleri tek bir --usermap seçeneği
kullanılarak ve/veya tüm grup eşlemeleri tek bir
--groupmap seçeneği kullanılarak
belirtilmelidir.
0 kullanıcısı ve grubu için gönderici
adının alıcıya iletilmediğine dikkat
edilmelidir, bu nedenle ya 0 kullanarak bu değerleri
eşleştirmelisiniz ya da alıcı tarafta
geçerli olan adları kullanmalısınız
(genelde "root"). Diğer tüm GÖNDEREN
adları, gönderen tarafta kullanılanlarla, tüm
ALAN adları, alıcı tarafta
kullanılanlarla eşleşir.
Gönderen tarafta adı olmayan tüm kimlikler,
eşleştirme amacıyla boş ad olarak
değerlendirilir. Bu, bir "*" ile veya boş ad
kullanılarak eşleştirilmelerine olanak tanır.
Örneğin:
--usermap=:nobody --groupmap=*:nobody
-
---numeric-ids seçeneği
kullanıldığında, gönderici
hiçbir ad göndermez, bu durumda tüm kimliklerin
boş ada sahip olduğu varsayılır. Adsız
kimlikler farklı değerlerle eşleştirilmek
istenirse GÖNDEREN olarak bu sayısal kimlikleri
belirtmek gerekir.
--usermap seçeneğinin
çalışması için
alıcının ayrıcalıklı
kullanıcı aidiyetinde
çalıştırılması gerekir (bkz:
--super ve --fake-super). --groupmap
seçeneğinin çalışması
için, alıcının grubu atayacak izinlere sahip
olması gerekir.
rsync 3.2.4 ve sonrasında, --usermap
seçeneği örtük olarak --owner
(-o) seçeneğini uygularken --groupmap
seçeneği örtük olarak --group
(-g) seçeneğini uygular (rsync eşleşme
seçeneklerinin çalışması için bu
seçeneklerin etkin olmasını gerektirdiğinden).
Eski bir rsync’in joker karakterlerden şikayetini
önlemek için --protect-args (-s)
kullanımı gerekirken günümüz
rsync’leri bunu otomatik olarak halleder.
-
--chown=KULLANICI:GRUP
- Bu seçenek, tüm dosyaları GRUP
grubundaki KULLANICI’ya ait olmaya zorlar. Bu,
doğrudan --usermap ve --GroupMap kullanmaktan daha basit bir
arayüzdür, ancak
karıştırılamayacakları için bu
seçenekler kullanılarak gerçeklenmiştir.
KULLANICI veya GRUP boşsa, atlanan
kullanıcı/grup için eşleme olmaz. GRUP
boşsa, iki nokta imi atlanabilir, ancak KULLANICI
boşsa, iki nokta imi bulunmalıdır.
" --chown=foo:bar", belirtilirse "--usermap=*:foo
--groupmap=*:bar" belirtmekten farkı yoktur, sadece daha
kolaydır (ve örtük olarak --owner ve/veya
--group seçenekleri ile aynıdır).
Eski bir rsync’in joker karakterlerden şikayetini
önlemek için --protect-args (-s)
kullanımı gerekirken günümüz
rsync’leri bunu otomatik olarak halleder.
-
--timeout=SÜRE
- Bu seçenekle G/Ç
zamanaşımını saniye cinsinden
belirtebilirsiniz. Belirtilen süre içinde bir aktarım
gerçekleşmezse, rsync işlemi
sonlandırır. Öntanımlı değer,
bir zamanaşımı olmadığını
belirten 0 değeridir.
-
--contimeout=SÜRE
- Bu seçenek, rsync’in rsync
artalan süreciyle bağlantısının
başarılı olması için kaç saniye
bekleyeceğini belirtmek için kullanılır.
Belirtilen süre içinde bir bağlantı
gerçekleşmezse, rsync işlemi bir hatayla
sonlandırır.
-
--address=ADRES
- Öntanımlı olarak rsync, bir
rsync artalan sürecine bağlanırken joker adres
kullanır. --address seçeneği,
bağlanılacak belirli bir IP adresi (veya konak adı)
belirtmeye olanak tanır.
Ayrıca bkz: Artalan süreci için --address
seçeneği.
-
--port=PORT
- Öntanımlı 873. port yerine
kullanılacak portu belirtmek için kullanılır.
URL sözdizimi port belirtmek için zaten bir yöntem
içerdiğinden, bu sadece bir rsync sunucusuna
"::" kullanarak bağlanıyorsanız gerekir.
Ayrıca bkz: Artalan süreci için --port
seçeneği.
-
--sockopts=SEÇENEKLER
- Bu seçenek, sistemlerini en üst
düzeyde ayarlamayı seven insanlar için sonsuz
eğlence sağlayabilir. Aktarımları daha
hızlı (veya daha yavaş!) yapabilecek her
türlü soket seçeneğini ayarlayabilirsiniz.
Ayarlayabileceğiniz bazı seçenekler hakkında
ayrıntılar için setsockopt(2) sistem
çağrısının kılavuz
sayfasına bakılabilir. Öntanımlı olarak
hiçbir özel soket seçeneği
ayarlanmamıştır. Bu sadece uzak bir rsync
artalan sürecine doğrudan soket
bağlantılarını etkiler.
Ayrıca bkz: Artalan süreci için --sockopts
seçeneği.
- --blocking-io
- Uzak kabuk aktarımı
başlatılırken engellenebilen G/Ç
kullanılmasını belirtir. Uzak kabuk rsh veya
remsh ise, rsync öntanımlı olarak
engellenebilen G/Ç, aksi takdirde engellenemeyen G/Ç
kullanır ( ssh ile engellenemeyen G/Ç tercih edilir).
-
--outbuf=KİP
- Çıktı tamponlama kipini belirler.
KİP None (tamponsuz), Line (satır tamponlu) veya
Block (Tam tamponlu) olabilir. Büyük veya
küçük tek harfli kip de belirtilebilir.
Seçeneğin başlıca kullanım amacı,
rsync çıktısı bir dosyaya veya boruya
yönlendirilirken tam tamponlamadan satır tampolamaya
geçmektir.
-
-i, --itemize-changes
- Her dosyanın öznitelik
değişikliklerini de içererek
yapılmış değişikliklerin dosyalara
göre ayrıntılı bir listesini almak için
kullanılır. Bu, --out-format=’%i %n%L’
belirtmekle aynıdır. Seçenek tekrarı, 2.6.7 ve
üstü sürümlerde değişmeyen
dosyaların da ayrıca
çıktılanmasını sağlar. 2.6.7
öncesi sürümlerde ise diğer
ayrıntı iletilerinin de
çıktılanmasını sağlayan
-vv kullanılabilir.
" %i" belirtimi 11 karakter uzunlukta şifresel bir
çıktıya sahiptir. Genel biçimi
YXcstpoguax dizgesine benzer. Burada Y karakteri
yapılan güncellemenin çeşidini, X
karakteri dosya türünü, diğer karakterler ise
güncellenmişlerse öznitelikleri belirten bir
karakterle değiştirilir.
Y karakterinin yerini alan güncelleme türleri
şunlardır:
< uzak konağa aktarılan (gönderilen) dosya
> yerel konağa aktarılan (alınan) dosya
c yerel konakta değiştirilen/oluşturulan dosya (bir dizin ya da sembolik bağın oluşturulması gibi).
h başka bir öğeye sabit bağ olan öğe (--hard-links gerektirir).
. (nokta) güncellenmiş (öznitelikleri değişmiş) dosya
* ayrıntılı çıktı alanının geri kalanı bir ileti içeriyor ("siliniyor" gibi).
-
X karakterinin yerini alan dosya türleri
şunlardır:
f dosya
d dizin
L sembolik bağ
D aygıt
S özel dosya (isimli soketler ve isimli borular gibi)
- Dizgenin diğer harfleri dosyanın bazı
özniteliklerinin değiştiğini belirtir:
" ." Öznitelik değişmedi.
" +" Dosya yeni oluşturuldu.
" " Hiçbir öznitelik değişmedi (tüm noktalar boşluklara dönüşür).
" ?" Neyin değiştiği bilinmiyor (uzak rsync eski olduğunda).
harf Bir özniteliğin güncellendiğini belirtir.
- Harflerin belirttiği öznitelikler
şunlardır:
- c
- Sağlama toplamı farklı normal dosya
(--checksum gerektirir) veya değeri
değişmiş bir sembolik bağ, aygıt veya
özel dosya olduğunu belirtir.
- Bilgi:
- Dosyaların gönderildiği rsync
sürümü 3.0.1’den eskiyse sadece sağlama
toplamları farklı normal dosyaları belirtir.
-
- s
- Normal dosyanın boyutlarının
farklı olduğunu ve dosyanın aktarımla
güncelleneceğini belirtir.
- t
- Değişiklik zamanının
farklı olduğunu ve göndericinin değeri ile
güncelleneceğini belirtir ( --times gerektirir).
Bazan bu karakterin yerine T kullanılır ve
zamanın aktarım zamanına
ayarlanacağını belirtir. T harfi, bir dosya,
sembolik bağ veya aygıt --times
seçeneği belirtilmeksizin güncellenirken ya da bir
sembolik bağ değiştiğinde alıcı
zamanını tanımlamıyorsa
çıktılanır.
- Bilgi:
- rsync sürümü 3.0.0’dan eskiyse,
bu zaman belirleme hatası için tek bir t
bayrağı yerine t bayrağı T ile birlikte
belirtilmiş olabilir.
-
- p
- İzinlerin farklı olduğunu ve
göndericinin değeri ile güncelleneceğini
belirtir ( --perms gerektirir).
- o
- Sahiplerin farklı olduğunu ve
göndericinin değeri ile güncelleneceğini
belirtir ( --owner ve ayrıcalıklı
kullanıcı yetkileri gerektirir).
- g
- Grupların farklı olduğunu ve
göndericinin değeri ile güncelleneceğini
belirtir ( --group ve grup atama yetkileri gerektirir).
- u
- Erişim zamanının
göndericidekinden farklı bir değere
güncellendiğini belirtir ( --atimes gerektirir).
- n
- Oluşturulma zamanının
göndericidekinden farklı bir değere
güncellendiğini belirtir ( --crtimes gerektirir).
- b
- Erişim ve oluşturma
zamanlarının ikisinin de güncellendiğini
belirtir.
- a
- ACL bilgisinin değiştiğini
gösterir
- x
- Ek öznitelik bilgisinin
değiştirğini gösterir.
- Olası diğer bir çıktı
daha vardır: Dosyalar silinirken silinen her öğe
için " %i" belirteci "*deleting"
dizgesini çıktılar (yeterince son sürüm
bir rsync ile konuşulduğu ve silme işlemlerini
bir ayrıntı olarak çıktılamayıp
günlük kaydı tuttuğu
varsayımıyla).
-
--out-format=BİÇEM
- Bu, rsync istemcisinin kullanıcıya her
güncellemede tam olarak ne
çıktılayacağının tam olarak
belirlenmesini sağlar. BİÇEM, yüzde (%)
imi ile başlayan tek karakterlik öncelemler içeren
bir metin dizgesidir. --info=name veya -v belirtilirse
" %n%L" biçemi
öntanımlıdır (yalnızca dosyanın
adını ve öğenin bir bağ olup
olmadığını çıktılar).
Olası biçemleme karakterlerinin tam listesi için,
rsyncd.conf(5) kılavuz sayfasındaki log format
seçeneğinin açıklamasına
bakılabilir.
Bu seçeneğinin belirtilmesi, önemli bir şekilde
güncellenen (aktarılan bir dosya, yeniden
oluşturulmuş bir sembolik bağ/aygıt veya
dokunulan bir dizin) her dosya veya dizinden vb. bahsedecek olan
--info=name seçeneğinin örtük olarak
uygulanmasını sağlar. Ek olarak,
değişiklikleri ayrıntılı
gösterme öncelemi ( %i) dizgeye dahil edilirse
(--itemize-changes seçeneği
kullanılmış gibi), herhangi bir şekilde
değiştirilen öğe adları da
günlüğe eklenir (alıcı tarafın
sürümü en az 2.6.4 olduğu takdirde). %i
çıktısının
açıklaması için bkz: --itemize-changes
Günlüklemenin aktarımın sonunda
yapılmasını sağlayan aktarım
istatistiği belirtimlerinden biri belirtilmedikçe
rsync, günlük biçemi dizgesini dosyanın
aktarımından önce
çıktılayacaktır. Bu geç
günlükleme etkin olduğunda ve ayrıca
--progress seçeneği de belirtilmişse
rsync aktarılan dosyanın ismini işlem
bilgisinden önce (şüphesiz, --log-format
çıktısından sonra)
çıktılayacaktır.
-
--log-file=DOSYA
- Bu seçenek, rsync’in
yaptıklarını bir dosyaya günlüklemesini
sağlar. Bu, artalan sürecinin yaptığı
günlük kaydına benzer, ancak artalan süreciyle
yapılmayan bir aktarımın istemci ve/veya sunucu
tarafı için istenebilir. İstemci
seçeneği olarak belirtilirse, aktarım
günlüğü " %i %n%L"
öntanımlı biçemiyle etkinleştirilir. Bu
geçersiz kılınmak istenirse bkz:
--log-file-format
Neler yapıldığını
günlüklemesi için uzak tarafa istekte bulunma
örneği:
rsync -av --remote-option=--log-file=/tmp/rlog kaynak/ hedef/
Bağlantının istem dışı kapanma
sebebini incelemek için yaralıdır.
Ayrıca bkz: Artalan sürecinin --log-file
seçeneği.
-
--log-file-format=BİÇEM
-
--log-file seçeneğiyle belirtilen
dosyaya güncelleme başına günlük
kaydı olarak neler konulacağının
belirtilebilmesini sağlar. Bu seçeneğin etkili
olabilmesi için --log-file seçeneğinin de
ayrıca belirtilmesi gerekir. Boş bir dizge belirtirseniz,
günlük dosyasında güncellenen dosyalarla
ilgili kayıtlar olmaz. Olası biçemleme
karakterlerinin tam listesi için, rsyncd.conf(5)
kılavuz sayfasındaki log format
seçeneğinin açıklamasına
bakılabilir.
--log-file belirtildiği durumda bu seçenekle
BİÇEM olarak " %i %n%L"
belirtilmedikçe öntanımlı biçem
kullanılır.
Ayrıca bkz: Artalan sürecinin --log-file-format
seçeneği.
- --stats
- Dosya aktarımıyla ilgili
ayrıntılı istatistileri
çıktılanmasını ve
rsync’in delta-aktarım algoritmasının
verileriniz için ne kadar etkili olduğunun
anlaşılmasını sağlar. Bu
seçenek, -v seçeneği ile birlikte veya
değil, --info=stats2’ye; 2 veya daha fazla -v
seçeneğiyle birlikte --info=stats3’e
eşdeğerdir.
Geçerli istatistikler:
- •
-
Dosya sayısı dizinler, sembolik
bağlar, vb. dahil (genel anlamda) "dosya"ların
toplam sayısıdır. Toplamı, dosya
türleri ve bunların sayıları
(sıfır olmadıkça) izler. Örnek:
"(reg: 5, dir: 3, link: 2, dev: 1, special: 1)" normal dosyalar,
dizinler, sembolik bağlar, aygıt dosyaları,
özel dosyalar ve bunların toplamlarını
gösterir. Sayısı 0 olanlar listeye dahil
edilmez.
- •
-
Oluşturulan dosya sayısı, yeni
oluşturulan (genel anlamda) "dosya"ların
(güncellenenler değil) toplam
sayısıdır. Toplamı, dosya türleri ve
bunların sayıları (sıfır
olmadıkça) izler.
- •
-
Silinen dosya sayısı, silinen (genel
anlamda) "dosya"ların toplam
sayısıdır. Toplamı, dosya türleri ve
bunların sayıları (sıfır
olmadıkça) izler. Bu satır sadece silmeler etkili ise
ve yalnızca 31. protokol ( rsync 3.1.x için
öntanımlıdır) kullanımdaysa
çıktılanır.
- •
-
Aktarılan normal dosyaların
sayısı, rsync’in delta aktarım
algoritması üzerinden güncellenen normal
dosyaların sayısıdır. Dizinler, sembolik
bağlar, vb. dahil değildir. Başlığa
"regular" sözcüğü rsync
3.1.0’da eklenmiştir.
- •
-
Aktarımdaki tüm dosyaların toplam
boyutu. Toplama dizinler ve özel bağlar dahil edilmez
fakat sembolik bağların boyutları dahildir.
- •
-
Aktarılmış toplam dosya
sayısı.
- •
-
Değişmez veriler, güncellenen
dosyaların yeniden oluşturması için
alıcıya gönderilmiş eşleşmeyen
dosya güncelleme verisi miktarıdır.
- •
-
Eşleşen veriler, güncellenen
dosyaları yeniden oluştururken alıcının
yerel olarak sahip olduğu veri miktarıdır.
- •
-
Dosya listesi boyutu, göndericinin
alıcıya gönderdiği dosya listesi verilerinin
miktarıdır. rsync’in listeyi
gönderirken yinelenen verileri bir miktar
sıkıştırması nedeniyle dosya listesinin
bellekteki boyutundan daha küçüktür.
- •
-
Dosya listesi üretim süresi,
gönderenin dosya listesini oluşturmak için
harcadığı saniye sayısıdır. Bu,
gönderen tarafta günümüz
rsync’lerinden birini gerektirir.
- •
-
Dosya listesi aktarım süresi,
gönderenin dosya listesini alıcıya göndermek
için harcadığı saniye
sayısıdır.
- •
-
Gönderilen toplam bayt sayısı,
rsync’in istemci tarafının sunucu
tarafına gönderildiği tüm baytların
sayısıdır.
- •
-
Alınan toplam bayt sayısı,
rsync’in istemci tarafının sunucu
tarafından aldığı iletiler hariç toplam
bayt sayısıdır. "iletiler hariç"
bayt sayısı, sunucunun bize gönderdiği
ayrıntılı iletilerin baytlarını
saymadığımız anlamına gelir, bu da
istatistiklerin daha tutarlı olmasını sağlar.
-
-
-8, --8-bit-output
- Bu, rsync’e, geçerli yerelde
geçerli olup olmadıklarını görmek ve
geçersiz olanları öncelemek için
sınamaya çalışmak yerine, tüm
yüksek bitli karakterlerin çıktıda
öncelenmeden bırakılmasını
sağlar. Bu seçeneğe
bakılmaksızın, tüm denetim karakterleri (ancak
sekmeler hariç) öncelenir.
2.6.7 sürümünden itibaren yüksek bitli
karakterler ters eğik çizgi (\) ve diyez (#) iminden sonra 3
sekizlik rakam ile ifade edilmektedir. Örneğin satır
sonu karakteri "\#012" ile ifade edilir. Dosya ismindeki ters
eğik çizgi imlerinin ardından bir diyez imi ve 3
sekizlik rakam gelmedikçe ters eğik çizgiler
öncelenmez.
-
-h, --human-readable
- Sayıları insan tarafından okunabilir
biçemde çıktılar. Olası 3 düzey
vardır:
- 1.
- Büyük sayılar 3 rakamlık
kümeler halinde aralarına (yerele göre) nokta veya
virgül konarak
ayrıştırılır.
- 2.
- 1000’lik birimlerle çıktılama
yapılır (sonek olarak tek karakterlik birimlerle --
aşağıya bkz).
- 3.
- 1024’lük birimlerle
çıktılama yapılır.
- Öntanımlı düzey 1’dir.
Her -h seçeneği düzeyi 1
arttırır. 0. seviyeyi belirmek için
seçeneği --no-human-readable (--no-h)
biçiminde kullanmak gerekir (Sayılar sadece rakamlardan
oluşur).
2. ve 3. seviyede eklenen birim harfleri: K (kilo), M (mega),
G (giga), T (tera), P (peta). Örneğin,
1234567 baytlık dosya 2. seviyede 1,23M olarak
çıktılanırdı (yerelde ondalık
kısmın virgül ile
ayrıldığı varsayımıyla).
- Geriye uyumluluk bilgisi
- 3.1.0’dan önceki rsync
sürümleri, 1. düzeyi desteklemez ve
öntanımlı olarak düzey 0’dır. Bu
nedenle, bir veya iki -h seçeneğinin belirtilmesi,
öncesinde --no-h seçeneği
belirtilmedikçe rsync sürümüne
bağlı olarak farklı çıktılar
üretilmesine sebep olacaktır. Tek fark için bkz:
--list-only
-
- --partial
- Aktarım kesintiye uğramışsa,
öntanımlı olarak rsync, aktarımı
yarım kalmış dosyayı silecektir. Bazı
durumlarda kısmen aktarılmış dosyaları
silinmemesi istenebilir. Aktarımın bir sonraki
bağlantıda tamamlanmasını
hızlandırmak üzere kısmen
aktarılmış dosyaların silinmemesi için
bu seçeneği kullanabilirsiniz.
-
--partial-dir=DİZİN
- Bu seçenek, --partial
seçeneğinin davranışını
değiştirirken aynı zamanda örtük olarak
etkinleştirir. Bu gelişmiş kısmi dosya
yöntemi, kısmi dosyayı hedef dosyaya yazmak yerine,
belirtilen DİZİN’e yerleştirir. Bir
sonraki aktarımda, rsync, aktarımın yeniden
başlamasını hızlandırmak için bu
dizinde bulunan dosyayı veri olarak kullanacak ve amacına
hizmet ettikten sonra onu silecektir.
--whole-file açıkça (veya örtük
olarak) belirtilirse, dosya rsync’in delta-aktarım
algoritması kullanılmadan gönderildiğinden,
DİZİN içindeki güncellenmekte olan
dosya ile ilgili kısmi dosyalarının basitçe
kaldırılacağı unutulmamalıdır.
rsync, henüz yoksa, DİZİN’i
oluşturacaktır, ancak sadece son dizini oluşturur,
yolun tamamını değil. Bu, rsync’in
gerektiğinde hedef dosyanın dizininde kısmi dizini
oluşturmasını ve kısmi dosya silindikten sonra
kaldırmasını sağlamak için
göreli bir yol (" --partial-dir=.rsync-partial"
gibi) kullanmayı kolaylaştırır. Mutlak bir
yolun kısmi dizinin çalışması
için ayrılmış özel bir dizini
göstermesi beklendiğinden, bu dizin kaldırma
işleminin yalnızca göreli yol için
yapıldığı unutulmamalıdır.
DİZİN değeri mutlak bir yol değilse,
rsync mevcut tüm dışlama
kurallarının sonuna bir kural daha ekler. Bu,
gönderen tarafta mevcut olabilecek herhangi bir kısmi dizin
dosyasının gönderilmesini ve ayrıca
alıcı taraftaki kısmi dizin öğelerinin
zamansız silinmesini önleyecektir. Bir örnek:
yukarıdaki --partial-dir seçeneği,
diğer dışlama kurallarının sonuna bu
"bozulabilir" dışlama kuralının
eşdeğerini ekler: -f ’-p
.rsync-partial/’
özel dışlama kuralları
kullanılıyorsa, kısmi dizin için özel
bir dışlama/gizleme/koruma kuralı eklemek
gerekebilir. Çünkü,
- 1.
- diğer özel kuralların sonuna otomatik
eklenen bir kural etkisiz kalabilir veya
- 2.
-
rsync’in dışlama
kuralını geçersiz kılmak gerekebilir.
- Örneğin, rsync’in orada burada
kalmış kısmi dizinleri temizlemesi istenirse,
--delete-after belirtilmeli ve bir "risk" süzme
kuralı eklenmelidir, örnek: -f ’R
.rsync-kısmi/’. Geçerli
çalıştırma sırasında kalan
kısmi dizin verilerinden herhangi birini rsync’in
kullanması gerekmedikçe --delete-before veya
--delete-during seçeneklerini kullanmaktan
kaçınılmalıdır.
- Önemli:
-
--partial-dir dizinine diğer
kullanıcılar yazamamalıdır, aksi
güvenlik riskidir. Örneğin " /temp"
dizini ASLA belirtilmemelidir!
- Ayrıca DİZİN değerini
RSYNC_PARTIAL_DIR ortam değişkeninde
belirtebilirsiniz. Bu değişkene bir değerin
atanmış olması --partial
seçeneğinin etkin olmasını sağlamaz ama
komut satırında --partial seçeneğini
belirtmekle --partial-dir seçeneğine dizin
belirtilmiş gibi işlem yapılması
sağlanır. Örneğin,
--partial-dir=.rsync-tmp ile --progress
seçeneğini birlikte kullanmak yerine, kabukta
RSYNC_PARTIAL_DIR=.rsync-tmp şeklinde bir atama
yapıldığını ve .rsync-tmp
dizininin eksik kalan aktarımı tamamlamak için komut
satırında sadece -P seçeneği
belirtilerek kullanıldığını
varsayalım. --partial seçeneğinin bu ortam
değişkenine bakmadığı durumlar,
- 1.
-
--inplace seçeneğinin
belirtilmiş olması ( --inplace seçeneği
--partial-dir ile çeliştiğinden),
- 2.
-
--delay-updates seçeneğinin
belirtilmiş olmasıdır (aşağıya
bkz).
- Günümüz rsync’i,
kısmi dizindeki bir dosyanın aktarımını
sürdürdüğünde, bu kısmi dosya
başka bir geçici dosya oluşturmak yerine, yerinde
güncellenir (böylece hedef + kısmi + tmp yerine hedef
+ tmp’de azami çıktılama
yapılır). Bunun için, aktarımın her iki
ucunda da en az 3.2.0 sürümü rsync
olması gerekir.
Sunucu yapılandırmasının refuse options
ayarı, amacı gereği --partial-dir
seçeneğinin --partial seçeneğini
örtük olarak uygulamamasına sebep olur. Bu, yani,
--partial seçeneğinin reddedilmesi,
--partial-dir tarafından sağlanan daha
güvenilir üsluba hala izin veriyor olmakla,
aktarımı yarım kalmış hedef
dosyaların tekrar yazılmasına izin vermemek
amacıyla kullanılabilir.
- --delay-updates
- Bu seçenek, güncellenen her dosyayı
aktarımın sonunda isimleri değiştirilmek
suretiyle hızlıca yerine taşınmak üzere
bir dizin içinde geçici bir dosyaya koyar. Bu
dosyaların güncellenmesini daha atomik yapmayı
amaçlar. Öntanımlı olarak bu dosyalar her
dosyanın hedef dizini içindeki " .~tmp~"
isimli bir dizine konur, fakat bu davranış
--partial-dir seçeneği belirtilerek
değiştirilebilir. Bu .~tmp~ dizininin
aktarımdan nasıl hariç tutulacağı ve
rsync’in ortalıkta kalan eski .~tmp~ dizinlerini
nasıl temizleyeceği ile ilgili açıklamalar
için bkz: --partial-dir. Bu seçenek ---inplace
ve --append seçeneği ile birlikte
kullanılamaz.
Bu seçenek --no-inc-recursive anlamına gelir
çünkü üzerinde sonuna kadar yineleme
yapabilmek için bellekte tam dosya listesine ihtiyaç duyar.
Bu seçenek alıcı tarafta daha fazla bellek
kullanır (aktarılan dosya başına bir bit) ve
ayrıca alıcı tarafta tüm
güncellenmiş dosyaların ek bir
kopyasını tutmak için yeterli boş disk
alanı gerektirir. Ayrıca, aşağıdaki
durumlar dışında --partial-dir için
mutlak yol kullanılması gerekir:
- 1.
- Mutlak yol kullanıldığında
güncellenen tüm dosyalar aynı dizine
konulduğundan aktarılan dosyalar arasında aynı
isimde dosya olmaz ve
- 2.
- dosyaların bulunduğu yerde adları
değiştirilemezse gecikmiş güncellemeler
başarısız olacağından dizin
hiyerarşisi içinde dosya sistemi bağlama dizinleri
bulunamaz.
- Ayrıca, çok daha atomik bir güncelleme
algortiması içeren, rsync paketinin
"support" alt dizinindeki "
atomic-rsync" python betiğine de bakılabilir (
--link-dest seçeneğini ve dosyalar için
paralel bir hiyerarşi kullanır).
-
-m, --prune-empty-dirs
- Dizinler dışında
çocukları olmayan iç içe dizinler dahil
tüm boş dizinlerin silinmesini sağlar.
Gönderen rsync
içerme/dışlama/süzme kurallarını
kullanarak dosya hiyerarşisini ardışık olarak
tararken bir sürü gereksiz dizin
oluşmasını önlemek için
yararlıdır.
--min-size seçeneği gibi aktarım
kurallarının kullanımının dosya
listesine girenleri etkilemediği ve bu nedenle bir dizindeki
dosyalardan hiçbiri aktarım kuralıyla
eşleşmese bile dizinleri boş
bırakmadığı unutulmamalıdır.
Dosya listesi gerçekte budandığından, bu
seçenek ayrıca bir silme etkin olduğunda hangi
dizinlerin silineceğini de etkiler. Ancak, hariç tutulan
dosya ve dizinlerin, hem kaynak dosyaları gizleme hem de hedef
dosyaları koruma kurallarıyla hariç tutulan
bazı öğelerin silinmesini engelleyebileceği
unutulmamalıdır. Bunun nasıl
önleneceğini öğrenmek için bozulabilir
süzme kuralına bakılabilir.
Genel bir koruma ( protect) süzgeci kullanarak dosya
listesinden belirli boş dizinlerin budanmasını
önleyebilirsiniz. Örneğin, bu seçenek "
emptydir" dizininin dosya listesinde tutulmasını
sağlar:
--filter ’protect emptydir/’
- Burada, bir hiyerarşideki tüm .pdf
dosyalarını kopyalayan, yalnızca .pdf
dosyalarını tutmak için gereken hedef dizinleri
oluşturan ve hedefteki gereksiz dosyaların ve dizinlerin
kaldırılmasını sağlayan bir
örnek verilmiştir (dışlama kuralı
yerine kullanılan ’hide,! */’ dizin
olmayanları gizleme süzgecine dikkat):
rsync -avm --del --include=’*.pdf’ -f ’hide,! */’ kaynak/ hedef
- Gereksiz hedef dosyaların silinmesi istenmiyorsa,
gizleme ( hide) süzgecinin yerine zamanı daha iyi
kullanan --include=’*/’
--exclude=’*’ seçenekleri
kullanılabilirdi.
- --progress
- Aktarımın ilerleyişini gösteren
bilgilerin basılmasını sağlar. Bu,
sıkılmış bir kullanıcıya
izlenecek bir şeyler verir. Günümüz
rsync’inde, --info=flist2,name,progress
seçeneği örtük olarak
öntanımlıdır, ancak kullanıcı
tarafından sağlanan --info seçenekleri
önceliklidir (örneğin --info=flist0
--progress).
rsync’in normal bir dosyayı aktarırken
göstediği ilerleme satır şuna benzer:
782448 63% 110.64kB/s 0:00:04
- Bu örnekte, gönderici
dosyasının %63’ü olan 782448 baytın
saniyede 110.64kB hızla indirilerek alıcıda
oluşturulduğu, aktarım hızı aynı
kaldığı takdirde aktarımın 4 saniye
sonra biteceği ifade edilmektedir.
Bu istatistikler, rsync’in delta-aktarım
algoritması kullanımdaysa yanıltıcı
olabilir. Örneğin, gönderenin dosyası temel
dosyanın ardından ek verilerden oluşuyorsa,
alıcıya değişmez veriler
ulaştığında rapor edilen hız muhtemelen
önemli ölçüde düşecek ve
dosyanın eşleşen kısmını
bitirmek için aktarımın tamamlanması
muhtemelen alıcının tahmin ettiğinden
çok daha uzun sürecektir.
Dosya aktarımı bittiğinde rsync ilerleme
satırına şöyle bir satır
yerleştirir:
1,238,099 100% 146.38kB/s 0:00:08 (xfr#5, to-chk=169/396)
- Bu örnekte, dosya toplamda 1.238.099 bayt
uzunluğundaydı, tüm dosya için ortalama
aktarım hızı saniyede 146,38 kilobayttı ve
aktarım 8 saniyede tamamlandı. Bu, mevcut rsync
oturumunda normal bir dosyanın 5. aktarımıydı.
Dosya listesindeki toplam 396 dosyadan alıcıda güncel
olup olmadıklarına bakılacak 169 dosya daha var.
Artırımlı bir özyineleme taramasında,
rsync, taramanın sonuna ulaşana kadar dosya
listesindeki toplam dosya sayısını bilmeyecek, ancak
tarama sırasında dosyaları aktarmaya
başladığından, (artırımlı
özyineleme denetimi anlamında) "ir-chk" metnini
içeren bir satır görüntüleyecektir.
Listenin tam boyutununun saptandığı noktaya
gelindiğinde "ir-chk" yerini "to-chk" metnine
bırakacaktır. Yani, "ir-chk" ifadesini
gördüğünüz sürece, dosya
listesindeki denetlenecek dosya sayısı giderek
artacaktır (aktarılan her dosya ayrıca bu listeye
eklenecektir).
- -P
-
--partial --progress seçenekleri
için kısayoldur. Amacı, kesintiye
uğraması muhtemel uzun bir aktarım için bu iki
seçeneğin birlikte belirtilmesini
kolaylaştırmaktır.
Ayrıca, istatistikleri tek tek dosyalar yerine tüm
aktarıma dayalı olarak veren bir --info=progress2
seçeneği de vardır. Çok sayıda
adın ekranı kaydırmadan aktarımın
ilerleyiş izlenmek isteniyorsa, bu seçeneğin bir
dosya adı çıktısı verdirmeden
kullanılması gerekir (örneğin -v
seçeneğinden kaçınılabilir veya
--info=name0 belirtilebilir). --info=progress2’yi
kullanmak için --progress seçeneğinin
belirtilmesi gerekmez.
Son olarak, rsync’e SIGINFO veya SIGVTALRM
sinyali göndererek anında ilerleme raporu alınabilir.
BSD sistemlerinde, Ctrl+T tuşları SIGINFO sinyali
oluşturulur (Linux şu anda bir SIGINFO sinyalini
desteklememektedir). İstemci süreci bu sinyallerden birini
aldığında, mevcut dosya
aktarımının bittiğini bildirecek ilerleme
raporu çıktısını üreten
bayrağı tanımlar (sinyal geldiğinde
büyük bir dosya aktarılıyorsa bu işlem
biraz zaman alabilir). Bir dosya adının (gerekirse)
ardından ilerleme bilgisinin --info=progress2 biçimi
gelir. 3 rsync sürecinden hangisinin istemci süreci
olduğu bilinmeksizin, hepsinin sinyallenmesinde sakınca
yoktur (çünkü istemci olmayan süreçler
sinyali yok sayar).
- Dikkat:
- SIGVTALRM sinyali 3.2.0 öncesi
rsync’in (kahrından) ölmesine sebep olur.
-
-
--password-file=DOSYA
- Uzak rsync sunucusuna erişim için
parola içeren bir dosya belirtebilmeyi sağlar. DOSYA
olarak - belirtilirse standart girdi okunur. Dosya içinde
parolayı içerek tek bir satır
bulunmalıdır (kalan satırlar yok
sayılır). DOSYA herkesçe okunabilen bir dosya
ise ya da root sahibi olmadığı bir parola
dosyası belirterek rsync’i
çalıştırıyorsa rsync hata
vererek çıkar.
Bu seçenek ssh gibi bir uzak kabuk aktarımına
parola sağlamaz. Bu işlemin uzak kabukra nasıl
yapılacağını öğrenmek
için kullanılacak kabuğun belgelerine
bakılabilir. Aktarım için uzak kabuk
kullanıldığı durumda bu dosya uzak kabuk
oturumunun kimlik kanıtlama işlemi bittikten sonra etkili
olur (yani, artalan sürecinin yapılandırma
dosyasında belirtilmiş bir parola varsa kimlik
kanıtlaması için bu dosya okunur).
-
--early-input=DOSYA
- Bu seçenek, rsync’in standart
girdideki "aktarım öncesi" betiğine
5K’ya kadar veri gönderebilmeyi sağlar. Bu verilerin
olası kullanımlarından biri, komut dosyasına
(bir "aktarım sonrası" betiğiyle sistemden
ayrılması gerekecek) şifrelenmiş bir dosya
sistemini bağlamak için kullanılabilecek bir anahtar
vermektir.
Artalan sürecinin sürümü en az 3.2.1
olmalıdır.
- --list-only
- Bu seçenek dosyaların
aktarılmasına değil, kaynak dosyaların
listelenmesine sebep olur. Bu seçenek, eğer bir hedef
belirtilmezse çalışır,
dolayısıyla kullanım alanları
şunlardır:
- 1.
- Hedef içeren bir kopyalama komutunu dosya listeleme
komutuna dönüştürmek için
- 2.
- Birden fazla kaynak belirtebilmek için. Dikkat:
Hedefin de eklenmesi gerekir.
- Dikkat:
- Joker karakterli bir kaynak girdisinin kabuk
tarafından birden çok girdiye genişletildiği
unutulmamalıdır, bu nedenle bu seçeneği
kullanmadan böyle bir girdi ile listeleme asla güvenli
değildir. Örnek:
rsync -av --list-only foo* hedef/
-
-
rsync 3.1.0 ve sonrasında, --list-only
ile çıktılanan boyutlar --human-readable
seçeneğinden etkilenmektedir. Öntanımlı
olarak rakam gruplaması uygulanacak olsa da daha yüksek
seviyeden okunabilirlik birim sonekli değerler
sağlayacaktır. Tüm okunabilirlik düzeylerinde
boyut sütunlarının genişliğinin 11
karakterden 14’e yükseleceği
unutulmamalıdır. Boyutların sadece rakamlardan
oluşmasını sağlamak ve eski 11 karakterlik
sütun genişliğine dönmek için
--no-h seçeneği belirtilebilir.
- Uyumluluk Bilgisi:
- 2.6.3 öncesi bir rsync’den
dosyaların uzaktan listelenmesini isterken, özyinelemeli
olmayan bir listeleme istenirse bir hata oluşabilir. Bunun nedeni,
dosya listeleme işleminde örtük olarak
--recursive olmaksızın --dirs
seçeneğinin uygulanması ve eski rsync’lerin bu
seçeneğe sahip olmamasıdır. Bu sorunu
önlemek için --no-dirs seçeneği
belirtilebilir (dizinin içeriğini genişletmek
gerekmiyorsa) veya özyineleme etkinleştirilip alt dizinlerin
içeriği dışlanabilir: -r
--exclude=’/*/*’.
-
-
--bwlimit=HIZ
- Soket üzerinden azami veri aktarım
hızının KiB/s cinsinden belirtilebilmesini
sağlar. HIZ belirtilirken ondalık değer
belirtilebilir ve değerin sonuna birim eklenebilir (
--bwlimit=1.5m gibi). Hiçbir sonek belirtilmezse 1024
baytlık birimler ("K" veya "KiB")
öntanımlıdır. 0 değeri hız
kısıtlaması olmadığını
belirtir. Kullanılabilir soneklerin listesi için bkz:
--max-size
Geriye uyumluluk için hız sınırı en
yakın KiB birime yuvarlanabilir. Yani, 1024 b/s’den
küçük hız belirtilemez.
rsync veriyi soketlere bloklar halinde yazar ve bu seçenek
hem blokların yazılması hem de ortalama
aktarım hızını istenen hızda tutmaya
çalışmak amacıyla kullanılır.
rsync’in veri bloğunu yazarken uyuduğu
durumlarda ortalama hızı tutturmaya
çalışırken bazı hız
aşımları görülebilir.
Verilerin dahili arabelleğe alınması nedeniyle,
--progress seçeneği, verilerin gönderim
hızını doğru şekilde
yansıtmayabilir. Bunun nedeni, bazı dosyaların
verileri hızlıca arabelleğe
alındığında hızlıca
gönderiliyor gibi görünmesi ya da
çıktı arabelleğinin
boşaltılması sırasında
gönderimin yavaşlamış gibi
görünmesidir. Bu durum, gelecekteki bir
sürümde düzeltilebilir.
Ayrıca bkz: Artalan sürecininin --bwlimit
seçeneği.
-
--stop-after=SÜRE,
--time-limit= SÜRE
-
--time-limit seçeneğinin
kullanımı artık önerilmemektedir.
Belirtilen SÜRE geçtiğinde
rsync’in kopyalamayı durdurmasını
sağlar.
Azami esneklik için, bir tarafın çıkması
bağlantıyı
sonlandırdığından bu seçenek uzak
tarafa gönderilmez. Bağlantının
yalnızca bir tarafı bu seçeneği desteklese
bile seçeneğin kullanımına izin verilir.
Gerektiğinde, --remote-option (-M)
seçeneği kullanılarak uzak tarafın
bağlantıyı sonlandırması istenebilir.
-
--stop-at=yıl-ay-günTsaat:dakika
- Belirtilen zamana
ulaşıldığında rsync’in
kopyalamayı durdurmasını sağlar. Tarih ve
zamanın tamamı yerel zaman diliminde
yıl-ay-günTsaat:dakika biçeminde
(2000-12-31T23:59 gibi) belirtilebilir. Tarih belirtirken tire yerine
eğik çizgi kullanılabilir.
Değer çeşitli şekillerde
kısaltılabilir, örneğin 2 rakamlı
yıl belirtilebildiği gibi bazı değerler
hiç belirtilmeyebilir. Her durumda, sağlanan zaman
bilgisiyle eşleşen zamanda kopyalama durdurulur.
Geçerli zamanın veya geçmişin belirtilmesi
durumunda rsync hata vererek çıkar.
Örneğin, "1-30" 30 Ocak yerel zamanla gece
yarısını, "14:00" bir sonraki ös
2’yi, "1" gelecek ayın 1.
gününün geceyarısını,
"31" gelecek 31 çeken ayın 31.
gününün geceyarısını,
"59" ise geçerli saatin 59. dakikasını
ifade eder.
Azami esneklik için, bir tarafın çıkması
bağlantıyı
sonlandırdığından bu seçenek uzak
tarafa gönderilmez. Bağlantının
yalnızca bir tarafı bu seçeneği desteklese
bile seçeneğin kullanımına izin verilir.
Gerektiğinde, --remote-option (-M)
seçeneği kullanılarak uzak tarafın
bağlantıyı sonlandırması istenebilir.
Uzak konağın öntanımlı zaman diliminin
yerel zaman diliminden farklı olabileceği hesaba
katılmalıdır.
- --fsync
- Alıcı tarafın aktarımı
biten her dosyaya fsync yapmasına sebep olur. Bu
aktarımı yavaşlatsa da önemli dosyaları
güncellerken huzuru sağlamaya yardımcı
olabilir.
-
--write-batch=DOSYA
- Aynı hedefe yapılacak eşdeğer
bir çağrı için --read-batch
seçeneği ile kullanılmak üzere bir dosya
oluşturur. Ayrıntılar için bkz: TOPLU
İŞLEM DOSYASI KİPİ
bölümü ve --only-write-batch
seçeneği.
Bu seçenek uzlaşılmış sağlama
toplamını ve sıkıştırma
listelerini geçersiz kılar ve her zaman eski tarz
md5/md4/zlib seçimlerine dayalı bir seçim
üzerinde uzlaşım sağlar. Daha güncel
bir seçim istenirse, --checksum-choice (--cc) ve/veya
--compress-choice (--zc) seçenekleri
kullanılabilir.
-
--only-write-batch=DOSYA
- Toplu işlem dosyası oluşturulurken
hedef sistemde hiçbir güncelleme yapılmaması
dışında --write-batch gibi
çalışır. Bu, değişikliklerin
başka yollarla hedef sisteme taşınmasına ve
ardından değişikliklerin --read-batch yoluyla
uygulanmasına olanak tanır.
Toplu işlem dosyası doğrudan taşınabilir
ortamlara yazılabilir: Bu ortam, aktarım bitmeden
önce kapasitesini doldurursa, bu kısmi aktarım hedefe
uygulanabilir ve geri kalanını almak için tüm
süreç tekrarlanabilir (çoklu güncelleme
döngüsü devam ederken hedef sistemin kısmen
güncellenmiş olması
umursanmadığı takdirde).
Ayrıca, değişiklikleri uzak bir sisteme
gönderirken bant genişliğinin önemli
olmadığı unutulmamalıdır.
Çünkü toplu işlem dosyası, verilerin
kablo üzerinden akmasına gerek kalmadan göndericiden
alıcıya yönlendirilmesine olanak tanır
(çekerken, gönderen uzakta olduğundan toplu
işlem dosyası oluşturamazsınız).
-
--read-batch=DOSYA
- Evvelce --write-batch ile oluşturulan
DOSYA içindekileri uygular. Eğer DOSYA olarak
"-" belirtilirse dosya verisi standart girdiden okunur.
Ayrıntılar için TOPLU İŞLEM DOSYASI
KİPİ bölümüne
bakınız.
-
--protocol=SAYI
- Daha eski bir protokol sürümünü
kullanmaya zorlar. Bu, daha eski bir rsync
sürümüyle uyumlu bir toplu iş dosyası
oluşturmak için kullanışlıdır.
Örneğin, --write-batch seçeneğiyle
rsync 2.6.4 kullanılıyorsa, ancak --read-batch
seçeneğini çalıştırmak
için rsync 2.6.3 kullanılacaksa, eski protokol
sürümünü zorlamak için toplu iş
dosyası oluşturulurken "
--protocol=28’
kullanılmalıdır (okuyan sistemde
rsync’in yükseltilmeyeceği
varsayımıyla).
-
--iconv=DÖNÜŞÜM
-
rsync, bu seçeneği kullanarak dosya
adlarını karakter kümeleri arasında
dönüştürebilir.
DÖNÜŞÜM olarak "."
değeri belirtilerek, rsync’e
öntanımlı karakter kümesinin yerel
tanımına göre aranması sağlanabilir.
Ayrıca, yerelin ve hedefin karakter kümesi
--iconv=YEREL,HEDEF biçeminde virgülle
ayrılarak da ( --iconv=iso88599,utf8 gibi) belirtilebilir.
Bu sıra, dosyaları gönderirken veya alırken
seçeneğin aynı kalmasını sağlar.
Son olarak, herhangi bir dönüştürmeyi
engellemek için --no-iconv veya
DÖNÜŞÜM olarak "-"
belirtebilirsiniz. Bu seçeneğin
öntanımlı değeri konağa özeldir
ve ayrıca RSYNC_ICONV ortam değişkeni ile de
dönüşüm belirlenebilir.
Yerel iconv(1) kitaplığının
desteklediği karakter kümesi adlarının listesi
için " iconv --list" komutu
çalıştırılabilir.
--protect-args (-s) seçeneğini belirtilirse,
rsync komut satırında belirtilen dosya
adlarını gönderen taraf
dönüştürecektir. Ayrıca bkz:
--files-from
rsync’in süzme dosyalarında
(içerilen/dışlanan dosyalar dahil) herhangi bir ad
dönüşümü
yapmadığını unutulmamalıdır.
Aktarımın her iki tarafıyla da
eşleşecek kuralların belirtildiğinden emin
olunmalıdır. Örneğin, iki tarafta da hesaba
katılması gereken dosya adı
farklılıkları varsa, fazladan
içerme/dışlama kuralları belirtilebilir.
Bir --iconv seçeneği buna izin veren bir rsync
artalan sürecine iletildiğinde, artalan süreci,
gerçekte ilettiğiniz uzak karakter kümesinden
bağımsız olarak " charset"
yapılandırma seçeneğinde belirtilen karakter
kümesini kullanır. Bu nedenle, bir artalan süreci
aktarımı için yalnızca yerel karakter
kümesini belirtmek yeterlidir ( --iconv=utf8 gibi).
-
-4, --ipv4, --6, --ipv6
-
rsync’e soketleri oluştururken veya
ssh çalıştırırken IPv4/IPv6
tercih etmesini söyler. Bu sadece rsync’in
doğrudan kendi denetimi altındaki soketleri ve uzak kabuk
olarak kullanılan ssh ile anlaşabilmek için
-4 veya -6 seçeneğinin ssh’ye
iletilmesini etkiler. Diğer uzak kabuklar için IPv4
durumunda doğrudan " --rsh SHELL -4" veya IPv6
durumunda " --rsh SHELL -6" seçeneğini
belirtmek gerekebilir.
Ayrıca bkz: Artalan süreci --ipv4
seçeneği.
rsync, IPv6 desteği olmadan derlendiyse, --ipv6
seçeneğinin hiçbir etkisi olmaz. Bu durumda rsync
--version çıktısı "IPv6 yok"
dizgesini içerir.
-
--checksum-seed=SAYI
- MD4 sağlama toplamı tohumunun SAYI
olarak belirtilebilmesini sağlar. Bu 4 baytlık tohum her
blok ve dosyanın MD4 sağlama toplamı
hesaplamasında kullanılır
(günümüz MD5 sağlama toplamları tohum
kullanmaz). Öntanımlı tohum o an için
time(3) kullanılarak sunucu tarafından
üretilir. Bu seçenek, yinelenebilir blok sağlama
toplamları isteyen uygulamalar için ya da
kullanıcının daha rastgele bir tohum kullanmak
istediği yerlerde kullanışlıdır.
SAYI olarak sıfır değeri verilirse
öntanımlı tohum kullanılır.
rsync artalan süreci başlatılırken
kullanılan seçenekler:
- --daemon
- Bu seçenek rsync’in artalanda
çalışacağını belirtir.
Başlattığınız sunucuya bir rsync
istemcisi konak::modül veya
rsync://konak/modül/ sözdizimini kullanarak
erişebilir.
Eğer standart girdi bir soket ise, rsync, inetd
üzerinden
çalıştığını
varsayacaktır, aksi takdirde, uçbirimini
bırakıp bir artalan süreci haline gelecektir.
rsync istemcileri tarafından yapılan her
bağlantı isteğinde süreç,
yapılandırma dosyasını ( rsyncd.conf)
okuduktan sonra isteğe yanıt verecektir.
Daha fazla bilgi için bkz: rsyncd.conf(5)
-
--address=ADRES
- Öntanımlı olarak rsync,
--daemon seçeneği ile
başlatıldığında ya da bir rsync
sunucuya bağlanırken bir joker adres kullanır. Bu
seçenekle kullanılacak adres olarak belli bir IP adresi
(veya konakismi) belirtebilirsiniz. Bu --config
seçeneği ile birlikte kullanılarak sanal konak
kullanımını mümkün kılar.
Ayrıca, rsyncd.conf(5) kılavuz sayfasındaki
address seçeneğinin açıklamasına
da bakılabilir.
-
--bwlimit=HIZ
- Sunucu sürecinin gönderdiği veri
için azami aktarım hızını KiB/s
cinsinden belirtmek için kullanılır. İstemci
bu durumda bile bir --bwlimit değeri belirtebilir, ancak
HIZ’dan büyük değerlere izin verilmez.
Ayrıca bkz: İstemci --bwlimit seçeneği.
-
--config=DOSYA
- Öntanımlı yapılandırma
dosyasında farklı bir yapılandırma
dosyası belirtmek için kullanılır. Artalan
süreci root dışında bir uzak
kullanıcı tarafından bir uzak kabuk uygulaması
üzerinden
çalıştırılıyorsa
öntanımlı yapılandırma dosyası
çalışma dizinindeki (genellikle $HOME)
rsyncd.conf dosyası, aksi takdirde
/etc/rsyncd.conf’dur.
-
-M, --dparam=SEÇENEKLER
- Bu seçenek, rsync artalan süreci kipinde
başlatılırken bir artalan süreci
yapılandırma seçeneğini tanımlamak
için kullanılabilir. İlk modülün
tanımından önce seçeneğin genel
ayarların sonuna eklenmesine eşdeğerdir.
İstenirse seçenek adları boşluksuz olarak
belirtilebilir. Örnek:
rsync --daemon -M pidfile=/yol/rsync.pid
-
- --no-detach
- Artalan süreci olarak çalışmada
rsync’in uçbirimini bırakıp bir artalan
süreci haline gelmesini engeller. Bu seçenek, rsync,
Cygwin üzerinde bir hizmet olarak
çalıştırılırken gereklidir.
Ayrıca, daemontools ya da AIX’in Sistem Özkaynak
Denetçisi gibi bir uygulama tarafından
yönetildiğinde yararlı olabilir.
Seçeneğin ayrıca, rsync bir hata
ayıklayıcı altında
çalıştırılırken de
kullanılması tavsiye edilir. Bu seçenek,
rsync, inetd veya sshd üzerinden
çalışıyorsa etkisizdir.
-
--port=PORT
- Artalan süreci tarafından
öntanımlı olarak kullanılan 873. port yerine
başka bir port belirtmek için kullanılır.
Ayrıca istemci --port seçeneğinin ve
rsyncd.conf(5) kılavuz sayfasındaki port
seçeneğinin açıklamasına da
bakılabilir.
-
--log-file=DOSYA
- Yapılandırma dosyasındaki "log
file" seçeneğinde belirtilen dosyanın yerine
kullanılacak günlük DOSYAsını
belirtmek için kullanılır.
Ayrıca bkz: İstemci --log-file seçeneği.
-
--log-file-format=BİÇEM
- Yapılandırma dosyasındaki "log
format" seçeneğinde belirtilen dizge yerine
kullanılacak olan BİÇEM dizgesini belirtmek
için kullanılır. Ayrıca, değeri
boş dizge değilse " transfer logging"
seçeneğini etkinleştirir, aksi takdirde
aktarım günlüklemesi kapatılır.
Ayrıca bkz: İstemci --log-file-format
seçeneği.
- --sockopts
-
rsyncd.conf(5) dosyasındaki socket
options seçeneği ile aynı sözdizimine
sahip olup onu geçersiz kılar.
Ayrıca bkz: İstemci --sockopts seçeneği.
-
-v, --verbose
- Artalan sürecinin başlatılması
sırasında günlük bilgilerinin
miktarını arttırmak için
kullanılır. Artalan sürecinin, istemci
bağlandıktan sonraki ayrıntı seviyesi istemci
tarafından kullanılan seçeneklerle ve
modülün yapılandırma
bölümündeki max verbosity değeriyle
denetlenir.
Ayrıca bkz: İstemci --verbose seçeneği.
-
-4, --ipv4, --6, --ipv6
-
rsync artalan sürecinin
bağlantıları dinleyeceği soketleri
oluştururken IPv4/IPv6 tercih etmesini sağlarlar.
Çekirdekteki bir IPv6 hatası nedeniyle Linux’un eski
sürümlerinde bu seçeneklerden biri gerekli olabilir
(port kullanılacağı zaman "adres zaten
kullanımda" hatası alınıyorsa,
rsync artalan sürecini başlatırken
--ipv6 veya --ipv4 belirtmek gerekebilir).
Ayrıca bkz: İstemci --ipv4 seçeneği.
rsync, IPv6 desteği olmadan derlendiyse, --ipv6
seçeneğinin hiçbir etkisi olmaz. Bu durumda rsync
--version çıktısı "IPv6 yok"
dizgesini içerir.
-
-h, --help
-
--daemon seçeneğinden sonra
belirtilirse, rsync artalan süreci
başlatılırken kullanılabilecek
seçenekleri kısaca açıklayan bir yardım
sayfası basar.
Süzme 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.
Yukarıda
SÜZME KURALLARI bölümünde
bahsedildiği gibi dosyalar "
+", "
-"
vb. süzme kuralları kullanılan kalıplar
belirtilerek içerilebilir ya da dışlanabilir.
İçerme ve dışlama kurallarının her
birinde aktarılacak dosyaların isimleriyle eşleşen
kalıplar belirtilir. Bu kalıplar çeşitli
biçimler alabilir:
- ○
- Eğer kalıp bir / ile
başlıyorsa, dosya hiyerarşisi içinde belli bir
noktaya demirlenir, aksi takdirde dosya yolunun sonuna eşlenir. Bu
düzenli ifadelerde kalıbı ^ ile
başlatmaya benzer. Örneğin, " /foo"
kalıbı ya (genel bir kural için)
"aktarımın kökü"ndeki ya da (
dir-merge kuralı için) birleştirme
dosyasının dizinindeki " foo" isimli dosya
ile eşleşirdi. Nitelenmemiş bir "
foo" ise, ağacın herhangi bir yerindeki "
foo" isimli bir dosya veya dizin ismi ile
eşleşirdi, çünkü algoritma
kökten alt dizinlere doğru ardışık
olarak uygulanır; yani, her yol elemanı sonunda bir dosya
ismi olacak şekilde ele alınır. Demirlenmemiş
" sub/foo" ise, hiyerarşinin herhangi bir
noktasındaki " sub" isimli bir dizin
içindeki bir " foo" ile eşleşirdi.
Aktarımın kökü ile eşleşen bir
kalıbın nasıl belirtileceği
İçerme/Dışlama
Kalıplarının Kök Dizinle
İlişklendirilmesi bölümünde
ayrıntılı olarak
açıklanmıştır.
- ○
- Eğer kalıp bir / ile bitiyorsa, sadece
bir dizinle eşleşir, bir dosya, sembolik bağ ya da
aygıtla değil.
- ○
- Eğer kalıp *?[ dosyaismi kalıp
karakterlerinden birini içeriyorsa, ifade sınarak ya
kabuğun dosyaismi eşleştirme kuralları ya da
basit bir dizge eşleştirmesi kullanılır.
- ○
- Tek yıldız ("*")
herşeyle eşleşecek ama eğik çizgilerde
(/) duracaktır.
- ○
- Çift yıldız ("**")
eğik çizgiler dahil herşeyle
eşleşir.
- ○
- Soru imi ("?") eğik çizgi
(/) hariç her karakterle eşleşir.
- ○
- Köşeli ayraç ("[")
[a-z] veya [[:alpha:]] gibi bir karakter sınıfı
başlatır.
- ○
- Bir joker kalıbında ters eğik
çizgi bir joker karakteri öncelemekte kullanılabilir,
ancak öncelediği bir joker karakter değilse
öncelediği karakterin eşleşmesini
sağlar. Bir kalıp, hiçbir şey içermeyen
bir kalıba kıyasla joker karakter içerdiğinde,
fazladan bir ters eğik çizgi kaldırma düzeyi
var demektir. Örneğin, “foo\bar” dizgesinde
"\b"nin tek başına "b" haline gelmemesi
gerekiyorsa dizgeye ters eğik çizgiyle eşleşen
bir önceleme eklemek gerekiyor demektir, bu durumda dizge
“foo\\bar*" olarak belirtilmelidir.
- ○
- Eğer bir kalıp bir / (sonda
değil) ya da bir " **" içeriyorsa
baştan sona tüm dizinleri dahil tam dosya yolu ile
eşleştirilir. Eğer kalıp bir / ya da
" **" içermiyorsa, sadece tam yolun son
bileşeni ile eşleştirilir (algoritmanın
altdizinlere inilerek uygulandığını
hatırlayın, yani "tam yol"
başlangıç dizininden başlayarak son dizine
kadar yolun herhangi bir parçası ile
eşleşebilir).
- ○
- Sondaki “bir_dizin/***”
kalıbı [3 yıldıza dikkat!] hem dizinle
(“ bir_dizin/" belirtilmiş gibi) hem de
dizindeki her şeyle (" bir_dizin/**"
belirtilmiş gibi) eşleşir. Bu davranış
2.6.7 sürümünde eklenmiştir.
- Bilgi:
-
--recursive (-r) seçeneğini
(örtük olarak -a ile uygular)
kullandığınızda, soldan sağa her yolun
her alt bileşeni ziyaret edilir, yani
içerme/dışlama kalıpları alt dizinlere
de inilerek her alt bileşenin tam ismine uygulanır.
rsync göndereceği dosyaları ararken,
dışlama kalıpları aslında dizin
basamaklama aşamasını kısa devre eder.
Örneğin, " /foo/bar/baz" içerilirken
" /foo" ve "/foo/bar"
dışlanmaz). Eğer bir kalıp belli bir
üst dizini dışlıyorsa, bir düzey daha
derin içerme kalıbını sonuçsuz
bırakabilir, çünkü rsync,
hiyerarşinin dışlanan bir
bölümünden daha derine inmez.
Bir üst dizinin dışlanması " *"
ile biten bir kural kullanılırken önem
kazanır. Örneğin, bu
çalışmayacaktır:
+ /bir/yol/bu-dosya-bulunmaz
+ /bu-dosya-bulunur
- *
- Bu kural listesi, "bir" üst dizini
’ - *’ kuralından dolayı
dışlayacağından başarısız
olur, yani rsync, "bir" ve
"bir/yol" dizinleri içindeki hiçbir
dosyayı ziyaret etmez. Hiyerarşideki tüm dizinleri
ziyaret ettirecek bir çözüm " + */"
kuralının listeye dahil edilmesi (" - *"
kuralından önce herhangi bir yere yerleştirilebilir)
ve belki --prune-empty-dirs seçeneğinin de
kullanılmasıdır. Diğer bir
çözüm ise ziyaret edilmesi gereken üst
dizinlerin hepsi için belirli bir içerme kuralı
eklemektir. Örneğin, bu kural kümesi doğru
çalışır:
+ /bir/
+ /bir/yol/
+ /bir/yol/bu-dosya-bulunur
+ /bu-dosya-da-bulunur
- *
-
Dışlama/içerme eşleştirme örnekleri:
- •
- "- *.o" kalıbı *.o
ile eşleşen tüm dosya isimlerini
dışlar.
- •
- "- /foo" kalıbı
aktarımın kök dizinindeki " foo"
isimli dosyayı/dizini dışlar.
- •
- "- foo/" kalıbı
"foo" isimli her dizini dışlar.
- •
- "- /foo/*/bar" kalıbı
aktarımın kök dizinindeki " foo"
dizininden iki seviye aşağıdaki "
bar" isimli her dosyayı dışlar.
- •
- "- /foo/**/bar" kalıbı
aktarımın kök dizinindeki " foo"
dizininden iki veya daha alt seviyedeki " bar" isimli her
dosyayı dışlar.
- •
- "+ */", "+ *.c" ve
"- *" kalıplarının birleşimi,
tüm dizinler ve C kaynak dosyaları
dışında herşeyi dışlar.
- •
- "+ foo/", "+ foo/bar.c"
ve " - *" kalıplarının
birleşimi ise sadece " foo" dizinini ve
"foo/bar.c" dosyasını içerecektir
(" foo" dizini açıkça
içerilmelidir yoksa " *" tarafından
dışlanırdı).
"
+" veya "
-" iminin ardından kabul
edilen değiştiriciler;
- •
-
/ değiştircisi,
içerme/dışlama kuralının geçerli
öğenin mutlak yol adıyla eşleşmesi
gerektiğini belirtir. Örneğin, " -/
/etc/passwd" kalıbında, " /etc"
dizininden dosya gönderilirken passwd dosyası
aktarıma dahil edilmez; " -/ dizin/foo"
kalıbında ise, " dizin" alt dizini
aktarımın kökü bile olsa içindeki
" foo" dosyası aktarıma dahil edilmez.
- •
-
! değiştircisi,
içerme/dışlama kuralının kalıp
eşleşmediği takdirde etkili olmasını
sağlar. Örneğin, " -! */"
dışlama kuralı dizin olmayan herşeyi
dışlar.
- •
-
C değiştircisi, tüm
küresel CVS-dışlama kurallarının "
-C" yerine dışlananlar olarak eklenmesi
gerektiğini belirtmek için kullanılır.
Hiçbir girdi kabul etmez.
- •
-
s değiştircisi, kuralın
gönderen taraf için geçerli olduğunu belirtmek
için kullanılır. Gönderen tarafı
etkileyen bir kural dosyaların aktarılmasını
engeller. Öntanımlı kuralların gönderen
taraf kuralları haline gelmesini sağlayan
--delete-excluded belirtilmediği sürece
öntanımlı kurallar her iki tarafı da etkiler.
Gönderen taraf içerme/dışlama
kurallarını belirtmenin başka bir yolu hide
(H) ve show (S) kurallarını
kullanmaktır.
- •
-
r değiştircisi, kuralın
alıcı tarafa uygulanacağını belirtmekte
kullanılır. Alıcı tarafı etkileyen bir
kural, dosyaların silinmesini engeller. Daha fazla bilgi
için üstteki s değiştiricisinin
açıklamasına bakılabilir. Alıcı
taraf içerme/dışlama kurallarını
belirtmenin başka bir yolu ( protect (P) ve
(risk( ( R) kurallarını
kullanmaktır.
- •
-
p değiştircisi, bir kuralın
bozulabilir olduğunu, yani silinmekte olan dizinlerde yok
sayılacağını belirtir. Örneğin,
--cvs-exclude (-C) seçeneğinin
"CVS" ve " *.o" gibi şeyleri
dışlayan öntanımlı kuralları
bozulabilir olarak imlenir ve kaynaktan kaldırılan bir
dizinin hedeften silinmesini engellemez.
- •
-
x değiştircisi, xattr kopyalama/silme
işlemlerinde xattr adlarını etkileyen kuralı
belirtir (ve bu nedenle dosya/dizin adları
eşleştirilirken yoksayılır). Hiçbir
xattr eşleştirme kuralı belirtilmezse,
öntanımlı xattr süzme kuralı
kullanılır (bkz: --xattrs seçeneği).
Yukarıda
SÜZME KURALLARI bölümünde
bahsedildiği gibi
merge (
.) ya da
dir-merge
(
:) süzme kuralı belirtilerek tüm dosyalar
süzme kurallarıyla birleştirilebilir.
İki çeşit birleştirme dosyası vardır:
tek dosyalık (’
.’) ve dizin içi dosyalar
(’
:’). Tek dosyalık bir birleştirme
dosyası bir defa okunur ve "." kuralındaki
süzme listesi ile birlikte işleme sokulur. Dizin içi
birleştirme dosyası türünde ise,
rsync
adım adım bütün alt dizinleri tarayarak ismi
belirtilen dosyayı buldukça dosya içeriğini o anki
kural listesine ekler. Bu dizin içi kural dosyaları
aktarımın alt dizinlerinde aranması gerektinden
gönderen tarafta oluşturulmalıdır. Ayrıca,
bu kural dosyalarının silinmeyecek dosyaları etkilemesi
isteniyorsa, alıcı tarafa da aktarılmaları
gerekecektir (aşağıda,
Diziniçi
Birleştirme Kuralları ve Silme bölümüne
bakınız).
Bazı örnekler:
merge /etc/rsync/default.rules
. /etc/rsync/default.rules
dir-merge .per-dir-filter
dir-merge,n- .non-inherited-per-dir-excludes
:n- .non-inherited-per-dir-excludes
Bir
merge veya
dir-merge kuralı şu
belirteçleri kabul eder:
- ○
-
- belirteci, dosya içi
açıklamalar hariç başka bir kural
çözümlemesi olmaksızın, dosyanın
sadece dışlama kalıplarından
oluşması gerektiğini belirtir.
- ○
-
+ belirteci, dosya içi
açıklamalar hariç başka bir kural
çözümlemesi olmaksızın, dosyanın
sadece içerme kalıplarından oluşması
gerektiğini belirtir.
- ○
-
C belirteci, bir dosyanın CVS
uyumluluğu anlamında okunması gerektiğini
belirtir. Bu ’ n’, ’w’, ve
’ -’ belirteçlerini etkin kılar, fakat
ayrıca, belirtilecek liste temizleme imine de ( !) izin
verir. Bir dosya ismi belirtilmemişse dosya isminin "
.cvsignore" olduğu varsayılır.
- ○
-
e belirteci, birleştirme
dosyasını aktarımdan
dışlayacaktır; örneğin, "
dir-merge,e .rules" kuralı " dir-merge
.rules" ve " - .rules" kuralları
gibidir.
- ○
-
n belirteci, kuralların alt dizinlerde miras
alınmayacağını belirtir.
- ○
-
w belirteci, kurallar için satırlara
bölme değil boşluklara göre
sözcük ayırma uygulanacağını
belirtir. Bu ayrıca açıklamalara da izin
vermeyecektir.
- Bilgi:
- Kuraldan öneki ayıran boşluklar
özel olarak ele alınır, yani " - foo +
bar" dizgesi iki kurala ayrılacaktır (önek
çözümlemesinin iptal edilmediği
varsayımıyla).
- ○
- Dosya öntanımlısından okunan
kuralları zorlarken " +" veya "-"
kuralları için yukarıdaki
değiştiricilerden herhangi biri belirtilebilir
(kullanışsız olacağından !
değiştiricisi hariç). Örneğin, "
dir-merge,s .filt" ve ":sC"
kurallarının herbiri sadece gönderen tarafta
uygulanacak dizin içi birleştirme kurallarını
oluştururken, " merge,-/ .excl" kuralıyla
.excl dosyasının içeriği mutlak yol
dışlamaları olarak ele alınır.
Birleştirme kuralı etkilenecek tarafları belirtiyorsa
( s veya r değiştiricisi veya her ikisi
aracılığıyla), dosyadaki kurallar
tarafları belirtmemelidir (bir değiştirici veya
hide gibi bir kural öneki
aracılığıyla).
dir-merge kuralları
n belirteci
kullanılmadıkça birleştirme
dosyasının bulunduğu her alt dizinde miras
alınır. Her alt dizinin kuralları, miras alınan
kurallara göre daha yüksek öncelik almak üzere
üst dizindeki
dir-merge kurallarının
başına eklenir. Birleşik kural kümesi
birleştirme dosyasının bulunduğu noktalara
göre gruplanır, böylece genel kurallar listesinde evvelce
belirtilmiş bir kuralın
dir-merge kuralları ile
değiştirilmesi mümkün olur. Bir diziniçi
birleştirme dosyasında bir liste temizleme kuralına
("!") rastlandığında, sadece o
birleştirme dosyasının bulunduğu noktaya kadar
miras alınan kurallar temizlenir.
Tek dosyalık kuralın
dir-merge dosyasından miras
alınmasını engellemenin diğer bir yolu,
dosyanın başına bir
/ getirmektir. Bir
diziniçi birleştirme dosyasındaki bu tür kurallar
birleştirme dosyasının bulunduğu dizine
göre ele alınır, böylece bir "
/foo" kalıbı
dir-merge süzme
kuralı dosyasının bulunduğu dizindeki "
foo" dosyasıyla eşleşir.
--filter=". dosya" üzerinden belirtilebilecek
örnek süzme dosyası:
merge /home/user/.global-filter
- *.gz
dir-merge .rules
+ *.[ch]
- *.o
- foo*
Bu,
/home/user/.global-filter dosyasının
içeriğini listenin başına ekler ve ayrıca
"
.rules" dosyasını dizin içi
süzme dosyasına dönüştürür.
Dizin taraması başlatılmadan önce okunan
tüm kurallar, (aktarımın köküyle
eşleşen eğik çizgi gibi) genel sabitleme
kurallarının sonuna eklenir.
Eğer bir dizin içi birleştirme dosyası, ilk
aktarım dizininin üst dizini olan bir dosya yolu ile
belirtilmişse,
rsync belirtilen dosya için,
aktarım dizininin başlangıcından itibaren
tüm üst dizinleri tarayacaktır. Örneğin,
böyle bir süzgeç (bkz:
-F seçeneği),
--filter=’: /.rsync-filter’
rsync’e
.rsync-filter dosyasını,
aktarımın bir parçası olarak gönderilen
dizinlerde normal dosya taramasına başlamadan önce
aktarımın üst dizini
aracılığıyla kökten
aşağı doğru tüm dizinlerde
aramasını söyler (Bilgi: bir
rsync artalan
süreci için kök dizin daima modülün
“
path” değeridir).
Dizin içi birleştirme dosyaları için bu tarz
ön tarama örnekleri:
rsync -avF /kaynak/yol/ /hedef/dizin
rsync -av --filter=’: ../../.rsync-filter’ /kaynak/yol/ /hedef/dizin
rsync -av --filter=’: .rsync-filter’ /kaynak/yol/ /hedef/dizin
İlk iki komut "
.rsync-filter" dosyasını
"
/kaynak/yol" içinde aramaya başlamadan
önce "
/" ve "
/kaynak" dizinlerinde
arama yapar. Son komut ise, üst dizin taramasından
kaçınır ve "
.rsync-filter"
dosyasını sadece aktarımın parçası
olan dizinlerde arar.
"
.cvsignore" dosyasının içeriği
kalıplara dahil etmek istenirse, "
:C" kuralı
kullanılmalıdır. Bu kural,
.cvsignore
dosyalarını dizin içi birleştirme dosyaları
haline getirir, fakat dosya CVS uyumluluğu bağlamında
ayrıştırılır.
--cvs-exclude
(
-C) seçeneğinin bulunduğu yerde etkili
olması isteniyorsa kuralların arasına bu noktada "
:C" kuralı yerleştirilebilir. Bu
olmaksızın,
rsync .cvsignore dosyası
için
dir-merge kuralını diğer
kurallarının sonuna ekleyecektir (komut satırı
seçeneklerinden daha düşük bir öncelik
vererek). Örnek:
cat <<EOT | rsync -avC --filter=’. -’ a/ b
+ foo.o
:C
- *.old
EOT
rsync -avC --include=foo.o -f :C --exclude=’*.old’ a/ b
Yukarıdaki
rsync komutlarının ikisi de aynı
işi yapar. Her ikisi de diziniçi
.cvsignore
kurallarını listenin sonuna değil, ortasına
ekleyecektir. Bu, onların dizine özel kurallarının
sizin kurallarınızın tümünden daha
düşük önemde olması yerine
:C’ye kadar olan kuralların yerine geçmesini
mümkün kılar. Diğer CVS dışlama
kurallarını etkilemek için (örn,
öntanımlı dışlananlar listesi,
$HOME/.cvsignore dosyasının içeriği ve
$CVSIGNORE değişkeninin değeri),
-C komut
satırı seçeneğini belirtmek yerine,
kurallarınıza bir "
-C" kuralı
eklemelisiniz; örn, "
--filter=-C".
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.
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).
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 işlem dosyası kipi bir çok sistem için
aynı olan güncellemeleri uygularken kullanılabilir. Bir
dizin ağacının çok sayıda konak
üzerinde kopyalarının bulunduğunu
varsayalım. Şimdi, kaynak ağacında bazı
değişiklikler olduğunu ve bunların diğer
konaklara da aktarılması gerektiğini varsayalım.
Bu işlemi toplu işlem dosyası kipini kullanarak yapmak
için,
rsync, kaynak ağacındaki
değişiklikleri hedef ağaçlardan birinde uygulayan
--write-batch seçeneği ile
çalıştırılır.
--write-batch
seçeneği, yapılan işlemlerin aynı dizin
ağacını içeren hedeflerde uygulanmak üzere
bir "toplu işlem dosyası" içinde
saklanmasını sağlar.
Toplu iş dosyasını bir kez oluşturmak, birden
çok hedef ağacı güncellerken dosya durumu,
sağlama toplamı ve veri bloğu oluşturma
işlemlerini her defasında yeniden gerçekleştirme
zorunluluğundan kurtarır. Aynı verileri her konağa
ayrı ayrı göndermek yerine, toplu güncelleme
dosyalarını birçok konağa aynı anda
aktarmak için çok noktaya yayın aktarım
protokolleri kullanılabilir.
Kaydedilen değişiklikleri diğer hedef
ağaçlara uygulamak için
rsync, bu dosyanın
ismi
--read-batch seçeneğinde belirtilerek
çalıştırılır.
rsync, toplu
işlem dosyasında saklanmış bilgileri kullanarak
hedef ağacı günceller.
Rahat olsun diye,
--write-batch seçeneği
kullanılırken ek bir dosya daha oluşturulur. Bu
dosyanın ismi, toplu işlem dosyasının isminin
sonuna "
.sh" eklenerek oluşturulur. Bu
.sh
dosyası toplu işlem dosyasını kullanarak hedefi
güncelleyecek komut satırını içerir. Bir
Bourne (ya da benzeri) kabuk kullanılarak
çalıştırılabilir. İsteğe
bağlı olarak özgün yol yerine hedef
ağacın dosya yolu aktarılabilir. Bu, hedef
ağacın dosya oluşturulurken kullanılandan
farklı olduğu durumlarda yararlıdır.
Örnekler:
$ rsync --write-batch=foo -a konak:/kaynak/dzn/ /hedef1/dzn/
$ scp foo* uzak:
$ ssh uzak ./foo.sh /hedef2/dzn/
$ rsync --write-batch=foo -a /kaynak/dzn/ /hedef1/dzn/
$ ssh uzak rsync --read-batch=- -a /hedef2/dzn/ <foo
Bu örneklerde,
rsync /kaynak/dzn/’den
/hedef1/dzn/’i güncellemekte
kullanılmış ve bu işlemi yinelemek için
işlemler "
foo" ve "
foo.sh"
dosyalarına kaydedilmiştir. "
uzak"
konağı toplu veri
/hedef2/dzn/ dizinine
gönderilerek güncellenir. Bu iki örnek arasındaki
farklar toplu işlem dosyalarının hangi esneklikte
kullanılabileceğini göstermek içindir:
- ○
- İlk örnek ilk kopyanın yerel
olmayacağını gösterir -- her iki yönde
de aktarım için uzak kabuk sözdizimi veya
rsync artalan süreci sözdizimi
kullanılabilir.
- ○
- İlk örnek uzak konak üzerinde
--read-batch seçenekli komutu
çalıştırırken doğru rsync
seçeneklerini oluşturulan " foo.sh"
dosyasından alır.
- ○
- İkinci örnek toplu işlem verisini
standart girdiden okur, böylece toplu işlem
dosyasının önce uzak konağa
kopyalanması gerekmez. Bu örnek,
değiştirilmiş bir --read-batch
seçeneğinin kullanılmasını
gerektirdiğinden " foo.sh" betiği
kullanılmamıştır, fakat betiği
kullanmak için dosya düzenlenebilir (ancak, başka bir
seçeneğin ( --exclude-from=- gibi) standart girdiyi
kullanmadığından emin olunmalıdır).
--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.
rsync kaynak dizini içinde bir sembolik bağ
saptadığında üç temel
davranış sözkonusudur:
- •
- Öntanımlı olarak, sembolik
bağlar oldukları gibi aktarılmazlar. Bir sembolik
bağ varsa, "skipping non-regular file" (normal dosya
olmadığından atlanıyor) iletisini
alırsınız ve dosya atlanır.
- •
- Eğer --links seçeneği
belirtilmişse, sembolik bağlar alıcı tarafta
aynı hedefle yeniden oluşturulur. BİLGİ:
--archive seçeneği örtük olarak
--links seçeneğini uygular.
- •
- Eğer --copy-links seçeneği
belirtilmişse, alıcı tarafa sembolik
bağın ismiyle hedefindeki dosya aktarılır.
rsync ayrıca, "güvenli" ve güvensiz"
sembolik bağları ayrımsayabilir. Bunun
kullanıldığı yere bir örnek olarak, bir
sanalyöre yansılaması yapılırken,
yörenin genel bölümüne
/etc/passwd sembolik
bağının aktarımda içerilmediğinden
emin olunmak istenmesi gösterilebilir.
--copy-unsafe-links
seçeneğinin kullanımı sembolik
bağların hedefindeki dosyaların kopyalanmasına
sebep olacaktır.
--safe-links seçeneğinin
kullanımı ise güvensiz bağların
atlanmasına sebep olacaktır.
- Uyarı:
-
--safe-links seçeneğinin etkili
olabilmesi için --links seçeneğinin de
belirtilmesi gerekir.
Mutlak yol içeren (
/ ile başlayan) sembolik
bağlarla, boş ve bulunulan dizinden daha yukarıdaki
dizinleri gösteren "
.." bileşenlerini
içeren sembolik bağlar güvensiz olarak kabul edilir.
Sembolik bağ seçeneklerinin yorumlanışı
aşağıda özetlenmiştir. Liste öncelik
sırasına göredir, bu nedenle kullanılan
seçeneklerin tamamını içeren bir şık
yoksa en yakın kısmi eşleşmeyi içeren ilk
şık kullanılmalıdır:
- 1.
-
--copy-links Tüm sembolik bağlar dizin
veya dosyaya dönüştürülür
(diğer seçeneklerden etkilenebilecek hiçbir sembolik
bağ bırakmamacasına).
- 2.
-
--copy-dirlinks Dizin sembolik bağları
gerçek dizinlere
dönüştürülür, diğer
tüm sembolik bağlar aşağıdaki gibi ele
alınır.
- 3.
-
--links --copy-unsafe-links Güvenli
olmayan sembolik bağlar dosyalara
dönüştürülür, güvenli
olanların tamamı oluşturulur.
- 4.
-
--copy-unsafe-links Güvenli olmayan sembolik
bağlar dosyalara
dönüştürülür, güvenli
olanlar uyarı verilerek atlanır.
- 5.
-
--links --safe-links Alıcı,
aktarımda bulunan güvenli olmayan sembolik
bağları oluşturmayı atlar ve güvenli
olanları oluşturur.
- 6.
-
--links - Tüm sembolik bağlar
oluşturulur.
--munge-links seçeneğinin etkili olduğu durumlar
için seçeneğin açıklamasına
bakılmalıdır.
--keep-dirlinks seçeneği aktarımdaki sembolik
bağları değil alıcı taraftaki dizin
sembolik bağlarının ele
alınışını etkiler. Seçeneğin
açıklamasında bu konuda bir uyarı
bulunmaktadır.
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.
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
- CVSIGNORE
-
.cvsignore dosyalarındaki gibi
yoksayılacak kalıpları belirtmek için
kullanılır. Daha fazla bilgi için bkz:
--cvs-exclude
- RSYNC_ICONV
-
--iconv seçeneğinin
öntanımlısını belirtmek için
kullanılır. 3.0.0 sürümünden itibaren
desteklenmektedir.
- RSYNC_OLD_ARGS
-
--old-args seçeneğinin
öntanımlı olarak etkin olması için
"1", tekrarlanan seçenek durumunun etkin olması
için bir veya daha fazla sayıda "2" veya
öntanımlı olarak etkin ise iptal etmek için
"0" atanabilir. Bu ortam değişkenine
sıfırdan farklı bir değer
atandığında, RSYNC_PROTECT_ARGS
değişkeninin yerini alır.
--old-args, --no-old-args veya --protect-args
seçeneği kullanıldığında bu
değişken yok sayılır.
3.2.4 sürümünden itibaren desteklenmektedir.
- RSYNC_PROTECT_ARGS
-
--protect-args seçeneğinin
öntanımlı olarak etkin olması için
sıfırdan farklı bir değer
atanmalıdır. Öntanımlı olarak etkin ise
iptal etmek için "0" atanmalıdır.
--old-args, --no-old-args veya --protect-args
seçeneği kullanıldığında bu
değişken yok sayılır.
3.1.0 sürümünden itibaren desteklenmektedir. 3.2.4 ve
sonrasında RSYNC_OLD_ARGS değişkenine
sıfırdan farklı bir değer
atanmışsa bu değişken yok
sayılır.
- RSYNC_RSH
-
rsync tarafından kullanılan
öntanımlı kabuğun yerine kullanılacak
kabuğu belirtmek için kullanılır. Komut
isminden sonra komut satırı seçeneklerine
--rsh ( -e) seçeneğindeki gibi izin verilir.
- RSYNC_PROXY
-
rsync sunucusuna bağlanırken
rsync istemcisi tarafından kullanılacak vekil
sunucuyu belirtmek için kullanılır. Değeri bir
konak:port çifti olarak belirtilmelidir.
- RSYNC_PASSWORD
- Kimlik kanıtlaması gerektiren bir
rsync sunucusuna bağlanırken komut
satırında parola belirtmek zorunda kalmamak için
parola bu değişkene atanabilir. Aktarım ssh
gibi bir kabuk üzerinden gerçekleştiriliyorsa bu
değişkene bakılmayacaktır.
-
USER veya LOGNAME
-
USER veya LOGNAME değişkenleri
bir rsync sunucusuna gönderilecek kullanıcı
ismini belirlemek için kullanılır. Böyle bir
tanım yapılmamışsa,
öntanımlı kullanıcı ismi olarak
"nobody" kullanılır. İkisine de
tanımlama yapılmışsa USER
önceliklidir.
- RSYNC_PARTIAL_DIR
- Bu ortam değişkeni, kısmi
aktarım etkinleştirmesi yapılmaksızın
kısmi aktarım için kullanılacak dizini
belirtir. Tüm ayrıntılar için
--partial-dir seçeneğine bakılabilir.
- RSYNC_COMPRESS_LIST
- Bu ortam değişkeni,
ardışık bir sıra veya
azaltılmış bir ad listesi belirterek
sıkıştırma algoritması
uzlaşımının özelleştirilmesine
olanak tanır. Kullanılabilir
sıkıştırıcıların
adlarını görmek için rsync --version
komutu kullanılabilir. Tüm ayrıntılar
için --compress seçeneğine bakılabilir.
- RSYNC_CHECKSUM_LIST
- Bu ortam değişkeni,
ardışık bir sıra veya
azaltılmış bir ad listesi belirterek sağlama
toplamı algoritması uzlaşımının
özelleştirilmesine olanak tanır.
Kullanılabilir sağlama toplamlarının
adlarını görmek için rsync --version
komutu kullanılabilir. Tüm ayrıntılar
için --checksum-choice seçeneğine
bakılabilir.
- RSYNC_MAX_ALLOC
- Bu ortam değişkeni, --max-alloc
seçeneğinin yaptığı gibi
ayrılabilecek azami bellek miktarını belirtmekte
kullanılır.
- RSYNC_PORT
- Bu ortam değişkeni rsync
tarafından okunmaz, bunun yerine rsync’in sunucu
bağlantısıyla
çalıştığı uzak kabuğun
ortamında atanır. Bu, rsync-ssl(1) gibi bir
betiğin, kullanıcının komut
satırında belirttiği port numarasını
bilmesini sağlar.
- HOME
- Kullanıcının
öntanımlı .cvsignore dosyasını
bulmakta kullanılır.
- RSYNC_CONNECT_PROG
- Bu ortam değişkeni, sunucu
bağlantısı yaparken kullanılacak
uygulamayı belirtmek için çoğunlukla hata
ayıklama kurulumlarında kullanılır. Tüm
ayrıntılar için bkz: RSYNC ARTALAN
SÜRECİNE BAĞLANMAK
- RSYNC_SHELL
- Bu ortam değişkeni, çoğunlukla
RSYNC_CONNECT_PROG tarafından belirtilen uygulamanın
çalıştırılacağı
kabuğu belirtmek için hata ayıklama
kurulumlarında kullanılır. Tüm
ayrıntılar için bkz: RSYNC ARTALAN
SÜRECİNE BAĞLANMAK
/etc/rsyncd.conf veya
rsyncd.conf
rsync-ssl(1),
rsyncd.conf(5),
rrsync(1).
- •
- Zamanlar unix time_t türünden değerler
olarak aktarılır.
- •
- Dosyalar FAT dosya sistemine aktarılırken,
rsync dosyalarda değişiklik yapmayabilir. Bkz:
--modify-window.
- •
- Dosya izinleri, aygıtlar, vs. temel sayısal
değerleriyle aktarılır.
- •
- Ayrıca, bkz: --delete.
- •
- Lütfen hataları raporlayınız!
Hataları raporlamak için bkz: https://rsync.samba.org/.
--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 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.
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.
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
© 2005, 2022 Nilgün Belma Bugüner
Bu çeviri özgür yazılımdır:
Yasaların izin verdiği ölçüde
HİÇBİR GARANTİ YOKTUR.
Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri
yapmak için
https://github.com/TLBP/manpages-tr/issues adresinde
"New Issue" düğmesine tıklayıp yeni bir
konu açınız ve isteğinizi belirtiniz.