İSİM
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.
İLERİ DÜZEY KULLANIM
Bir uzak makineden çok sayıda dosya için
istek yaparken aralarında boşluk
bırakılmış kaynak dosya yolları, ilkinden
sonra uzak konağı belirterek de belirtmeyerek de
yazılabilir. Aşağıdakilerin hepsi
çalışacaktır:
rsync -aiv konak:dosya1 :dosya2 konak:dosya{3,4} /hedef/
rsync -aiv konak::modismi/dosya{1,2} konak::modismi/ek /hedef/
rsync -aiv konak::modismi/first ::modismi/ek{1,2} /hedef/
Günümüz rsync’inde, yerel kabukta bir
şeyleri tırnak içine almak veya ters eğik
çizgi ile öncelemek gerekirse bunu ayrıca uzak konak
için de yapmak gerekmez:
rsync -aiv konak:’basit bir dosya.pdf’ /hedef/
rsync’in oldukça eski sürümlerinde, tek bir
konak girdisne izin verilirdi, dolayısıyla diğer
tarafın girdileri boşluklara göre
ayıklaması gerekirdi. --old-args seçeneği
belirtilerek eski tarz girdi ayıklaması hala kullanabilmektedir:
rsync -ai --old-args konak:’dzn1/dosya1 dzn2/dosya2’ /hedef
rsync -ai --old-args konak::’modismi/dzn1/dosya1 modismi/dzn2/dosya2’ /hedef
Eski toplu işlem dosyalarına yardımcı olmak
üzere atanabilecek ortam değişkeni için
--old-args seçeneğinin açıklamasına
bakınız.
RSYNC ARTALAN SÜRECİNE BAĞLANMAK
Dosya aktarımı için rsync’i bir
uzak kabuk olmaksızın kullanmak da
mümkündür. Bu durumda, TCP 873. port üzerinde
çalışan bir uzak rsync sunucusuna
bağlanırsınız. Bu açıkça
artalan sürecinin uzak makinada çalışıyor
olmasını gerektirir. Bu konuda daha
ayrıntılı bilgi için bkz: RSYNC ARTALAN
SÜRECİNE UZAK KABUKTAN BAĞLANMAK
rsync’i bu yöntemle kullanmanın bir
uzak kabuk üzerinden kullanmaya göre farkları
şunlardır:
- ○
- Ya makine ismini dosya yolundan ayırmak için tek bir :
yerine :: kullanırsınız ya da rsync://URL
biçimini kullanırsınız.
- ○
- Dosya yolunun ilk sözcüğü aslında bir
modül ismidir.
- ○
- Sunucu bağlandığınızda
günün iletisini basabilir.
- ○
- Sunucu için bir dosya yolu belirtmezseniz, sunucu üzerinde
erişilebilir olan dosya yollarının listesini
alırsınız.
- ○
- Bir yerel hedef belirtmezseniz, uzak sunucu istediğiniz
dosyaların bir listesini yollar.
- ○
- --rsh (-e) seçeneğini belirtmemelisiniz (yoksa
ssh bağlantısı bir süreç
çatallayacağından sunucuda
çalışan artalan süreci
yoksayılır -- bkz: RSYNC ARTALAN SÜRECİNE
UZAK KABUKTAN BAĞLANMAK)
"kaynak" adlı uzak modüldeki dosyaların
tümünü kopyalayan bir örnek:
rsync -av konak::kaynak /hedef
Sunucu üzerindeki bazı dosya depoları kimlik
doğrulaması gerektirebilir. Böyle bir durumda
bağlanmak istediğinizde sizden parola istenecektir. Parola
istemi almamak için parolanızı RSYNC_PASSWORD
ortam değişkenine kaydedebileceğiniz gibi,
--password-file seçeneğini de kullanabilirsiniz. Bu
kullanım rsync’i bir toplu işlem dosyası
ile kullandığınız durumlarda
yararlıdır.
- Uyarı:
- Bazı sistemlerde ortam değişkenlerini tüm
kullanıcılar görebilmektedir. Bu tür
sistemlerde --password-file seçeneğinin tercih
edilmesi önerilir.
RSYNC_PROXY ortam değişkenine bir
konak:port çifti belirterek bir vekil sunucu üzerinden
de bağlantı sağlayabilirsiniz. Burada, vekil
sunucunuzun yapılandırmasının 873. port
üzerinden bağlantıya izin verdiğinden emin
olmalısınız.
Doğrudan soket bağlantısı yapmak
yerine RSYNC_CONNECT_PROG ortam değikenine
çalıştırmak istediğiniz komutları
atayarak bir uygulamayı vekil olarak kullanmak suretiyle artalan
sürecinin ağa bağlanması sağlanabilir.
Komut dizgesi, rsync komutunda belirtilen konak adını
ifade etmek üzere "%H" değişkenini
içerebilir (dizgede tek bir % belirtmek gerekirse yerine %%
kullanılabilir). Örnek:
export RSYNC_CONNECT_PROG=’ssh vekilkonak nc %H 873’
rsync -av hedefkonak1::modul/kaynak/ /hedef/
rsync -av rsync://hedefkonak2/modul/kaynak/ /hedef/
Yukarıda, ilk komutta, tüm verileri hedefkonaktaki (%H)
873. porta (rsync artalan sürecine) ileten vekilkonak
üzerinde nc(1) (netcat) çalıştırmak
için ssh(1) kullanılmaktadır. Ayrıca,
RSYNC_SHELL ortam değişkenine bir uygulama
tanımlanırsa, RSYNC_CONNECT_PROG komutunu
çalıştırmak için system(3)
çağrısının öntanımlı
kabuğu yerine bu uygulama kullanılır.
RSYNC ARTALAN SÜRECİNE UZAK KABUKTAN
BAĞLANMAK
rsync artalan sürecinin, (isimli modüller
gibi) çeşitli özelliklerini kullanarak, fazladan bir
soket bağlantısı yapmadan, sisteme uzak kabukla
bağlanmak bazen yararlıdır. rsync, bir
konağa uzak kabuk kullanarak bağlanmayı ve
ardından uzak kullanıcının ev dizinindeki bir
yapılandırma dosyasını okuyacak tek
kullanımlık bir "artalan" sunucusu
çatallamayı destekler. Artalan süreci tarzı bir
aktarımda verilerin şifrelenmek istenmesi durumunda bu
yararlı olabilir, ancak artalan süreci uzak
kullanıcı tarafından
başlatıldığından, chroot(1) gibi
özellikler kullanılamayabilir veya artalan süreci
tarafından kullanılan kullanıcı kimliği
değiştirilemeyebilir. (Artalan süreci
aktarımını şifrelemenin başka bir yolu
da, ssh(1) kullanarak yerel bir portu uzak bir konağa
tünellemek ve uzak konaktaki normal rsync artalan
sürecini yalnızca "localhost"
bağlantılarına izin verecek şekilde
yapılandırmaktır.)
Kullanıcı açısından, uzak kabuk
bağlantısıyla uzak artalan süreci
çatallayarak aktarımda, normal rsync artalan
süreci aktarımında kullanılanla hemen hemen
aynı komut satırı sözdizimi
kullanılır. Tek fark, uzak kabuğun
--rsh=KOMUT seçeneğiyle komut
satırında açıkça belirtilmesi
gerekliliğidir. (RSYNC_RSH ortam değişkeninin
kullanımı aynı işlevselliği
sağlamaz.) Örnek:
rsync -av --rsh=ssh konak::modul /hedef
Farklı bir uzak kabuk kullanıcısı belirtmeniz
gerekiyorsa, konaktan önce belirtilen kullanıcının
(kullanıcı tabanlı kimlik doğrulaması
gerektiren bir modül için) rsync
kullanıcısını belirttiğini
unutmayın. Yani, --rsh seçeneğinin kısa
sürümünün kullanıldığı
aşağıdaki örnekte olduğu gibi, Uzak kabuk
kullanıcısını, rsync
kullanıcısından ayırmak için uzak kabuk
komutunda ’-l kullanıcı’
seçeneğini kullanmak gerekir:
rsync -av -e "ssh -l ssh-kull" rsync-kull@konak::modul /hedef
ssh-kullanıcısı ssh(1) seviyesinde
kullanılmalıdır;
rsync-kullanıcısı ise "modul"e oturum
açmak için kullanılacaktır.
Bu kullanımda, rsync artalan süreci
ssh(1) tarafından sisteme erişilerek
başlatılmaktadır (istenirse,
~/.ssh/authorized_keys dosyası üzerinden de
zorlanabilir). Ancak, artalan sürecine (uzak kabuk uygulaması
ile değil) doğrudan erişilecekse sürecin
önceden
çalıştırılmış olması
gerekir.
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).
ÖRNEKLER
Burada rsync kullanımıyla ilgili bazı
örneklere yer verilmiştir.
Büyük MS Word dosyaları ve eposta
dizinlerinden oluşan eşimin ev dizinini yedeklemek için
her gece bir PPP bağlantısı üzerinden
bunları kendi makinemin arvidsjaur dizinine
şöyle bir cron işi ile aktarıyorum:
rsync -Cavz . arvidsjaur:backup
Samba kaynak ağacını eşzamanlı tutmak
için şu Makefile hedeflerini kullanıyorum:
get:
rsync -avuzb --exclude ’*~’ samba:samba/ .
put:
rsync -Cavuzb . samba:samba/
sync: get put
Bu sayede bağlantının öbür ucundaki bir CVS
diziniyle benimkini güncellememi sağlıyor. Uzak makinede
bir takım CVS işlemleri yaptıktan sonra uzak CVS
protokolü ile bunları kendi makinemde güncellemek
gecikmelerden dolayı pek verimli olmuyor.
"eski" ve "yeni" ftp sitelerim arasında
bir dizini şu komutla yansılıyorum:
rsync -az -e ssh --delete ~ftp/pub/samba nimbus:"~ftp/pub/tridge"
Bu komut her saat başı cron(8)’dan
çalıştırılıyor.
ÖZETLE SEÇENEKLER
Burada rsync’de kullanılabilen
seçeneklerin bir özetine yer verilmiştir. Bu
seçenekler bir sonraki bölümde
ayrıntılı olarak
açıklanmıştır.
--verbose, -v çıktı daha ayrıntılı olur
--quiet, -q hatalar dışında bilgi verilmez
--info=SÇNK ince taneli bilgilendirici ayrıntılama
--debug=SÇNK ince taneli hata ayıklayıcı ayrıntılama
--stderr=e|a|c std hata çıktı kipi değişir (ön: errors)
--quiet, -q hata olmayan iletiler baskılanır
--no-motd süreç kipi MOTD baskılanır
--checksum, -c sadece toplam sağlamaya bakılır, zaman ve
boyut değişikliklerine bakılmaz
--archive, -a arşiv kipi; -rlptgoD (-H’sız) ile aynı
--no-SEÇENEK belirtilen seçeneği olumsuzlar (--no-D gibi)
--recursive, -r dizinlerin alt dizinlerine inilir
--relative, -R göreli dosya yolları kullanılır
--no-relative --relative kapatılır
--no-implied-dirs -R uygulanmış dizinler gönderilmez
--backup, -b yedekleme yapılır (--suffix ve
--backup-dir seçeneklerine bakın)
--backup-dir=DİZİN sadece belirtilen dizinin içeriği
yedeklenir
--suffix=SONEK yedekleme soneki
(--backup-dir yoksa ~ öntanımlıdır)
--update, -u hedeftekiler daha yeniyse bu dosyalar
atlanır
--inplace hedef dosyaları yerinde günceller
--append hedef kısaysa ve eşit olacaksa veriyi ekler
--append-verify eski veri sağlama toplamına eklenir
--dirs, -d altdizinlere inmeden dizinleri aktarır
--old-dirs, --old-d eski rsync ile iletişimde --dirs gibidir
--mkpath hedefin yol bileşeni oluşturulur
--links, -l sembolik bağları sembolik bağ olarak
kopyalar
--copy-links, L sembolik bağ değil bağın son hedefi
kopyalanır
--copy-unsafe-links sadece güvensiz sembolik bağlar
dönüştürülür
--safe-links ağacın dışını hedefleyen sembolik
bağlar yoksayılır
--munge-links sembolik bağı bağ değil dosya olarak aktarır
--copy-dirlinks, -k sembolik bağı hedefindeki dosyaya dönüştürür
--keep-dirlinks, -K sembolik bağlı dizinler alıcıda dizin
yapılır
--hard-links, -H sabit bağlar korunur
--perms, -p izinler korunur
--executability, -E çalıştırılabilirlik korunur
--chmod=CHMOD dosya ve/ya dizin izinleri korunur
--acls, -A ACLler korunur (--perms uygular)
--xattrs, -X ek öznitelikler korunur
--owner, -o sahip korunur (sadece root)
--group, -o grup korunur
--devices, -D aygıtlar korunur (sadece root)
--copy-devices aygıt içeriğini normal dosya gibi kopyalar
--write-devices aygıtlara dosya gibi yaz (--inplace uygula)
--specials özel dosyalar korunur
-D --devices --specials kullanımına eşdeğer
--times, -t zamanlar korunur
--atimes, -U erişim zamanları korunur
--open-noatime açılan dosyaların erişim zamanı değiştrlmez
--crtimes, -N oluşturulma zamanları korunur (yeni-lik)
--omit-dir-times, -O zamanlar korunurken dizinler bunun
dışında tutulur
--super alıcıya root’un işlerini de yapmasını söyler
--fake-super xattr’lerle ayrıcalıklıları saklar/kurtarır
--sparse, -S seyrek dosyaları en verimli şekilde
elde eder
--preallocate hedef dosyaları yazmadan önce yer ayırır
--dry-run, -n işlemi yapıyormuş gibi gösterir ama yapmaz
--whole-file, -W dosyaları tamamen kopyalar
(rsync algoritması ile farkları değil)
--checksum-choice=AD sağlama toplamı algoritmasını seçer (--cc gibi)
--one-file-system, -x dosya sistemi sınırlarının dışına çıkılmaz
--block-size=BOYUT, -B sabit bir blok boyunda sağlama toplamına
zorlar
--rsh=KOMUT, -e kullanılacak uzak kabuk uygulaması
belirtilir
--rsync-path=UYGULAMA uzak makinede rsnc’in çalıştıracağı
uygulama
--existing sadece hedefte mevcut olan dosyalar
güncellenir
--ignore-existing hedefte mevcut olan dosyalar yoksayılır
--remove-source-files gönderen dosyaları eşzamanlı siler (dizinsiz)
--del --delete-during ile aynı
--delete göndericide olmayan dosyalar alıcıda
silinir
--delete-before alıcıda aktarım öncesi silme yapılır
(öntanımlı)
--delete-during alıcıda aktarım sırasında silme yapılır
--delete-delay silinenleri saptar, aktarım sonrası siler
--delete-after alıcıda aktarım sonrası silme yapılır
--delete-excluded alıcıda ayrıca dışlanmış dosyalar da
silinir
--ignore-missing-args kaynakta belirtilmeyenleri hatasız yoksayar
--delete-missing-args kaynakta belirtilmeyenler hedefte silinir
--ignore-errors G/Ç hataları olsa da siler
--force dizinler boş olmasa bile silinir
--max-delete=SAYI SAYIdan fazla dosya silinmez
--max-size=BOYUT BOYUTtan büyük dosyalar aktarılmaz
--min-size=BOYUT BOYUTtan küçük dosyalar aktarılmaz
--max-alloc=BOYUT bellek ayırma sınırını değiştirir
--partial kısmen aktarılmış dosyalar tutulur
--partial-dir=DİZİN kısmen aktarılmış dosyalar DİZİNde tutulur
--delay-updates güncellenecek tüm dosyalar sona bırakılır
--prune-empty-dirs, -m dosya listesindeki boş dizinleri budar
--numeric-ids kullanıcı/grup kimliklerini isimlerle
eşleştirmez
--usermap=İSİM özel kullanıcı adı eşlemi
--groupmap=İSİM özel grup adı eşlemi
--chown=KULL:GRUP basit kullanıcı/grup eşlemi
--timeout=SÜRE G/Ç zamanaşımını SÜRE saniyeye ayarlar
--contimeout=SÜRE bağlantı zamanaşımını SÜRE saniyeye ayarlar
--ignore-times, -I zaman ve boyut bakımından eşleşen dosyalar
atlanmaz
--size-only boyutları aynı olan dosyalar atlanır
--modify-window=SAYI doğruluğu arttırmak için değişiklik
zamanları karşılaştırılır
--temp-dir=DİZİN, -T geçici dosyaları DİZİNde oluşturur
--fuzzy, -y hedefte dosya yoksa benzerini bulur
--compare-dest=DİZİN alınan dosyaları ayrıca DİZİNdekilerle
karşılaştırır
--copy-dest=DİZİN DİZİNde değişmemiş dosyaları hedefe kopyalar
--link-dest=DİZİN değişmediyse DİZİNdeki dosyalara sabit bağ
--compress, -z aktarım sırasında dosya verisi sıkıştırılır
--compress-choice=STR sıkıştırma algoritması belirtir (--zc gibi)
--compress-level=SAYI sıkıştırma seviyesi belirtir (--zl gibi)
--skip-compress=LISTE uzantısı LİSTEdeki dosyalar sıkıştırılmaz
--cvs-exclude, -C dosyalar CVS’nin yaptığı gibi yoksayılır
--filter=KURAL, -f bir dosya süzme kuralı ekler
-F --filter=’dir-merge /.rsync-filter’ ve
yinelemeli: --filter=’- .rsync-filter’
ile aynı
--exclude=KALIP KALIP ile eşleşen dosyalar dışlanır
--exclude-from=DOSYA dışlama kalıpları DOSYAdan okunur
--include=KALIP KALIP ile eşleşen dosyalar dışlanmaz
--include-from=DOSYA dışlanmayan kalıplar DOSYAdan okunur
--files-from=DOSYA aktarılacak dosyaların isimlerinin listesi
DOSYAdan okunur
--from0, -0 *from seçeneklerindeki dosya listeleri boş
karakter sonlandırmalı kabul edilir
--old-args eski tarz boşluk ayıklaması etkin olur
--protect-args, -s boşluk ayıklama yok; yalnız jokerler
--copy-as=KULL[:GRUP] kopyalama içim kullanıcı ve seçimlik grup
--address=ADRES giden soketine adresi bağlar
--port=PORT başka bir port belirtmek için
--sockopts=SÇNK özel TCP SeÇeNeKleri belirtilir
--blocking-io uzak kabukta engellemeli G/Ç kullanılır
--outbuf=N|L|B çıktı tamponu biçim: None, Line, Block
yok, satır, blok
--stats dosya aktarımı sırasında durum bilgileri
verir
--8-bit-output, -8 yüksek bitli karakterler çıktıda öncelenmez
--human-readable, -h okunabilen sayılar çıktılanır
--progress aktarım sırasında gelişimi gösterir
-P --partial --progress ile aynı
--itemize-changes, -i tüm güncellemeler için bir değişiklik
özeti çıktılar
--remote-option=SÇN, -M SEÇENEK sadece uzak taraf gönderilir
--out-format=BÇM çıktı belirtilen BiÇeMde güncellenir
--log-file=DOSYA günlük belritilen DOSYAya kaydedilir
--log-file-format=BÇM günlük belirtilen BiÇeM ile güncellenir
--password-file=DOSYA parola DOSYAdan okunur
--early-input=DOSYA sürecin başta çalıştıracağı DOSYA
--list-only dosyaları kopyalamaz, sadece listeler
--bwlimit=KBPS saniyede kBayt cinsinden G/Ç band genişliği
--stop-after=DAK DAK dakika sonra rsync durdurulur
--stop-at=y-m-dTh:m rsync belirtilen zamanda durdurulur
--write-batch=DOSYA bir toplu işlemli güncellemeyi DOSYAya yazar
--only-write-batch=DOSYA --write-batch gibi ama hedef güncellenmez
--read-batch=DOSYA bir toplu işlemli güncellemeyi DOSYAdan okur
--protocol=SAYI eski protokol sürümüne zorlar
--iconv=DNŞM dosyalara karakter kümesi dönüşümü ister
--checksum-seed=SAYI blok/dosya sağlama toplamı tohumunu ayarlar
--ipv4, -4 IPv4 tercih edilir
--ipv6, -6 IPv6 tercih edilir
--version, -V sürüm + diğer bilgileri basar ve çıkar
--help, -h bu yardım iletisini gösterir ve çıkar
rsync ayrıca bir artalan süreci olarak da
çalıştırılabilir. Bu durumda şu
seçenekleri kabul eder:
--daemon bir rsync artalan süreci olarak çalışır
--address=ADRES belirtilen adres kullanılır
--bwlimit=KBPS saniyede kBayt cinsinden G/Ç band genişliği
--config=DOSYA rsyncd.conf yerine kullanılacak DOSYA
--dparam=YENİSİ, -M genel sunucu yapılandırması geçersiz olur
--no-detach üst süreçten ayrık çalışmaz
--port=PORT belirtilen PORTu dinler
--log-file=DOSYA "günlük dosyası" ayarları geçersiz olur
--log-file-format=BÇM "günlük biçemi" ayarları geçersiz olur
--sockopts=SÇNKLER özel TCP seçenekleri belirtilir
--verbose, -v ayrıntı düzeyini arttırır
--ipv4, -4 IPv4 tercih edilir
--ipv6, -6 IPv6 tercih edilir
--help, -h --daemon bu yardım iletisini gösterir ve çıkar
AÇIKLAMALARIYLA SEÇENEKLER
rsync hem kısa (tek tire artı harf) hem de
uzun seçenekleri (çift-tire artı sözcük)
kabul eder. Aynı amaca yönelik birden fazla seçenek
varsa aralarına virgül konarak listelenmiştir. Bir
seçenek girdi alıyorsa ve sadece uzun seçenekte
belirtilmişse, girdinin kısa seçenekte için de
kullanılması zorunludur. Bazı seçenekler ise
sadece uzun seçeneklerden oluşur, kısaları
yoktur. ’=’ işareti içeren seçeneklerde
’=’ isteğe bağlıdır;
’=’ yerine boşluk kullanılabilir. girdileri
kabuk yorumlamasından korumak için önceleyerek
belirtmek gerekebilir. Bir dosya yolundaki yaklaşık imi (~)
kabuk tarafından ev dizininiz olarak yorumlanır, bu nedenle
--option=~/foo kullanımında yaklaşık
iminin kabuk tarafından ev dizininiz olarak yorumlanabilmesi
için ’=’ işareti yerine boşluk
kullanılmalıdır.
- --help
- rsync tarafından kabul edilen seçenekleri
açıklayan kısa bir yardım iletisi basar ve
çıkar. Normalde --human-readable
seçeneğinin kısa kullanımı olan
--h seçeneğini başka seçenekler olmadan
--help yerine de kullanabilirsiniz.
- -V, --version
- rsync sürüm numarasını ve ek bilgiler
basar ve çıkar.
Çıktıda, lisans ve telif hakkı
bilgilerinden başka rysnc sitesine bir bağlantı,
öntanımlı sıkıştırma ve
sağlama toplamı algoritmalarının listesi ile
derlenmiş yeteneklerin listesi bulunur.
- -v, --verbose
- Bu seçenek aktarım sırasında verilen bilgi
miktarını arttırır. rsync
öntanımlı olarak sessiz
çalışır. Tek -v belirtildiğinde,
hangi dosyaların aktarıldığını
gösterip sonunda bir özet basar. İki -v
belirtildiğinde atlanan dosyaları gösterir ve sonunda
daha fazla bilgi verir. İkiden fazla -v
kullanımı sadece rsync hata ayıklaması
yapıyorsanız anlamlıdır.
Çalıştırma sonu özeti,
oturum boyunca uzak rsync’e (yerel kopyalamada
alıcı tarafa) gönderilen ve alınan bayt
sayısını ve saniyede aktarılan bayt
sayısını gösterir. İkinci
satır, rsync’in oturumda aktaracağı
dosyaların toplam bayt sayısı ile gönderilen
ve alınan baytların bunların toplamına
oranları (bunlar gerçekten daha iyi hissettiren, daha
büyüğün daha iyi olduğu
sayılardır) gösterilir. Bu değerler
ayrıca, --human-readable (veya --no-human-readable)
seçenekleri kullanılarak insan tarafından daha
fazla (veya daha az) okunabilir duruma da getirilebilir.
Günümüz rsync’inde,
-v seçeneği --info ve --debug
seçeneklerinin birlikte kullanımına
eğdeğer bir çıktı üretir.
Ayrıntı düzeyi arttıkça her bilginin
ayrıntı düzeyi aynı oranda
artmadığından -v seçeneği
yerine veya birlikte bu yeni seçeneklerin kullanımı
tercih edilebilir. Hem --info hem de --debug,
ayrıntıdaki her artış için tam olarak
hangi ayarlamaların
yapıldığını belirten bir
yardım istemine de sahiptir.
Bununla birlikte, artalan sürecinin "azami
ayrıntı" ayarlarının, artalan
süreci tarafında hangi seçenekleri ne kadar
yüksek bir ayrıntıyla
sınırlayabileceği de dikkate
alınmalıdır. Örneğin azamilik 2 ise,
-vv ile ayarlanandan daha yüksek bir değere
ayarlanan info ve debug seçeneklerinin ayrıntı
düzeyi, artalan süreci oturumunun -vv
düzeyine indirilir.
- --info=SEÇENEKLER
- --info çıktıda görmek istenilen
bilgiler üzerinde ince ayar yapılabilmesini sağlar.
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 KURALLARI
Süzme kuralları hangi dosyaların
aktarılacağını (içerileceğini -
include), hangi dosyaların atlanacağını
(dışlanacağını - exclude) seçmek
için esnek bir yöntem sağlar. Kurallar ya
doğrudan include/exclude seçenekleri ile ya da
daha hassas içerme/dışlama kalıpları ile
(bir dosyadan okuyarak) belirtilebilir.
rsync, aktarılacak dosya/dizinlerin listesindeki her
isim için ayrı ayrı içerme/dışlama
kurallarını tarar ve ilk eşleşen
kalıbı uygular: bir dışlama
kalıbıyla eşleşen dosya atlanır; bir
içerme kalıbı ile eşleşen dosya atlanmaz;
eşleşen bir kalıp yoksa dosya atlanmaz.
rsync, komut satırında belirtilen
include/exclude seçeneklerinden sıralı
bir süzme kuralları listesi oluşturur. Süzme
kurallarının sözdizimi şöyledir:
kural [kalıp_veya_dosyaismi]
kural,belirteç [kalıp_veya_dosyaismi]
kural ismi olarak, aşağıda açıklanan
kısa ya da uzun kural isimlerinden birini kullanabilirsiniz.
Eğer kısa isimli kural kullanırsanız,
kuralı belirteç’ten ayıran
’,’ isteğe bağlıdır. Ardından
gelen (varsa) kalıp veya dosyaismi bir boşluk veya
alt çizgiden sonra yazılmalıdır.
Kullanılabilecek kural önekleri:
uzun kısa açıklama
--------------------------
1. exclude - dışlama kalıbı belirtir
2. include + içerme kalıbı belirtir.
3. merge . ek kuralları okumak için birleştirilecek dosyayı belirtir.
4. dir-merge : bir dizin içi birleştirme dosyası belirtir.
5. hide H aktarımdan gizlenen dosyalar için kalıp belirtir.
6. show S aktarımdan gizlenmeyen dosyalar için kalıp belirtir.
7. protect P silinmekten korunan dosyalar için kalıp belirtir.
8. risk R silinmekten korunmayan dosyalar için kalıp belirtir.
9. clear ! geçerli içerme/dışlama listesini temizler (girdi almaz)
Kurallar bir dosyadan okunduğunda, "#" ile başlayan
açıklama satırları ile boş satırlar
yoksayılır.
--include ve --exclude komut satırı
seçenekleri yukarıdaki kural sözdizimini değil,
sadece kalıplarla ek olarak listeyi temizleyen ünlem
(!) imini (ve kalıplar bir dosyadan okunuyorsa boş ve
açıklama satırlarını) kabul eder. Bir
kalıp "- " (tire ve boşluk) veya "+
" (artı ve boşluk) ile başlamıyorsa,
kural (içerme seçeneği için) "+
" veya (dışlama seçeneği için)
"- " önekli bir dizge olarak yorumlanır.
Diğer yandan, bir --filter seçeneği,
kuralın başlangıcında daima kısa veya
uzun bir kalıp adı içermelidir.
Ayrıca, her bir --filter, --include ve
--exclude seçeneği tek bir kalıp/kural
alır. Çok sayıda kalıp/kural eklemek için
komut satırında bu seçenekler yinelenebilir veya
--filter, --include-from ve --exclude-from
seçeneklerinin birleştirme dosyası sözdizimi
kullanılabilir.
İçerme/Dışlama
Kalıpları
Yukarıda SÜZME KURALLARI
bölümünde bahsedildiği gibi dosyalar
"+", "-" vb. süzme kuralları
kullanılan kalıplar belirtilerek içerilebilir ya da
dışlanabilir. İçerme ve dışlama
kurallarının her birinde aktarılacak dosyaların
isimleriyle eşleşen kalıplar belirtilir. Bu
kalıplar çeşitli biçimler alabilir:
- ○
- Eğer kalıp bir / ile başlıyorsa, dosya
hiyerarşisi içinde belli bir noktaya demirlenir, aksi
takdirde dosya yolunun sonuna eşlenir. Bu düzenli ifadelerde
kalıbı ^ ile başlatmaya benzer.
Örneğin, "/foo" kalıbı ya
(genel bir kural için) "aktarımın
kökü"ndeki ya da (dir-merge kuralı
için) birleştirme dosyasının dizinindeki
"foo" isimli dosya ile eşleşirdi.
Nitelenmemiş bir "foo" ise, ağacın
herhangi bir yerindeki "foo" isimli bir dosya veya dizin
ismi ile eşleşirdi, çünkü algoritma
kökten alt dizinlere doğru ardışık
olarak uygulanır; yani, her yol elemanı sonunda bir dosya
ismi olacak şekilde ele alınır. Demirlenmemiş
"sub/foo" ise, hiyerarşinin herhangi bir
noktasındaki "sub" isimli bir dizin
içindeki bir "foo" ile eşleşirdi.
Aktarımın kökü ile eşleşen bir
kalıbın nasıl belirtileceği
İçerme/Dışlama
Kalıplarının Kök Dizinle
İlişklendirilmesi bölümünde
ayrıntılı olarak
açıklanmıştır.
- ○
- Eğer kalıp bir / ile bitiyorsa, sadece bir dizinle
eşleşir, bir dosya, sembolik bağ ya da aygıtla
değil.
- ○
- Eğer kalıp *?[ dosyaismi kalıp
karakterlerinden birini içeriyorsa, ifade sınarak ya
kabuğun dosyaismi eşleştirme kuralları ya da
basit bir dizge eşleştirmesi kullanılır.
- ○
- Tek yıldız ("*") herşeyle
eşleşecek ama eğik çizgilerde (/)
duracaktır.
- ○
- Çift yıldız ("**") eğik
çizgiler dahil herşeyle eşleşir.
- ○
- Soru imi ("?") eğik çizgi (/) hariç
her karakterle eşleşir.
- ○
- Köşeli ayraç ("[") [a-z] veya
[[:alpha:]] gibi bir karakter sınıfı
başlatır.
- ○
- Bir joker kalıbında ters eğik çizgi bir joker
karakteri öncelemekte kullanılabilir, ancak
öncelediği bir joker karakter değilse
öncelediği karakterin eşleşmesini
sağlar. Bir kalıp, hiçbir şey içermeyen
bir kalıba kıyasla joker karakter içerdiğinde,
fazladan bir ters eğik çizgi kaldırma düzeyi
var demektir. Örneğin, “foo\bar” dizgesinde
"\b"nin tek başına "b" haline gelmemesi
gerekiyorsa dizgeye ters eğik çizgiyle eşleşen
bir önceleme eklemek gerekiyor demektir, bu durumda dizge
“foo\\bar*" olarak belirtilmelidir.
- ○
- Eğer bir kalıp bir / (sonda değil) ya da bir
"**" içeriyorsa baştan sona tüm
dizinleri dahil tam dosya yolu ile eşleştirilir. Eğer
kalıp bir / ya da "**" içermiyorsa,
sadece tam yolun son bileşeni ile eşleştirilir
(algoritmanın altdizinlere inilerek
uygulandığını hatırlayın, yani
"tam yol" başlangıç dizininden
başlayarak son dizine kadar yolun herhangi bir
parçası ile eşleşebilir).
- ○
- Sondaki “bir_dizin/***” kalıbı [3
yıldıza dikkat!] hem dizinle
(“bir_dizin/" belirtilmiş gibi) hem de dizindeki
her şeyle ("bir_dizin/**" belirtilmiş gibi)
eşleşir. Bu davranış 2.6.7
sürümünde eklenmiştir.
- 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.
İçerme/Dışlama
Kalıplarının Kök Dizinle
İlişklendirilmesi
Evvelce de bahsedildiği gibi, genel
içerme/dışlama kalıpları
aktarımın kök dizini ile ilişkilendirilebilir
(birleştirme dosyasının dizini ile
ilişklendirilen dizin içi kalıplarının
tersine). Aktarımı, göndericiden alıcıya
bir isim alt ağacının gönderilmesi olarak
düşünürseniz, aktarımın kök
dizini hedef dizinde yinelenecek olan ağaç
başlangıcıdır. Bu kök, bir / ile
başlayan kalıplarla ilişkilendirilir.
Eşleşme aktarımın köküne
göre yapıldığından, kaynak yolun
sonundaki bölü çizgisini değiştirmek ya
da --relative seçeneğinin kullanımında
değişiklik yapmak eşleştirmede kullanılan
yolu etkiler. Aşağıda bu davranış
örneklenmiştir.
Biri "/home/ben/foo/bar", diğeri
"/home/sen/bar/baz" olan iki dosya olsun.
Aşağıda bu iki dosyanın çeşitli
komut kullanımlarındaki farklı
aktarımları gösterilmiştir.
Örnek komut: rsync -a /home/ben /home/sen /hedef
+/- kalıbı: /ben/foo/bar
+/- kalıbı: /sen/bar/baz
Hedef dosya: /hedef/ben/foo/bar
Hedef dosya: /hedef/sen/bar/baz
Örnek komut: rsync -a /home/ben/ /home/sen/ /hedef
+/- kalıbı: /foo/bar (dikkat: "ben" yok)
+/- kalıbı: /bar/baz (dikkat: "sen" yok)
Hedef dosya: /hedef/foo/bar
Hedef dosya: /hedef/bar/baz
Örnek komut: rsync -a --relative /home/ben/ /home/sen /hedef
+/- kalıbı: /home/ben/foo/bar (dikkat: tam dosyayolu)
+/- kalıbı: /home/sen/bar/baz (keza bu da)
Hedef dosya: /hedef/home/ben/foo/bar
Hedef dosya: /hedef/home/sen/bar/baz
Örnek komut: cd /home; rsync -a --relative ben/foo sen/ /hedef
+/- kalıbı: /ben/foo/bar (belirtilen yolla başlar)
+/- kalıbı: /sen/bar/baz (keza bu da)
Hedef dosya: /hedef/ben/foo/bar
Hedef dosya: /hedef/sen/bar/baz
Hangi ismi süzdüğünüzü görmenin
en kolay yolu, ismin önüne bir / koymak ve
--verbose kullanarak çıktıya bakmaktır
(dosyalar kopyalanmadan önce komutu kuru kuruya
çalıştırıp neler
olacağını görmek için, --dry-run
seçeneği kullanılabilir).
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.
ÇIKIŞ DEĞERLERİ
0 - Başarılı
1 - Sözdizimi ya da kullanım hatası
2 - Protokol uyumsuzluğu
3 - girdi/çıktı dosyalarını,
dizinlerini seçerken oluşan hatalar
4 - İstenen eylem desteklenmiyor, iki olasılık
var:
- 64 bitlik dosyaları desteklemeyen bir platformda bu tür
dosyalarla çalışılmak isteniyordur.
- İstemci tarafından desteklendiği halde sunucu
tarafından desteklenmeyen bir seçenek
kullanılmıştır.
5 - Sunucu/istemci protokolü başlatılırken
hata.
6 - Artalan süreci günlüğe kayıt
ekleyemiyor
10 - Soket G/Ç hatası
11 - Dosya G/Ç hatası
12 - rsync protokolü veri akımında hata
13 - Uygulama tanılarında hata
14 - Süreçlerarası iletişim (IPC) kodunda
hata
20 - Bir SIGUSR1 veya SIGINT alındı
21 - waitpid() bazı hatalar döndürdü
22 - nüve bellek tamponları ayrılırken hata
23 - Hatadan dolayı kısmî aktarım
24 - Gözden kaçan kaynak dosyalarından dolayı
kısmî aktarım
25 - --max-delete sebebiyle silme işlemi durdu
30 - Veri aktarımında zamanaşımı
35 - Artalan süreci bağlantısı için
sürenin dolması bekleniyor
- 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
İLGİLİ DOSYALAR
/etc/rsyncd.conf veya rsyncd.conf
- 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
ÇEVİREN
© 2005, 2022 Nilgün Belma Bugüner
Bu çeviri özgür yazılımdır:
Yasaların izin verdiği ölçüde
HİÇBİR GARANTİ YOKTUR.
Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri
yapmak için https://github.com/TLBP/manpages-tr/issues adresinde
"New Issue" düğmesine tıklayıp yeni
bir konu açınız ve isteğinizi belirtiniz.