İSİM¶
rsync - rcp yerine daha hızlı ve esnek bir araç
KULLANIM¶
rsync [seçenek]... kaynak [kaynak]... [kullanıcı@]konak:hedef
rsync [seçenek]... [kullanıcı@]konak:kaynak hedef
rsync [seçenek]... kaynak [kaynak]... hedef
rsync [seçenek]... [kullanıcı@]konak::kaynak [hedef]
rsync [seçenek]... kaynak [kaynak]... [kullanıcı@]konak::hedef
rsync [seçenek]... rsync://[kullanıcı@]konak[:port]/kaynak [hedef]
AÇIKLAMA¶
rsync çoğunlukla
rcp gibi davranan bir uygulamadır,
ancak daha fazla seçenek içerir ve özellikle hedefteki
dosyanın mevcut olması halinde dosya aktarımını
çok daha hızlı gerçekleştiren
rsync uzak
güncelleme protokolünü kullanır.
rsync uzak güncelleme protokolü
rsync'in ağ
bağlantısı üzerinden sadece iki dosya grubu
arasındaki farkları aktarmasını mümkün
kılar. Bunu bu pakete eşlik eden teknik raporda açıklanan
verimli bir toplama sağlaması arama algoritmasını
kullanarak yapar.
rsync'e özgü bazı ek özellikler:
- o
- bağların, aygıtların, sahip, grup ve
izinlerin kopyalanmasını destekler
- o
- GNU tar'a benzer exclude ve exclude-from
seçenekleri
- o
- CVS'nin yok sayacağı dosyaların
yoksayılmasını sağlayan CVS dışlama
(exclude) kipi
- o
- rsh, ssh gibi uzak şeffaf kabukları
kullanabilir
- o
- root kullanıcısının yetkilerine
ihtiyaç duymaz
- o
- görünmeyen maliyetleri asgari düzeyde tutmak
için dosya aktarımlarında borulama yapar
- o
- hem anonim hem de kimlik doğrulamalı rsync
sunucu desteği (yansılama için ideal)
GENEL¶
rsync sekiz farklı yöntemle kullanılabilir:
- o
- yerel dosyaları kopyalamak için. Bu
çağrıda ne kaynak ne de hedef dosya yolu bir : ayracı
içermez.
- o
- yerel makineden uzaktaki bir makineye bir uzak kabuk
uygulaması ( ssh veya rsh gibi) kullanarak
dosyaları kopyalamak için. Bu çağrıda sadece
hedef dosya yolu tek bir : ayracı içerir.
- o
- uzaktaki bir makineden yerel makineye bir uzak kabuk
uygulaması ( ssh veya rsh gibi) kullanarak
dosyaları kopyalamak için. Bu çağrıda sadece
kaynak dosya yolu bir : ayracı içerir.
- o
- uzaktaki bir rsync sunucusundan yerel makineye
kopyalama yapmak için. Bu çağrıda sadece kaynak dosya
yolu bir :: ayracı veya bir rsync:// URL'si içerir.
- o
- yerel makineden uzaktaki bir rsync sunucusuna
kopyalama yapmak için. Bu çağrıda sadece hedef dosya
yolu bir :: ayracı veya bir rsync:// URL'si içerir.
- o
- uzaktaki makinede bulunan rsync sunucusunu ve bir
uzak kabuk uygulamasını kullanarak, uzaktaki makineden yerel
makineye kopyalama yapmak için. Bu çağrıda kaynak
dosya yolunun bir :: ayracı içermesi yanında
--rsh=komut (ya da -e komut)
seçeneği de kullanılır.
- o
- uzaktaki makinede bulunan rsync sunucusunu ve bir
uzak kabuk uygulamasını kullanarak, uzaktaki makineye yerel
makineden kopyalama yapmak için. Bu çağrıda hedef
dosya yolunun bir :: ayracı içermesi yanında
--rsh=komut (ya da -e komut)
seçeneği de kullanılır.
- o
- uzaktaki makinede bulunan dosyaların listesini almak
için. Bu işlem uzaktaki makineden kopyalama işlemindeki
gibi ancak yerel hedefi belirtmeden yapılır.
Tüm durumlarda (burada listelenenler dışında kalanlar dahil)
kaynak ve hedef belirtimlerinden biri daima yerel olmalıdır (yani
rsync ile iki uzak makine arasında işlem
yapamazsınız).
AYARLAR¶
Kurulum işlemleri için README dosyasına bakınız.
Kurduktan sonra, bir uzak kabuk üzerinden eriştiğiniz (veya
rsync artalan kipi protokolü kullanarak eriştiğiniz) her
makinede
rsync kullanabilirsiniz. Uzak dosya aktarımları
için, günümüzde
rsync iletişimde
ssh
kullanmasına rağmen öntanımlı olarak
kullanacağı uzak kabuk
rsh veya
remsh gibi bir kabuk
olarak da ayarlanabilir.
Bundan başka
-e komut satırı seçeneğinin
argümanı olarak veya RSYNC_RSH ortam değişkenine atayarak
da istediğiniz bir uzak kabuk uygulamasını belirtebilirsiniz.
Yüksek derecede güvenlik istendiğinde ortak kanaat
ssh
kullanmaktır.
Yalnız,
rsync'in hem yerel hem de uzak makine üzerinde kurulu
olması gerektiğini unutmayın.
KULLANIMI¶
rsync'i
rcp'yi nasıl kullanıyorsanız öyle
kullanabilirsiniz. Biri uzak makine olmak üzere bir kaynak ve bir hedef
belirtmelisiniz.
Şüphesiz sözdizimini açıklamanın en kolay yolu bir
örnek vermektir:
rsync -t *.c foo:src/
Bu komut çalışma dizinindeki *.c kalıbı ile
eşleşen tüm dosyaları foo makinesinin src dizinine
kopyalayacaktır. Bu dosyalardan uzak makinede mevcut olanları
için
rsync uzak güncelleme protokolü kullanılarak
sadece farklar gönderilir. Bu konuda daha ayrıntılı bilgi
için teknik rapora bakınız.
rsync -avz foo:src/bar /data/tmp
Bu komut, foo makinesindeki src/bar dizinindeki tüm dosyaları varsa
altdizinlerdekileri de içererek yerel makinenin /data/tmp 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şturmaktan kaçınılması
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,
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.
rsync somehost.mydomain.com::
Bu komut, somehost.mydomain.com makinesindeki kullanılabilecek tüm
anonim
rsync modüllerini listeleyecektir. (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ını tırnak içine alarak belirtebilirsiniz. Bazı
örnekler:
rsync makine::'modülismi/dizin1/dosya1 modülismi/dizin2/dosya2' /hedef
Bu komut, bir
rsync sunucusundan /hedef dizinine dosya1 ve dosya2
dosyalarını kopyalayacaktır. Her argüman aynı
"modülismi/" önekini içermeli ve arada sadece bir
boşluk karakteri bulunmalıdır. Diğer tüm
boşlukların dosya isimlerine ekleneceği varsayılır.
rsync -av makine:'dizin1/dosya1 dizin2/dosya2' /hedef
Bu komut dosya1 ve dosya2 dosyalarını /hedef dizinine
kopyalayacaktır. Sözcük ayırma işlemi uzak kabuk
tarafından yapılır, yani eğer sözcük ayırma
gerçekleşmemişse, bunun sebebi uzak kabuğun bu işlem
için yapılandırılmamış olmasıdır
(nedendir bilinmez, çok yaygındır). İsmi boşluk
içeren bir dosyayı kopyalamak isterseniz, ya bunu uzak kabuğun
anlayabileceği bir yöntemle yapmalı ya da boşlukların
yerine dosya ismi kalıpları kullanmalısınız. İki
örnek:
rsync -av makine:'isminde\ boşluk\ olan\ dosya' /hedef
rsync -av makine:isminde?boşluk?olan?dosya /hedef
İkinci örnekte, eşleşmeyen kalıpları
kabuğunuzun anlayacağı varsayılmıştır. Bu
takdirde bunları tersbölü öncelemeli hale getirecektir.
BİR RSYNC SUNUCUSUNA BAĞLANMAK¶
Dosya aktarımı için
rsync'i bir uzak kabuk
olmaksızın da kullanmak mümkündür. Bu durumda, TCP
873. port üzerinde çalışan bir uzak
rsync
sunucusuna bağlanacaksınız.
RSYNC_PROXY ortam değişkenine bir makine: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.
rsync'i bu yöntemle kullanmanın bir uzak kabuk üzerinden
kullanmaya farkları şunlardır:
- o
- ya makine ismini dosya yolundan ayırmak için tek
bir : yerine :: kullanırsınız ya da bir rsync:// URL
biçimini kullanırsınız.
- o
- uzak sunucu bağlandığınızda
günün iletisini basabilir.
- o
- uzak sunucu için bir dosya yolu belirtmezseniz, sunucu
üzerinde erişilebilir olan dosya yollarının listesini
alırsınız.
- o
- bir yerel hedef belirtmezseniz, uzak sunucu
istediğiniz dosyaların bir listesini yollar.
Uzak 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 betik 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.
BİR RSYNC SUNUCUSUNA BİR UZAK KABUKTAN
BAĞLANMAK¶
Bağlantı için
ssh veya
rsh kullanarak ve dosya
aktarımını
rsync sunucusunun yeteneklerinden
yararlanarak yapmanın mümkün olması bazan
kullanışlı olabilmektedir. Özellikle, bir uzak makineye
ssh üzerinden bağlanmak istediğinizde (şifreleme
için ya da güvenlik duvarından geçebilmek için) ama
bunun yanında
rsync sunucusunun yeteneklerinden de yararlanmak
istediğiniz durumlarda bu yararlıdır (
BİR UZAK
KABUKTAN BİR RSYNC SUNUCUSU ÇALIŞTIRMAK
bölümüne bakınız).
Kullanıcı açısından,
rsync'in bu yöntemle
kullanılması, komut satırından uzak kabuk
uygulamasının
--rsh=komut ile belirtilmesi
dışında bir
rsync sunucusuna bağlanmaktan
farksızdır. (Burada, RSYNC_RSH ortam değişkenine bir atama
yaparak uzak kabuk uygulaması belirtmek, beklenen işlevselliği
sağlamayacaktır.)
Uzak kabuk kullanıcısını,
rsync sunucu
kullanıcısından ayırmak için uzak kabuk komutunda '
-l kullanıcı' seçeneğini kullanabilirsiniz:
rsync -av --rsh="ssh -l ssh-kullanıcısı" \
rsync-kullanıcısı@makine::modül[/yol] yerel-yol
"ssh-kullanıcısı" ssh seviyesinde
kullanılmalıdır; "rsync-kullanıcısı"
ise uzak makinenin rsyncd.conf dosyasından sınanacaktır.
BİR RSYNC SUNUCUSU ÇALIŞTIRMAK¶
Bir
rsync sunucusu bir yapılandırma dosyası
kullanılarak yapılandırılır. Daha
ayrıntılı bilgi için
rsyncd.conf(5) kılavuz
sayfasına bakınız.
rsync'i bir uzak kabuk
uygulaması üzerinden ve root olarak
çalıştırmadıkça, öntanımlı olarak
/etc/rsyncd.conf dosyası kullanılır. Aksi takdirde, uzak
makinedeki çalışma dizininde (genellikle $HOME) bulunan
rsyncd.conf öntanımlıdır.
BİR UZAK KABUKTAN BİR RSYNC SUNUCUSU
ÇALIŞTIRMAK¶
rsync sunucusu yapılandırma dosyası ile ilgili tüm
bilgiyi
rsyncd.conf(5) kılavuz sayfasında bulabilirsiniz.
Uzak kullanıcı root (
chroot, setuid/setgid, v.s.)
olmadıkça bazı yapılandırma seçenekleri
kullanılamaz olacaktır. Eğer
rsync sunucusunu bir uzak
kabuk uygulaması üzerinden kullanıyorsanız, services
dosyasında
rsync sunucu portunun bulunması ya da
inetd'nin yapılandırılması gerekli değildir.
Bir tek kullanımlık ssh anahtarı dışında bir
rsync sunucusu çalıştırmak için
rsyncd.conf(5) kılavuz sayfasındaki bu bölüme
bakınız.
ÖRNEKLER¶
Burada
rsync kullanımıyla ilgili bazı örnekler
bulacaksınız.
Büyük MS Word dosyaları ve eposta dizinlerinden oluşan
eşimin ev dizinini yedeklemek için şöyle bir
cron
işi çalıştırıyorum:
rsync -Cavz . arvidsjaur:backup
Her gece bir PPP bağlantısı üzerinden bu dizini ayrıca,
kendi makinemin arvidsjaur dizinine kopyalıyorum.
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'dan
çalıştırılıyor.
ÖZETLE SEÇENEKLER¶
Burada
rsync'de kullanılabilen seçeneklerin bir özetine
yer verilmiştir (
rsync --help komutu bu listeyi
çıktılar). Bu seçenekler bir sonraki bölümde
ayrıntılı olarak açıklanmıştır.
-v, --verbose çıktı daha ayrıntılı olur
-q, --quiet hatalar dışında bilgi verilmez
-c, --checksum sadece toplam sağlamaya bakılır, zaman ve
boyut değişikliklerine bakılmaz
-a, --archive arşiv kipi; -rlptgoD (-H'sız) ile aynı
-r, --recursive dizinlerin alt dizinlerine inilir
-R, --relative göreli dosya yolları kullanılır
--no-relative --relative kapatılır
--no-implied-dirs -R uygulanmış dizinler gönderilmez
-b, --backup 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)
-u, --update hedeftekiler daha yeniyse bu dosyalar
atlanır
--inplace hedef dosyaları yerinde günceller
-d, --dirs altdizinlere inmeden dizinleri aktarır
-l, --links sembolik bağları sembolik bağ olarak
kopyalar
-L, --copy-links 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
-H, --hard-links sabit bağlar korunur
-K, --keep-dirlinks sembolik bağlı dizinler alıcıda dizin
yapılır
-p, --perms izinler korunur
-o, --owner sahip korunur (sadece root)
-g, --group grup korunur
-D, --devices aygıtlar korunur (sadece root)
-t, --times zamanlar korunur
-O, --omit-dir-times zamanlar korunurken dizinler bunun
dışında tutulur
-S, --sparse seyrek dosyaları en verimli şekilde
elde eder
-n, --dry-run işlemi yapıyormuş gibi gösterir ama yapmaz
-W, --whole-file dosyaları tamamen kopyalar
(rsync algoritması ile farkları değil)
--no-whole-file daima arttırımlı rsync algoritması
kullanılır
-x, --one-file-system dosya sistemi sınırlarının dışına çıkılmaz
-B, --block-size=BOYUT sabit bir blok boyunda sağlama toplamına
zorlar
-e, --rsh=KOMUT 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-sent-files alınan dosyalar/sembolik bağlar
göndericide silinir
--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-after alıcıda aktarım sonrası silme yapılır
--delete-excluded alıcıda ayrıca dışlanmış dosyalar da
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 daha büyük dosyalar aktarılmaz
--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
--numeric-ids kullanıcı/grup kimliklerini isimlerle
eşleştirmez
--timeout=SÜRE G/Ç zamanaşımını SÜRE saniyeye ayarlar
-I, --ignore-times 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
-T, --temp-dir=DİZİN geçici dosyaları DİZİNde oluşturur
-y, --fuzzy hedefte dosya yoksa benzerini bulur
--compare-dest=DİZİN alınan dosyaları ayrıca DİZİNdekilerle
karşılaştırır
--link-dest=DİZİN değişmediyse DİZİNdeki dosyalara sabit bağ
-z, --compress aktarım sırasında dosya verisi sıkıştırılır
-C, --cvs-exclude dosyalar CVS'nin yaptığı gibi yoksayılır
-f, --filter=KURAL 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
-0, --from0 *from seçeneklerindeki dosya listeleri boş
karakter sonlandırmalı kabul edilir
--version sürüm numarasını basar
--port=PORT başka bir port belirtmek için
--blocking-io uzak kabukta engellemeli G/Ç kullanılır
--no-blocking-io engellemeli G/Ç öntanımlı olduğunda bunu
iptal eder
--stats dosya aktarımı sırasında durum bilgileri
verir
--progress aktarım sırasında gelişimi gösterir
-P --partial --progress ile aynı
-i, --itemize-changes tüm güncellemeler için bir değişiklik
özeti çıktılar
--log-format=BİÇİM aktarımları belirtilen biçimde günlükler
--password-file=DOSYA parola DOSYAdan okunur
--list-only dosyaları kopyalamaz, sadece listeler
--bwlimit=KBPS saniyede kBayt cinsinden G/Ç band genişliği
--write-batch=DOSYA bir betikli güncellemeyi DOSYAya yazar
--read-batch=DOSYA bir betikli güncellemeyi DOSYAdan okur
--checksum-seed=SAYI blok/dosya sağlama toplamı tohumunu ayarlar
-4, --ipv4 IPv4 tercih edilir
-6, --ipv6 IPv6 tercih edilir
-h, --help bu yardım iletisini gösterir
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
--no-detach üst süreçten ayrık çalışmaz
--port=PORT belirtilen PORTu dinler
-v, --verbose ayrıntı düzeyini arttırır
-4, --ipv4 IPv4 tercih edilir
-6, --ipv6 IPv6 tercih edilir
-h, --help bu yardım iletisini gösterir
AÇIKLAMALARIYLA SEÇENEKLER¶
rsync GNU uzun seçenekler paketini kullanır. Çoğu
komut satırı seçeneği hem kısa hem de uzun
seçenek içerir. Bazı seçenekler ise sadece uzun
seçeneklerden oluşur. `=' işareti içeren
seçeneklerdeki parametreler isteğe bağlıdır; `='
yerine boşluk kullanılabilir.
- -h, --help
- rsync tarafından kabul edilen seçenekleri
açıklayan kısa bir yardım iletisi basar.
- --version
- rsync sürüm numarasını basar ve
çıkar.
- -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.
Aktarılan dosya isimlerinin çıktılanmasında
--log-format seçeneğinin öntanımlı olarak
"%n%L" ile kullanıldığı varsayılarak
sadece dosyaların isimleri ve varsa sembolik bağlar hedefleri
ile belirtilir. Tek -v seviyesinden bir ayrıntıda bir
dosyanın öznitelikleri değişmişse bu
gösterilmez. Değiştirilen özniteliklerin
öğelere göre listelenmesi isterseniz (
--itemize-changes seçeneğiyle ya da --log-format
seçeneğine "%i" ekleyerek), istemcideki
çıktıda değiştirilen tüm öğelerin
ayrıntı düzeyi arttırılır. Daha fazla bilgi
için --log-format seçeneğinin
açıklamasına bakınız.
- -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.
- -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ı kapatır.
- --size-only
- Normalde rsync hedefte de aynı boyutta ve
aynı değişiklik zamanına sahip dosyalar varsa
bunları atlayacaktır. Bu seçenekle, dosyaların
zamanlarına bakılmaksızın hedefte de aynı boyutta
iseler aktarılmazlar. Zaman değerlerinin doğru
tutulmadığı başka bir yansılama sistemini
kullandıktan sonra rsync'i kullanmaya
başlayacaksanız bu seçenek yararlıdır.
- --modify-window=sayı
- İki zaman değerini
karşılaştırırken, fark sayı'ya
eşitse rsync bu değerleri eşit kabul eder. Bu fark
normalde 0 dır (tam eşitlik), 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).
- -c, --checksum
- Bu seçenek göndericiyi aktarımdan önce
tüm dosyaları 128 bitlik MD4 sağlama toplamını
kullanarak sınamaya zorlar. Sağlama toplamı doğrudan
alıcıda sınanır ve mevcut olanlar arasında
aynı sağlama toplamlı, aynı boyutlu ve aynı
isimli olanlar aktarılmaz. Bu seçenek aktarım işlemini
oldukça yavaşlatabilir.
- -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 belirtilmişse -r
uygulanmayacaktır.
Çok sayıda bağlı dosyanın varlığı
pahalıya mal olacağından -a seçeneği sabit
bağları korumaz. Bunu istiyorsanız -H
seçeneğini ayrıca belirtmelisiniz.
- -r, --recursive
- Bu seçenek alt dizinlerinde ardışık
olarak kopyalanmasını sağlar. Ayrıca --dirs
(-d) seçeneğine de bakınız.
- -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 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). Karşıya yollanacak
yol uzunluğunu sınırlamak için şöyle
yapabilirsiniz:
cd /foo
rsync -R bar/foo.c remote:/tmp/
-
Bu komut uzak makinede /tmp/bar/foo.c dosyasını oluşturur.
- --no-relative
- --relative seçeneğini iptal eder. Bu
özellikle --files-from seçeneğinin gerektiği
durumlarda --relative seçeneği uygulanmaksızın
dosyaları işleme sokmakta yararlıdır.
- --no-implied-dirs
- --relative seçeneği ile birlikte
kullanıldığında her dosya yolundaki dolaylı
dizinler, aktarımın parçası olarak yinelenmez. Bu
dosya aktarımını daha elverişli yaptığı
gibi ayrıca dosya yolunun dolaylı parçalarında iki
tarafta eşleşmeyen sembolik bağların
varlığını mümkün kılar.
Örneğin, "/path/foo/file" dosyasını
-R ile aktarırsanız, hedefte "/path" ve
"/path/foo" ile kaynağın dizin ve sembolik
bağları tamamen eşleştirilecektir.
--no-implied-dirs seçeneğinin kullanımı bu
dolaylı dizinlerin her ikisinin de atlanmasına yol açar.
Yani, eğer "/path" bir makine üzerinde gerçek bir
dizin, ancak diğer makinede bir sembolik bağ ise, rsync
bunu değiştirmeye çalışmayacaktır.
- -b, --backup
- Bu seçenekle, evvelce mevcut hedef dosyaların her
aktarımında ya da silinmesinde bu dosyaların isimleri
değiştirilir. Yedek dosyaların nereye gideceğini ve
nasıl bir sonek alacaklarını --backup-dir ve
--suffix seçenekleri ile belirtebilirsiniz. Eğer
--backup-dir seçeneğini belirtmezseniz,
--omit-dir-times seçeneği etkin
kılınacaktır.
- --backup-dir=dizin
- --backup seçeneği ile birlikte
kullanıldığında bu seçenekle yedek
dosyaların hangi dizinde saklanacağı belirtilebilir. Bu,
arttırımlı yedekleme yaparken çok
yararlıdır. Buna ek olarak --suffix seçeneğini
kullanarak bir yedek soneki de belirtebilirsiniz (aksi takdirde dosyalar
belirtilen dizine kendi isimleri ile yedeklenir).
- --suffix=sonek
- Bu seçenek --backup (-b) ile
kullanıldığında, belirtilen sonek
öntanımlı yedekleme sonekinin yerine kullanılır.
--backup-dir belirtilmemişse, öntanımlı sonek
~ işaretidir, aksi takdirde boş bir dizgedir.
- -u, --update
- Bu seçenek, hedefte mevcut olan bir dosyanın
değişiklik zamanının kaynak dosyanınkinden daha
yeni olduğu durumda atlanmasını sağlar. (Eğer
hedef dosyanın değişiklik zamanı
kaynağınkiyle aynıysa, ama boyutları farklıysa
güncelleme yapılacaktır.)
--update seçeneğinin şu anki gerçekleniminde
gönderici ve alıcı arasında dosya biçimlerinde
bir fark varsa, bu, güncelleme için tarihlerden daha önemli
olarak ele alınır. Başka bir deyişle, hedef bir
dosyaya sahipken, kaynak bir dizin veya bir sembolik bağa sahipse,
aktarım dosyalarını zaman değerlerine
bakılmaksızın yapılır. Bu davranış
ileride değişebilir (bu konuda bir fikriniz varsa, eposta
listesinde bunu açıklamaktan çekinmeyin).
- --inplace
- Bu seçenek rsync'in dosyanın yeni bir
kopyasının oluşturulmamasına ve yerine
taşınmamasına sebep olur. Bunun yerine rsync mevcut
dosyanın üzerine yazacaktır,yani rsync
algoritması ağ yükünü tamamen azaltmayı
başaramaz (henüz veriyi uyumlu sıralamayı
denemediğinden). Buna bir istisna, rsync yedek dosyaları
aktarımda temel dosya olarak kullanma yeterliğinde
olduğundan, seçeneğin --backup ile birlikte
kullanılmasıdır.
Bu seçenek blok temelli değişiklikler olan ya da sonuna
ekleme yapılan çok büyük dosyalarla, disk ve ağ
bakımından sınırlı sistemlerde
yararlıdır.
Bu seçenek --partial (kesilmeye uğramış bir
aktarımda dosya silinmez) seçeneğini uygular, fakat
--partial-dir ve --delay-updates seçenekleriyle
çelişir. rsync 2.6.4 öncesinde --inplace
ayrıca --compare-dest ve --link-dest
seçenekleriyle de çelişiyordu.
- Uyarı:
- Dosya verisi aktarım sırasında kararsız
bir durumda olacaktır (ve büyük ihtimalle aktarım
kesintiye uğradıktan sonra da), dolayısıyla,
kullanılmakta olan dosyaları bu seçeneği kullanarak
güncellememelisiniz. Ayrıca, alıcı
kullanıcının yazma izni olmayan dosyaların
rsync tarafından yerinde güncellenemeyeceğini de
unutmayın.
-
- -d, --dirs
- Gönderen tarafın saptanan her dizini
içereceğini söyler. --recursive
seçeneğinin tersine, bir dizinin içeriği, dizin komut
satırında " ." ya da bir bölü
çüzgisi ile biten bir isim ("foo/" gibi) ile
belrtilmedikçe kopyalanmaz. Bu seçenek ya da --recursive
seçeneği olmaksızın, rsync
saptadığı tüm dizinleri atlayacaktır (ve herbiri
için bir ileti çıktılayacaktır).
- -l, --links
- Saptanan her sembolik bağ hedefte oluşturulur.
- -L, --copy-links
- Sembolik bağ saptandığında sembolik
bağ değil, hedefindeki dosya kopyalanır. rsync'in
eski sürümlerinde, bu seçenek ayrıca alıcı
tarafa, dizin sembolik bağı gibi sembolik bağları
izlemesini söylemek gibi bir yan etkiye sahipti.
Günümüzde ise, rsync, böyle bir durumda, bu ek
davranışı sağlamak için sizin
--keep-dirlinks ( -K) seçeneğini belirtmenizi
gerektirir. Buna tek istisna, -K seçeneğini anlayacak
çok eski bir rsync ile dosyaların gönderilmesidir --
bu durumda -L seçeneği daha eski bir rsync ile
hala -K seçeneğinin yan etkisine sahip olacaktır.
- --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 olurlar.
- safe-links
- Bu seçenek rsync'e, kopyalanan ağacın
dışındaki bir hedefi gösteren sembolik
bağları yoksaymasını söyler. Bu
seçeneğin --relative seçeneğiyle birlikte
kullanılması beklenmedik sonuçlara yol açabilir.
- -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 sabit bağlar
sıradan dosyalar olarak ele alınırlar.
rsync'in, eğer bağın her iki parçası da
dosya listesi ile gönderilmişse, sabit bağları
saptayabileceğini unutmayın.
Bu seçenek işlemi yavaşlatabilir, gerçekten bu
işlevselliğe ihtiyacınız varsa kullanın.
- -K, --keep-dirlinks
- Alıcı tarafta, bir sembolik bağ bir dizini
gösteriyorsa, bunun gönderici tarafta bir dizinle
eşleştiği varsayılacaktır.
- -W, --whole-file
- Bu seçenekle arttırımlı rsync
algortiması kullanılmaz ve bunun yerine dosya olduğu gibi
gönderilir. Eğer kaynak ile hedef arasındaki band
genişliği diskin band genişliğinden (özellikle
disk, ağ dosya sisteminin bir parçası ise) daha
yüksekse bu seçenek daha hızlı olabilir. Kaynak ve
hedef, yerel dosya yolları olarak belirtilmişse bu seçenek
öntanımlıdır.
- --no-whole-file
- --whole-file öntanımlı olduğunda
bu seçenek onu kapatır.
- -p, --perms
- Bu seçenek rsync'e, izinleri hedefte aynı
kaynak sistemdeki gibi belirlemesini söyler.
Bu seçenek olmaksızın, her yeni dosya izinlerini kaynak
dosyanın izinlerine ve alıcı taraftaki umask'a
göre belirlenir, diğer tüm dosyalar (güncellenenler
dahil) kendi mevcut izinleriyle kalır (bu, cp gibi diğer
dosya kopyalama araçlarında da böyledir).
- -o, --owner
- Bu seçenek rsync'e, hedef dosyanın
sahibini aynı kaynak dosyadaki gibi belirlemesini söyler.
Çoğu sistemde sadece ayrıcalıklı
kullanıcı dosya aidiyetini belirleyebilir.
Öntanımlı olarak, koruma isim tarafında
yapılır, fakat bazı durumlarda son çare olarak
kullanıcı kimliği kullanılır. Bu konu
--numeric-ids seçeneğinin açıklamasında
daha ayrıntılı incelenmiştir.
- -g, --group
- Bu seçenek rsync'e, hedef dosyanın grubunu
aynı kaynak dosyadaki gibi belirlemesini söyler. Alıcı
tarafta rsync'i ayrıcalıklı kullanıcı
çalıştırmıyorsa, sadece alıcının
üyesi olduğu gruplar için bu yapılabilir.
Öntanımlı olarak işlem grup ismine göre
yapılır, ancak bazı durumlarda son çare olarak grup
kimliği de kullanıabilir. Bu konu --numeric-ids
seçeneğinin açıklamasında daha
ayrıntılı incelenmiştir.
- -D, --devices
- Aktarılan karakter ve blok aygıtları hedefte
yeniden oluşturulur. Bu seçeneği sadece
ayrıcalıklı kullanıcı kullanabilir.
- -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, eniyileme yüzünden
değiştirilmemiş dosyaların dışlanması
verimli olamaz; başka bir deyişle, -t veya -a
seçeneğinin yokluğu sonraki aktarımda -I
kullanılmış gibi tüm dosyaların
güncellenmesine yol açar ( rsync algoritması
güncellemeyi oldukça verimli yapacağından, eğer
dosyalar gereçekten değişmemişse, -t
kullanmanız çok daha iyi olacaktır).
- -O, --omit-dir-times
- Eğer rsnc değişiklik
zamanlarını güncelliyorsa ( --times ile), bu
seçenek belirtildiğinde dizinleri bunun dışında
tutar. Eğer alıcı tarafta NFS dizinleri
paylaştırıyorsa, -O seçeneğini kullanmak
daha iyidir. Bu seçenek --backup seçeneği
--backup-dir olmaksızın kullanılmış gibi
sonuç verir.
- -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.
- -S, --sparse
- Bu seçenekle rsync, seyrek dosyaların
hedefte daha az yer kaplayacak şekilde elde edilmesini sağlamaya
çalışır.
- Bilgi:
- Bu seçeneği hedefteki dosya sistemi Solaris
"tmpfs" ise kullanmayın. Boş bölgelerin
düzgünce atlanmasını sağlayamaz ve dosya sonunda
bozulmalar oluşur.
-
- -x, --one-file-system
- Bu seçenek rsync'e, aktarım
sırasında dosya sistemi sınırlarının
dışına çıkmamasını söyler. Bu
seçenek, tek bir dosya sisteminin içeriğini aktarmak
için yararlıdır.
- --existing
- Bu seçenek rsync'e, hedefte yeni dosya
oluşturulmasını gerektirecek aktarımları
yapmamasını sadece güncelleme yapmasını
söyler.
- --ignore-existing
- Bu seçenek rsync'e, hedefte mevcut olan
dosyaları güncellememesini söyler.
- --remove-sent-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.
- --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).
Alt dizinlere inilmiyorsa bu seçenek etkisizdir.
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 edebilirsiniz.
--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, rsync öntanımlı olarak
--delete-before algoritmasını seçer. İleri
sürümlerde bu seçim --delete-during
algoritmasıyla değiştirilebilir. Ayrıca,
--delete-after seçeneğine de bakınız.
- --delete-before
- Alıcı taraftaki dosya silme işlemlerinin
aktarımın başlangıcında
yapılmasını sağlar. Bu seçenek --delete
veya --delete-excluded seçeneği ile birlikte silme
zamanını belirten --delete-* seçeneklerinden biri
belirtilmemişse öntanımlıdır. Dosya silinmesi ile
ilgili daha ayrıntılı bilgi için --delete
seçeneğinin açıklamasına bakınız.
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.
- --delete-during, --del
- Alıcı taraftaki dosya silme işlemlerinin
aktarımı sırasında yapılmasını
sağlar. Bu yöntem silme işleminin aktarımdan önce
ve sonra yapıldığı algoritmalardan daha
hızlıdır. Fakat ilk olarak rsync'in 2.6.4
sürümüyle kullanılabilir olmuştur. Dosya
silinmesi ile ilgili daha ayrıntılı bilgi için
--delete seçeneğinin açıklamasına
bakınız.
- --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 bazında yeni dosya birleşimleri yapıyorsanız ve
bunların ihracının aktarımın silme fazında
etkin olmasını istiyorsanız bu seçenek yararlı
olacaktır. Dosya silinmesi ile ilgili daha ayrıntılı
bilgi için --delete seçeneğinin
açıklamasına bakınız.
- --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 ( --exclude seçeneğine bakınız).
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. Dosya silinmesi ile ilgili daha
ayrıntılı bilgi için ise --delete
seçeneğinin açıklamasına bakınız.
- --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 silnmesini 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. Etkin olması için
--recursive seçeneği ( -a tarafından
uygulanır) gerekir.
- --max-delete=sayı
- sayı'dan fazla dosya ya da dizin silinmez.
Yansılama yapılırken çok büyük
ağaçların yıkıma yol açmaması için
yararlıdır.
- --max-size=boyut
- boyut bayttan dha büyük dosyalar
aktarılmaz. boyut belirtilirken, sonek olarak K, M, G gibi
bayt çarpanları belirtilebileceği gibi kesirli
değerler de belirtilebilir ( --max-size=1.5m gibi).
- -B, --block-size=blokboyu
- rsync 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.
- -e, --rsh=komut
- Bu seçenek rsync'in yerel ve uzak
kopyaların arasında iletişim için bir uzak kabuk
uygulaması belirleyebilmeyi sağlar. Genelde, rsync
öntanımlı olarak ssh kullanacak şekilde
yapılandırılır, fakat bir yerel ağda rsh
kullanmayı da tercih edebilirsiniz.
Bu seçenek [kullanıcı@]makine::modül/yol ile
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 suncusunun soket
bağlantısı değil, uzak kabuk bağlantısı
kullanılacaktır. Ayrıca, yukarıdaki BİR RSYNC
SUNUCUSUNA BİR UZAK KABUKTAN BAĞLANMAK
bölümüne de bakınız.
komut içinde rsync sadece tek bir argümana izin
verir. Örnek:
-
- Bilgi:
- ssh kullanıcıları makineye özel
bağlantı seçeneklerini kendi .ssh/config dosyası ile
kişiselleştirebilirler.
-
Uzak kabuk uygulamasını seçmek için RSYNC_RSH ortam
değişkenini, -e seçeneğinde belirtilebilen bir
değeri atayarak kullanabilirsiniz.
Ayrıca, bu seçenekten etkilenen --blocking-io
seçeneğinin açıklamasına da bakınız.
- --rsync-path=uygulama
- Uzak makinede başlangıçta hangi
uygulamanın çalıştırılacağını
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
herhengi 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
devredışı kalmamasına dikkat etmelisiniz.
Aşağıdaki örnekte uzak makinede --relative
seçeneği ile kullanmak için farklı bir
öntanımlı yol belirtilmektedir:
rsync -avR --rsync-path="cd /a/b && rsync" makine:c/d /e/
-
- -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ışlanan dosyaların listesi şöyle
ilklendirilmiş olsun:
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/
-
$HOME/.cvsignore içindeki dosyalarla CVSIGNORE ortam
değişkeninde (tüm isimler bir boşlukla ayrılarak
belirtilir) listelenen her dosya bu listeye eklenecektir.
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) kılavuz sayfasına
bakınız.
Bu seçeneği kendi --filter kurallarınızla
birlikte belirtirseniz, -C seçeneğinin komut
satırının neresinde olduğuna
bakılmaksızın, CVS dışlananlarının
sizin kurallarınızın sonuna ekleneceğini
unutmayın. Bu, onlara sizin belirttiğiniz kurallara göre
daha düşük öncelik verir. CVS
dışlananlarının süzme kurallarınız
arasındaki yerini kendiniz belirlemek isterseniz, komut
satırı seçeneği olarak -C belirtmek yerine
--filter=:C ve --filter=-C seçeneklerini
belirtmelisiniz (bu şekilde komut satırında
belirtebileceğiniz gibi bir süzme dosyasına ":C"
ve "-C" kurallarını yerleştirerek de
belirtebilirsiniz). İlk kural her dizinde .cvsignore dosyalarına
bakılmasını, ikinci kural ise yukarıda bahsedilen CVS
dışlananlarını bir seferliğ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.
Bu seçenek hakkında daha ayrıntılı bilgi için
SÜZME KURALLARI bölümüne bakınız.
- -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 aktarılmamasını
sağlar.
Bu seçenek hakkında daha ayrıntılı bilgi için
SÜZME KURALLARI bölümüne bakınız.
- --exclude=kalıp
- 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
SÜZME KURALLARI bölümüne bakınız.
- --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 ile ';' veya
'#' ile başlayan satırlar yoksayılır.
dosya olarak - belirtilmişse girdiler standart girdiden
okunur.
- --include=kalıp
- 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
SÜZME KURALLARI bölümüne bakınız.
- --include-from=dosya
- Bu seçenek, içerme kurallarının
belirtilen dosyadan alınmasını sağlar. dosya
olarak - belirtilmişse girdiler standart girdiden okunur.
- --files-from=dosya
- Bu seçeneği kullanarak aktarılacak
dosyaların tam listesini belirtebilirsiniz. Liste dosya'dan ya
da "-" belirtilmişse standart girdiden okunur. Ayrıca,
bu seçenekle birlikte öntanımlı uygulanan
seçeneklere bağlı olarak rsync'in
öntanımlı davranışını kolayca
değiştirebilirsiniz:
- o
- --relative (-R) seçeneği
uygulanarak dosya içindeki her öğede belirtilen yol
bilgisi korunmuştur (bu davranışı kapatmak için
--no-relative seçeneğini kullanın).
- o
- --dirs (-d) seçeneği uygulanarak
listede belirtilen dizinlerin atlanmayıp, hedefte
oluşturulması sağlanmıştır.
- o
- --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ını istiyorsanız
--recursive ( -r) seçeneğini ayrıca
belirtmelisiniz.
-
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
(ancak, dosya içinde dosyalar açıkça
listelenmemişse ya da komut satırında -r
seçeneği yoksa /usr/bin dizinindeki dosyalar aktarılmaz).
Ayrıca, --relative seçeneğinin etkisini
(öntanımlı olarak etkindir) sadece dosyadan okunan yol
bilgisini yinelemek için saklar ancak, kaynak için
belirtilmiş yolun yinelenmesine zorlamaz (örnekte /usr).
Ek olarak, eğer dosya'yı "uzak:" öneki ile
belirtirseniz, bu dosya yerel makineden değil, uzak makineden okunur
(uzak: ile belirtilen makine, aktarımın
yapıldığı makine olmalıdır). Bir
kısaltma olarak, "aktarımın
yapıldığı uzak makine" 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.
- -0, --from0
- Bu seçenek rsync'e, bir dosyadan okunan dosya
isimlerinin sonlandırılmasının satırsonu
karakteri (LF) veya satırbaşı 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 bir --filter kuralı ile belirtilen
dosyaları etkiler. Dosya isimlerinin boşluk ile
ayrıldığı .cvsignore dosyalarını kullanan
--cvs-exclude seçeneğini etkilemez.
- -T, --temp-dir=dizin
- Bu seçenekle, dosyalar aktarılırken
alıcı tarafta geçici olarak oluşturulan
dosyaların nereye konulacağını belirtmek için
kullanılır. Öntanımlı davranış,
geçici dosyaların alıcı dizinde
oluşturulmasıdır.
- -y, --fuzzy
- Bu seçenekle, hedefte bulunmayan bir dosya için
benzer bir dosya aranacağını 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.
- Bilgi:
- --delete seçeneği bu amaçla
kullanılabilecek bir dosyanın işlem öncesinde
silinmesine yol açabileceğinden, bunun yerine ya
--delete-after seçeneğini kullanın ya da
dosyanın silme işlemine konu olmayacak şekilde
olmasına dikkat edin.
-
- --compare-dest=dizin
- Bu seçenekle, alıcı makinede hedef dizinde
olmayan dosyalar için karşılaştırmanın
dizin dizinine göre yapılacağı belirtilir.
Eğer dizin içinde göndericinin dosyasını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.
2.6.4 sürümünden başlayarak, çok sayıda
--compare-dest dizini belirtilebilmektedir. Eğer hedefte bir
eşleşme bulunamazsa, dosya bu dizinlerde aranır.
Eğer dizin göreli bir dizin olarak belirtilmişse bu
dizinin hedef dizinde olduğu kabul edilir. Ayrıca
--link-dest seçeneğine de bakınız.
- --link-dest=dizin
- Bu seçenek, dizin 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/öncü-dizin \
makine:kaynak-dzn/ yeni-dzn/
-
2.6.4 sürümünden başlayarak, çok sayıda
--link-dest dizini belirtilebilmektedir. Eğer hedefte bir
eşleşme bulunamazsa, dosya bu dizinlerde aranır.
Eğer dizin göreli bir dizin olarak belirtilmişse bu
dizinin hedef dizinde olduğu kabul edilir. Ayrıca
--compare-dest seçeneğine de bakınız.
- Bilgi:
- 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 -o seçeneğini
kullanmamalısınız.
-
- -z, --compress
- Bu seçenekle hedef makineye gönderilen
dosyaların verilerini rsync, aktarım miktarını
azaltmak için sıkıştıracaktır.
Özellikle, yavaş bağlantılar için çok
yararlıdır.
- Bilgi:
- Hedef makinede sıkıştırma için
aynı araçlar kullanılıyorsa,
sıkıştırılmış veri
sıkıştırma ile ilgili dolaylı bilgileri
içermeyeceğinden aktarımda daha iyi
sıkıştırma yapılabilmektedir.
-
- --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 isimleri her iki uçta
eşleşmiyorsa, 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ı nasıl değiştirebileceğinizi
öğrenmek için rsyncd.conf(5) kılavuz
sayfasındaki use chroot modül seçeneğinin
açıklamasına bakınız.
- --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ıracaktır. Öntanımlı değer, bir
zamanaşımı olmadığını belirten 0
değeridir.
- --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. Bu seçeneğin SUNUCU
SEÇENEKLERİ bölümündeki
açıklamasına da bakınız.
- 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).
- no-blocking-io
- Öntanımlı olarak engellenebilen G/Ç
kullanılıyorsa, bunu kapatır.
- -i, --itemize-changes
- Her dosyanın öznitelik değişikliklerini
de içererek yapılmış değişikliklerin
dosyalara göre tasnif edilmiş bir listesini ister. Bu,
--log-format='%i %n%L' belirtmekle aynıdır.
" %i" belirtimi 9 karakter uzunlukta şifresel bir
çıktıya sahiptir. Genel biçimi UXcstpoga
dizgesine benzer. Burada U 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.
U karakterinin yerini alan güncelleme türleri
şunlardır:
- o
- < karakteri yerel makineye aktarılan
(alınan) bir dosyayı belirtir.
- o
- > karakteri yerel makineye aktarılan
(gönderilen) bir dosyayı belirtir.
- o
- c karakteri yerel makinede
değiştirilen/oluşturulan bir dosyayı belirtir (bir
dizin ya da sembolik bağın oluşturulması gibi).
- o
- h karakteri başka bir öğeye sabit
bağ olan bir öğeyi belirtir ( --hard-links
gerektirir).
- o
- . (nokta) karakteri sadece öznitelikleri
değişmiş bir dosya belirtir.
- o
- = karakteri öğenin iki uçta da
aynı olduğunu belirtir (bu sadece ve sadece yüksek bir
ayrıntı seviyesinde çıktılanır).
-
X karakterinin yerini alan dosya türleri şunlardır:
bir dosya için f, bir dizin için d, bir sembolik
bağ için L ve bir aygıt için D.
UXcstpoga dizgesinin diğer harfleri, gerçek karakterler
olup, öğenin ilgili öznitelikleri güncellenmişse
çıktılanırlar, aksi takdirde "." ile
değiştirilirler. Bunun üç istisnası vardır:
- 1.
- yeni oluşturulmuş bir öğe için her
harf bir " +" ile değiştirilir.
- 2.
- İki uçtada aynı olan öğelerde her
harf bir boşlukla değiştirilir.
- 3.
- Bilinmeyen her öznitelik bir "?" ile
değiştirilir (bu, daha eski bir rsync ile konuşurken
ortaya çıkar).
-
Harflerin belirttiği öznitelikler şunlardır:
- o
- c dosyanın sağlama toplamlarının
farklı olduğunu ve dosyanın aktarımla
güncelleneceğini belirtir ( --checksum gerektirir).
- o
- s dosyanın boyutlarının farklı
olduğunu ve dosyanın aktarımla güncelleneceğini
belirtir
- o
- t değişklik zamanlarının
farklı olduğunu ve sunucudaki değer 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 bir dosya ya da dizin --times
seçeneği belirtilmeksizin aktarılırken ya da bir
sembolik bağ aktarılırken çıktılanır.
- o
- p izinlerin farklı olduğunu ve sunucudaki
değer ile güncelleneceğini belirtir ( --perms
gerektirir).
- o
- o sahiplerin farklı olduğunu ve sunucudaki
değer ile güncelleneceğini belirtir ( --owner ve
root yetkileri gerektirir).
- o
- g grupların farklı olduğunu ve
sunucudaki değer ile güncelleneceğini belirtir (
--group ve grup yetkileri gerektirir).
- o
- a harfi gelecekte ACL'ler gibi
genişletilmiş dosya özniteliklerini desteklemek üzere
yedek olarak ayrılmıştır.
-
Olası diğer bir çıktı daha vardır: dosyalar
silinirken silinecek her öğe için " %i"
belirtimi "deleting" dizgesini çıktılar
(yeterince son sürüm bir rsync ile konuşulduğu
ve bunun silme işlemlerini bir ayrıntı olarak
çıktılamayıp günlük kaydı tuttuğu
varsayımıyla).
- --log-format=biçim
- İşlenen her dosya için kullanıcıya
rsync istemcisinin nasıl bir çıktı
göstereceğini belirlemenizi sağlar. biçim her
biri % karakteri ile öncelenmiş tek karakterli
belirtimlerden oluşan bir dizgedir. Olası belirtimlerin listesi
için rsyncd.conf(5) kılavuz sayfasındaki log
format seçeneğinin açıklamasına
bakınız. ( --log-format seçeneği bir sunucunun
günlük kaydında ne
çıktılayacağını belirlemez.)
biçim dizgesinde --itemized-changes belirtimi (%i)
kullanılmamışsa, belli bir yolla (bir dosyanın
aktarılması, bir sembolik bağ veya aygıtın
yeniden oluşturulması, bir dizine dokunulması)
güncellenen her dosya için çıktı
üretilecektir, aksi takdirde, çıktılama herhangi bir
yolla güncellenen her öğeye genişletilir
(alıcı tarafın sürümü en azından 2.6.4
ise). "%i" belirtiminin çıktısı ile ilgili
ayrıntılar için --itemized-changes
seçeneğinin açıklamasına bakınız.
--verbose seçeneği "%n%L" biçiminin
uygulanmasını sağlar. --log-format
seçeneğini isterseniz, -v (--verbose)
seçeneğini belirtmeksizin kullanabileceğiniz gibi bu
seçeneği de kullanarak her dosya için bu biçimdeki bir
çıktının üretimesini de sağlayabilirsiniz.
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çimi dizgesini bir dosyanın aktarımından önce
çıktılayacaktır. Bu geç günlükleme
etkin olduğunda ve ayrıca --progress belirtilmişse
rsync ayrıca aktarılan dosyanın ismini işlem
bilgisinden önce (şüphesiz, --log-format
çıktısından sonra)
çıktılayacaktır.
- --stats
- Bu seçenek rsync'e, rsync
algoritmasının verileriniz için ne kadar verimli
olduğunu görmenizi sağlayacak dosya aktarım
istatitiklerini ayrıntılı olarak basmasını
söyler.
- --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=dizin
- Aktarımı yarım kalmış
dosyaların silinmesini önlemenin daha iyi bir yolu bu tür
dosyalar için ayrı bir dizin belirtmektir. Sonraki
aktarımda, rsync bu dosyanın aktarımını
tamamlamak için belirtilen dizin içindeki dosyayı
kullanacak ve dosyanın aktarımı tamamlandıktan sonra
bu dosyayı silecektir. Yalnız, eğer --whole-file
belirtilmişse (ya da dolaylı uygulanıyorsa), rsync
arttırımlı algoritmayı kullanmaksızın
dosyaları göndereceğinden, dizin içinde
tamamlanmayı bekleyen bir dosya bulunursa basitçe silinecektir.
Eğer dizin mevcut değilse, rsync dizin'i
oluşturacaktır (sadece son dizin, yolun tamamı değil).
Bu davranışın sonucu olarak, hedef dosyanın bir dizin
oluşturmayı gerektirdiği durumlarda göreli yol
belirtmek ( --partial-dir=.rsync-partial gibi) daha iyidir, bu
takdirde eksik dosya işlem sonunda silindiğinde bu dizin de
silinir.
Eğer dizin ile mutlak bir yol belirtilmemişse, mevcut
dışlamalarınızın sonunda rsync ayrıca
--exclude değeri olarak bir dizin ekleyecektir. Böylece
dizin içindeki dosyaların aktarımı ve
ayrıca alıcı tarafta bu dosyaların zamanından
önce silinmesi engellenecektir. Bir örnek: yukarıdaki
--partial-dir seçeneği diğer süzme
kurallarının sonuna bir "
--exclude=.rsync-partial/" kuralı ekleyecektir. Eğer
kendiniz bir takım süzme kuralları
kullanıyorsanız, bu kuralın daha yüksek öncelik
alması için kendi kurallarınız içinde uygun bir
yerde belirtebilirsiniz (kurallarınızın sonunda bir
--exclude='*' kuralı varsa, özdevimli eklenen bir kural
hiçbir zaman erişilebilir olmayacaktır).
- Önemli:
- --partial-dir ile belirtilen dizine diğer
kullanıcılar yazamamalıdır, aksi takdirde bu bir
güvenlik açığı oluşturur. Yani
"/tmp" gibi bir dizin belirtmekten KAÇININ.
-
Ayrıca dizin 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 yaptığınızı ve .rsync-tmp
dizinini eksik kalan aktarımı tamamlamak için komut
satırında sadece -P seçeneğini belirterek
kullandığınızı 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 bakınız).
Sunucu yapılandırmasının refuse options
ayarı, amacı gereği --partial-dir
seçeneğinin --partial seçeneğini
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 vermemekte kullanılabilir.
- --delay-updates
- Bu seçenek, güncellenen her dosyayı
aktarımın sonunda isimleri değiştirilmek suretiyle
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ğini belirterek değiştirebilirsiniz. Bu
seçenek --inplace seçeneği ile çelişir.
- Bilgi:
- Bu seçeneğe özel olarak,
--partial-dir yerine RSYNC_PARTIAL_DIR ile --partial
belirtmek RSYNC_PARTIAL_DIR değerinin kullanılmasını
sağlamaz. Ayrıca, sunucu yapılandırmasının
refuse options ayarı, amacı gereği
--partial-dir seçeneğine özel uygulamalar da
yapılmaz.
-
Bu seçenek alıcı tarafta biraz daha fazla bellek
kullanımına (aktarılan dosya başına bir bit) ve
güncellenen tüm dosyaları tutacak kadar boş disk
alanına gereksinim duyar. Ayrıca, yol mutlak olduğunda
güncellenen dosyaların hepsi tek bir dizine
konulacağından, aktarımda dosyaların herhangi birinin
aynı isimde olma olasılığının olmaması
durumu dışında, --partial-dir ile mutlak dosya yolu
belirtmemelisiniz.
Ayrıca, çok daha atomik bir güncelleme algortiması
içeren, rsync paketinin "support" alt dizinindeki
"atomic-rsync" perl betiğine de bakın (
--link-dest seçeneğini ve dosyalar için paralel bir
hiyerarşi kullanır).
- --progress
- Aktarımın gelişimini gösteren
çıktı üretilmesini sağlar. Bu, bezgin
kullanıcıya bazı şeyleri kollayabilme imkanı
verir. Açıkça belirtilmemişse, --verbose
seçeneğini de uygulanır.
Bir dosya aktarılırken, üretilen çıktı
şöyle görünür:
782448 63% 110.64kB/s 0:00:04
-
Bu çıktı kullanıcıya o anki dosya boyunu,
aktarılmış verinin yüzdesini (hattaki veri ile
aktarılmış verinin toplamı olarak), aktarım
hızını ve aktarımın tamamlanması için
gerekli kalan süreyi gösterir.
Bir dosya aktarıldıktan sonra, üretilen çıktı
şöyle görünür:
1238099 100% 146.38kB/s 0:00:08 (5, 57.1% of 396)
-
Bu çıktı kullanıcıya aktarımı biten
dosyanın son boyutunu, aktarımın %100
tamamlandığını, dosyanın son aktarım
hızını, dosyanın aktarımı için
kullanılan süreyi ve ek olarak toplam aktarımın boyut
ve adet olarak ne kadarının tamamlandığını
parantez içinde gösterir.
- -P
- --partial --progress seçenkleri 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.
- --password-file=dosya
- Uzak rsync sunucusuna erişim için parola
içeren bir dosya belirtebilmeyi sağlar. Bu seçenek,
aktarım için bir uzak kabuk kullanıldığında
değil, sadece yerleşik aktarım kullanarak bir rsync
sunucusuna erişirken yararlıdır. Dosya herkesçe
okunabilir olmamalı ve içinde parolayı içerek tek bir
satır bulunmalı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 doğrudan
kullanmaya ihtiyaç duymazsınız. Ancak, alt dizinlere
inilmeyen bir liste üretmek için tecrübeli bir
kullanıcının -r --exclude='/*/*' seçeneklerini
kullanmaktan kaçınabilmesi için bir kolaylık
sağlar.
- --bwlimit=kbps
- Azami aktarım hızının kB/s cinsinden
belirtilebilmesini sağlar. rsync'i çok büyük
dosyaları (MB'larca) aktarmak için kullanırken oldukça
verimlidir. rsync aktarımlarının doğası
gereği, veri bloklar halinde gönderilir, eğer rsync
aktarımın oldukça hızlı olduğunu saptarsa,
sonraki bloku göndermeden önce bekler. Sonuçta,
aktarım hızının ortalaması belirtilen hıza
eşit olur. Sıfır değeri bir sınırlama
olmadığı anlamına gelir.
- --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 BETİK KİPİ bölümüne
bakınız.
- --read-batch=dosya
- Evvelce --write-batch ile oluşturulan
dosya içindekileri uygular. Eğer dosya olarak
"-" belirtilirse betik verisi standart girdiden okunur.
Ayrıntılar için BETİK KİPİ
bölümüne bakınız.
- -4, --ipv4, --6, --ipv6
- rsync'e soketleri oluştururken IPv4/IPv6 tercih
etmesini söyler. Bu sadece rsync'in doğrudan kendi
denetimi altındaki soketleri etkiler. Ayrıca, bu
seçeneklerin SUNUCU SEÇENEKLERİ
bölümündeki açıklamasına da
bakınız.
- --checksum-seed=tamsayı
- MD4 sağlama toplamı tohumunun tamsayı
olarak belirtilebilmesini sağlar. Bu 4 baytlık tohum her blok ve
dosyanın MD4 sağlama hesaplamasında kullanılır.
Öntanımlı olarak bu tohum o anki zaman değeri olarak
sunucu tarafından üretilir. Bu seçenek, yinelenebilir blok
ve dosya sağlamaları isteyen uygulamalar için ya da
kullanıcının daha bir rasgele tohum kullanmak istediği
yerlerde kullanışlıdır. tamsayı olarak
sıfır değeri verilirse öntanımlı tohum
kullanılacaktır.
SUNUCU SEÇENEKLERݶ
Bir
rsync sunucu 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
makine::modül veya rsync://makine/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 rsyncd.conf(5) kılavuz sayfasına
bakınız.
- --address=adres
- Öntanımlı olarak rsync,
--daemon seçeneği ile
başlatıldığında ya da bir rsync sunucuya
bağlanırken bir şablon 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 adresleme yapabilmeyi mümkün
kılar. Ayrıca, rsyncd.conf(5) kılavuz
sayfasındaki address seçeneğinin
açıklamasına da bakınız.
- --bwlimit=kbps
- Sunucu sürecinin gönderdiği veri için
kilobayt/s cinsinden azami aktarım hızını belirtmek
için kullanılır. İstemci bu durumda bile bir
--bwlimit değeri belirtebilir, ancak bu istemci taraftaki band
genişliğini daraltmak için yapılabilir. Eğer
sunucunun belirttiği hız bu yolla aşılmak istenirse
değer aşağıya, sunucunu hızına
yuvarlanır. Bazı ek ayrıntılar için bu
seçeneğin istemci seçeneklerindeki
açıklamasına da bakınız.
- --config=dosya
- Öntanımlı yapılandırma
dosyasında farklı bir yapılandırma dosyası
belirtmek için kullanılır. Sunucu 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.
- --no-detach
- Bir sunucu 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ıdır. 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
- Sunucu tarafından öntanımlı olarak
kullanılan 873. port yerine başka bir port belirtmek için
kullanılır. Ayrıca rsyncd.conf(5) kılavuz
sayfasındaki port seçeneğinin
açıklamasına da bakınız.
- -v, --verbose
- Sunucu sürecinin başlatılması
sırasında günlük bilgilerinin miktarını
arttırmak için kullanılır. Sunucunun, 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.
- -4, --ipv4, --6, --ipv6
- rsync sunucusunun bağlantıları
dinleyeceği soketleri oluştururken IPv4/IPv6 tercih etmesini
sağlarlar. Çekirdekteki bir yazılım hatası
nedeniyle Linux'un eski sürümlerinde bu seçeneklerden biri
gerekli olabilir (port kullanılacağı zaman bir "adres
zaten kullanımda" hatası alıyorsanız,
rsync sunucusunu başlatırken --ipv6 veya
--ipv4 belirtmeyi deneyin).
- -h, --help
- --daemon seçeneğinden sonra belirtilirse,
rsync sunucusu 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 bir kural kullanırsanız, isteğe bağlı olan
belirteç'ten
kuralı bir ',' ile ayırın.
kalıp veya
dosyaismi'ni (varsa) bir boşluk veya
altçizgiden sonra yazmalısınız. Kullanılabilecek
kural önekleri:
uzun kısa açıklama
--------------------------
exclude - dışlama kalıbı belirtir
include + içerme kalıbı belirtir.
merge . ek kuralları okumak için katıştırılacak dosya,
dir-merge : bir dizin içi katıştırma dosyası belirtir.
hide H aktarımdan gizlenecek dosyalar için kalıp.
show S aktarımdan gizlenmeyecek dosyalar için kalıp.
protect P silinmekten koruncak dosyalar için kalıp.
risk R silinmekten korunmayacacak dosyalar için kalıp.
clear ! o anki include/exclude listesini temizler (argümansız)
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 ederler. Bir include seçeneği için, bir kalıp "
- " (tire ve boşluk) veya "
+ " (artı ve
boşluk) ile başlamıyorsa, kural bir "
+ "
olarak değerlendirilir. Bir
--exclude seçeneği için
bir kalıp bir "
- " ile başlamalıdır.
Bir
--filter seçeneği ise kuralın
başlangıcında daima bir uzun ya da kısa kural ismi
içermelidir.
Ayrıca,
--filter,
--include ve
--exclude
seçenekleri tek bir kalıp/kural alabilir. Çok sayıda
kalıp/kural eklemek için komut satırında bu
seçenekleri tekrarlayabilir veya
--filter,
--include-from
ve
--exclude-from seçeneklerinin dosya katıştırma
sözdizimini kullanabilirsiniz.
İçerme/Dışlama Kalıpları¶
Yukarıda
SÜZME KURALLARI bölümünde
bahsedildiği gibi dosyaları "
+",
"
-" gibi kalıpları kullanarak aktarabilir ya da
atlayabilirsiniz. İçerme ve dışlama kurallarının
herbirinde aktarılacak dosyaların isimleriyle eşleşen
kalıplar belirtilir. Bu kalıplar çeşitli biçimler
alabilir:
- o
- Eğer kalıp bir / ile başlıyorsa,
dosya hiyerarşisi içinde belli bir noktaya demirlenir, aksi
takdirde yol isminin sonuna eşlenir. Bu düzenli ifadelerde
kalıbı ^ ile başlatmaya benzer. Örneğin,
" /foo" kalıbı ya "aktarımın
kökü"ndeki (genel bir kural için) ya da
katıştırılan dosyanın dizinindeki (
dir-merge kuralı için) "foo" isimli bir 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 uca doğru alt dizinlere inilerek
uygulanır; yani, her yol elemanı sonunda dosya ismi olacak bir
sırada ele alınır. " 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ğinin
ayrıntılı açıklaması için
İçerme/Dışlama Kalıplarının Kök
Dizinle İlişklendirilmesi bölümüne
bakınız..
- o
- Eğer kalıp bir / ile bitiyorsa, sadece bir
dizinle eşleşecektir, bir dosya, bağ ya da aygıtla
değil.
- o
- Eğer kalıp *?[ dosyaismi kalıp
karakterlerinden birini içeriyorsa, ifade kabuğun dosyaismi
eşleştirme kuralları kullanılarak
eşleştirilir. Aksi takdirde basit bir dizge eşleme
kullanılır.
- o
- Tek yıldızlı bir kalıp
("*") bölü çizgilerinde duracakken,
çift yıldızlı kalıp (" **")
çok sayıda bölü çizgisi ile
eşleşecektir.
- o
- 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 dosyaisminin son bileşeni ile eşleştirilir
(algoritmanın altdizinlere inilerek uygulandığını
hatırlayın, yani "tam dosyaismi"
başlangıç dizininden başlayarak son dizine kadar yolun
herhangi bir parçası ile eşleşebilir).
Şuna dikkat edin,
--recursive (
-r) seçeneğini
(
-a ile uygulanan) kullandığınızda, her yolun her
alt bileşeni yukarıdan aşağıya ziyaret edilir, yani
içerme/dışlama kalıpları altdizinlere inilerek her
alt bileşenin tam ismine uygulanır (örn,
"/foo/bar/baz" içerilirken "/foo" ve
"/foo/bar" dışlanamaz).
rsync göndereceği
dosyaları ararken, dışlama kalıpları aslında
dizin basamaklama aşamasını kısadevre eder. Eğer bir
kalıp belli bir üst dizini dışlıyorsa, bir 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. Bu özellikle "
*" ile biten bir kural kullanı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 ettirmenin bir yolu tek bir kuralın listeye
dahil edilmesidir: "
+ */" ("
- *"
kuralından önce herhangi bir yere yerleştirebilirsiniz).
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
- "- *.o" kalıbı *.o ile
eşleşen tüm dosya isimlerini dışlar.
- o
- "- /foo" kalıbı
aktarımın kök dizinindeki "foo" isimli bir
dosyayı dışlar.
- o
- "- foo/" kalıbı "foo"
isimli hehangi bir dizini dışlar.
- o
- "- /foo/*/bar" kalıbı
aktarımın kök dizinindeki "foo" dizininden iki
seviye aşağıdaki "bar" isimli dosyayı
dışlar.
- o
- "- /foo/**/bar" kalıbı
aktarımın kök dizinindeki "foo" dizininden iki
veya daha alt seviyedeki "bar" isimli dosyayı
dışlar.
- o
- "+ */", "+ *.c" ve
"- *" kalıplarının birleşimi tüm
dizinler ve C kaynak dosyaları dışında herşeyi
dışlar.
- o
- "+ foo/", "+ foo/bar.c"
ve " - *" kalıplarının birleşimi
sadece "foo" dizinini ve "foo/bar.c"
dosyasını içerecektir ("foo" dizini
açıkça içerilmelidir yoksa " *"
tarafından dışlanırdı).
Katıştırma Dosyası Süzme
Kuralları¶
Yukarıda
SÜZME KURALLARI bölümünde
bahsedildiği gibi dosyaları bir
merge (
.) ya da bir
dir-merge (
:) süzme kuralı belirterek süzme
kurallarınıza tüm dosyaları
katıştırablirsiniz.
İki çeşit katıştırma dosyası vardır: tek
dosyalık ('.') ve diziniçi dosyalar (':'). Tek dosyalık bir
katıştırma dosyası bir defa okunur ve "."
kuralındaki süzme listesi ile birlikte işleme sokulur.
Diziniçi katıştırma dosyası türünde ise,
rsync adım adım bütün altdizinleri tarayarak ismi
belirtilen dosyayı buldukça dosya içeriğini o anki kural
listesine ekler. Bu diziniçi kural dosyaları aktarım 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
aktarılmaları gerekecektir (aşağıda,
Diziniçi
Katıştırma 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:
- o
- Bir - belirteci, dosyaiçi açıklamalar
hariç başka bir kural çözümleme
olmaksızın, sadece dışlama kalıplarından
oluşan bir dosya belirtir.
- o
- Bir + belirteci, dosyaiçi açıklamalar
hariç başka bir kural çözümleme
olmaksızın, sadece içerme kalıplarından
oluşan bir dosya belirtir.
- o
- Bir 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 dosyaismi belirtilmemişse dosya isminin
".cvsignore" olduğu varsayılır.
- o
- Bir e belirteci, katıştırma
dosyasını aktarımdan dışlayacaktır;
örneğin, " dir-merge,e .rules" kuralı
" dir-merge .rules" ve "- .rules"
kuralları gibidir.
- o
- Bir n belirteci, kuralların altdizinlerde miras
alınmayacağını belirtir.
- o
- Bir w belirteci, kurallar için satırlara
göre değil boşluklara göre sözcük
ayırma uygulanacağını belirtir. Bu ayrıca
açıklamalara da izin vermeyecektir.
- Bilgi:
- Bir kuralın öneki olan boşluklar özel
olarak ele alınır, yani " - foo + bar" dizgesi
iki kurala ayrılacaktır (ek olarak önek
çözümlemesinin iptal edilmediği
varsayımıyla).
-
- o
- Ayrıca, "+" veya "-"
kuralı için aşağıdaki belirteçlerden
herhangi birini belirtebilirsiniz. Örneğin, "
dir-merge,s .filt" ve " :sC"
kurallarının herbiri sadece sunucu tarafında uygulanacak
diziniçi katıştırma kurallarını
oluştururken, " merge,-/ .excl" kuralıyla .excl
dosyasının içeriği mutlakyol
dışlamaları olarak ele alınır.
Bir "
+" veya "
-" kuralından sonra
kullanılabilecek belirteçler:
- o
- Bir "/" belirteci kuralın dosya
sisteminin köküne göre bir mutlak yol olarak ele
alınacağını belirtir. Örneğin, " -/
/etc/passwd" kuralı aktarım sırasında
"/etc" dizininden gönderilen dosyalardan passwd
dosyasının dışlanacağını belirtir.
- o
- Bir "!" belirteci kuralın,
kalıbın eşleşmediğinde etkili
olacağını belirtir. Örneğin, " -!
*/" kuralı dizin olmayan herşeyi
dışlayacaktır.
- o
- Bir "C" belirteci, tüm genel CVS
dışlama kurallarının yerinde " -C"
dışlamaları olarak yerleştirileceğini belirtmek
için kullanılır. Bir argüman almaz.
- o
- Bir "s" belirteci, kuralın sadece
gönderen tarafta uygulanacağını belirtir. Bir kural
gönderen tarafta etkin olduğunda, dosyaların
aktarılmasını engeller. --delete-excluded
belirtilmedikçe, bir kuralın her iki tarafı da etkilemesi
öntanımlıdır, aksi takdirde kuralın sadece
gönderen tarafı etkilemesi öntanımlıdır.
Sunucu tarafında etkili içerme/dışlama kuralları
belirtmenin diğer yolları için hide (H) ve
show (S) kurallarına da bakınız.
- o
- Bir "C" belirteci, kuralın
alıcı tarafa uygulanacağını belirtir. Bir kural
alıcı tarafta etkili olduğunda, dosyaların silinmesini
engeller. Daha fazla bilgi için üstteki " s"
belirtecine bakınız. Ayrıca, alıcı tarafta etkili
içerme/dışlama kuralları belirtmenin diğer
yolları için protect (P) ve risk (R)
kurallarına da bakınız.
dir-merge kuralları
n belirteci
kullanılmadıkça katıştırma 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 katıştırma 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
katıştırma dosyasında bir liste temizleme kuralına
rastlandığında, sadece o katıştırma
dosyasının bulunduğu noktaya kadar miras alınan kurallar
temizlenir.
Bir tek dosyalık kuralın bir
dir-merge dosyasından miras
alınmasını engellemenin diğer bir yolu, dosyanın
başına bir
/ getirmektir. Bir diziniçi
katıştırma dosyasındaki bu tür kurallar
katıştırma 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 belirteceğiniz
örnek süzme dosyası:
merge /home/user/.global-filter
- *.gz
dir-merge .rules
+ *.[ch]
- *.o
Bu, bu listenin başına /home/user/.global-filter dosyasının
içeriğini ve ayrıca, bunu da alt dizinde ".rules"
dosyasının sonuna ekleyecektir. Her dizinin başında
önce tüm kurallar okunup üst dizinden alınan genel
kurallar buna eklenir.
Eğer bir diziniçi katıştırma 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ç (
-F seçeneğine bakınız),
--filter=': /.rsync-filter'
rsync'e .rsync-filter dosyasını kökten
aşağı doğru, aktarımın bir parçası
olarak gönderilen dizinlerde dosyaı normal taramaya başlamadan
önce aktarımın üst dizininden itibaren tüm dizinlerde
aramasını söyler (Bilgi: bir
rsync sunucusu için
kök dizin daima modülün dizinidir).
Diziniçi katıştırma dosyaları için bu tür
öntarama örnekleri:
rsync -avF /src/path/ /dest/dir
rsync -av --filter=': ../../.rsync-filter' /src/path/ /dest/dir
rsync -av --filter=': .rsync-filter' /src/path/ /dest/dir
İlk iki komut ".rsync-filter" dosyasını
"/src/path" içinde aramaya başlamadan önce
"/" ve "/src" dizinlerinde arar. Son komut ise, üst
dizin taramasından kaçınır ve ".rsync-filter"
dosyasını sadece aktarımın parçası olan
dizinlerde arar.
Bir ".cvsignore" dosyasının içeriğini
kalıplarınıza dahil etmek isterseniz, "
:C"
kuralını kullanmalısınız. Bu kural, .cvsignore
dosyalarını diziniçi katıştırma 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ını
istiyorsanız kurallarınızın arasına bu noktada "
:C" kuralını yerleştirebilirsiniz. Bu
olmaksızın,
rsync .cvsignore dosyası için
dir-merge kuralını diğer kurallarınızın
sonuna ekleyecektir (komut satırı seçeneklerinizden 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 katıştıracaktır. 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 belirtmemeli, onun yerine
kurallarınıza bir "
-C" kuralı
yerleştirmelisiniz; örn, "
--filter=-C".
Liste Temizleyen Süzme Kuralı¶
Yukarıda
SÜZME KURALLARI bölümünde
bahsedildiği gibi mevcut içerme/dışlama listesini "
!" süzme kuralını kullanarak temizleyebilirsiniz.
"Mevcut" liste ya genel kural listesi (kural, süzme
seçenekleri çözümlenirken saptanmışsa) ya da
diziniçi katıştırma 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 (katıştırma dosyasının
dizini ile ilişklendirilen diziniçi kalıplarının
tersine). Aktarımı, göndericiden alıcıya bir isim
altağ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ştirmenizde kullanılması gereken yolu etkiler.
Aşağıdaki örneklerde bu davranış
modellenmiştir.
Biri "/home/ben/foo/bar", diğeri "/home/sen/bar/baz"
olan iki dosyamız olsun. Aşağıda bu iki dosyanın
çeşitli komut kullanımlarında nasıl farklı
aktarıldıkları 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,
--verbose kullanarak çıktıya bakmak ve ismin
önüne bir / koymaktır (herhangi bir dosya kopyalamaya
hazır değilseniz,
--dry-run seçeneğini
kullanın).
Diziniçi Katıştırma Kuralları ve
Silme¶
Bir silme seçeneği olmaksızın, diziniçi
katıştırma dosyası kuralları sadece gönderen
tarafta konuyla ilgilidir, dolayısıyla aktarımı
etkilemeksizin rahatça katıştırma dosyalarını
dışlayabilirsiniz. Bunu kolayca yapmanın yolu, örnekte
görüldüğü gibi bu dışlamaya '
e'
belirtecini eklemektir:
rsync -av --filter=': .haric' --exclude=.haric mkn:kaynak/dizin /hedef
rsync -av --filter=':e .haric' mkn: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
katıştırma 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 mkn:kaynak/dizin /hedef
Yine de, katıştırma dosyaları aktarımın bir
parçası değilse, ya bazı genel dışlama
kuralları belirtmeli (komut satırında belirtilebilir) ya da
alıcı tarafta diziniçi katıştırma
dosyalarının bulunmasını kendiniz
sağlamalısınız. İ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 mkn:kaynak/dizin /hedef
Bu örnekte ek.kuralım dosyası aktarımın her iki
tarafını da etkileyebilir, fakat (gönderen tarafta) kurallar
diziniçi katıştırma kuralından sonra
belirtildiğinden .kural dosyasından katıştırılan
kurallardan daha düşük öncelikli olurlar
Son örnekte, uzak taraf .rsync-filter dosyalarını aktarımdan
dışlamaktadır, ancak biz 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 katıştırma 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. Bu komutlardan biri gibi:
rsync -av --filter=':e /.rsync-filter' --delete \
mkn:kaynak/dizin /hedef
rsync -avFF --delete mkn:kaynak/dizin /hedef
BETİK KİPݶ
Betik kipi bir çok sistem için aynı olan güncellemeleri
uygularken kullanılabilir. Bir dizin ağacının çok
sayıda makine üzerinde kopyalarının bulunduğunu
varsayalım. Şimdi, kaynak ağacında bazı
değişiklikler olduğunu ve bunların diğer makinelere
de aktarılması gerektiğini varsayalım. Bu işlemi
betik kipini kullarak 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
"betik dosyası" içinde saklanmasını sağlar.
Kaydedilen değişiklikleri diğer hedef ağaçlara
uygulamak için
rsync, bu dosyanın ismi seçeneğe
argüman olarak belirtilerek
--read-batch seçeneği ile
çalıştırılır.
rsync, betik
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, betik dosyasının isminin sonuna ".sh" eklenerek
oluşturulur. Bu .sh dosyası betik dosyasını kullanarak
hedefi güncelleyecek komut satırını içerir. Bir
Bourne(-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 kaynak ağacının
yolundan farklı olduğu durumlarda yararlıdır.
Dosya durumu, sağlama toplamı sınanması ve veri
bloklarının üretimi işlemleri betik dosyasına bir
kere kaydedildi mi, hedef ağaçlarda defalarca kullanılabilir.
Aynı verileri her konağa ayrı ayrı göndermek yerine
çok sayıda konağı aynı anda güncelleyecek
çok görevli aktarım protolleri de kullanılabilir.
Örnekler:
$ rsync --write-batch=foo -a mkn:/kaynak/dzn/ /hedef1/dzn/
$ scp foo* uzak:
$ ssh uzak ./foo.sh /hedef2/dzn/
$ rsync --write-batch=foo -a /kaynak/dzn/ /hedef1/dzn/
$ ssh remote 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ğı betiğe
kayıtlı veri /hedef2/dzn/ dizinine gönderilerek
güncellenir. Bu iki örnek arasındaki farklar betik
dosyalarının hangi esneklikte kullanılabileceğini
göstermek içindir:
- o
- İlk örnek ilk kopyanın yerel
olmayacağını gösterir -- her iki yönde de
aktarım için ister uzak kabuk sözdizimini, ister
rsync sunucu sözdizimini kullanabilirsiniz.
- o
- İlk örnek uzak makine üzerinde
--read-batch seçenekli komutu
çalıştırırken doğru rsync
seçeneklerini oluşturulan "foo.sh" dosyasından
alır.
- o
- İkinci örnek betik verisini standart girdiden
okur, böylece betik dosyasının önce uzak makineye
kopyalanması gerekmez. Bu örnekte değiştirilmiş
bir --read-batch seçeneği kullanılmasını
gerektirdiğinden "foo.sh" betiği
kullanılmamıştır, fakat betiği kullanmak
için dosyayı kendiniz düzenleyebilirsiniz. (Ancak,
başka bir seçeneğin ( --exclude-from=- gibi)
standart girdiyi kullanmadığından emin
olmalısınız.)
Yetersizlikler¶
Betik okuma seçeneği, hedef ağacın, betiğin
oluşturulduğu hedefteki ağaçla aynı olacağı
kabulüne dayanır. Hedef ağaçta bir fark
saptandığında işlem ya bir hata verilmeksizin 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 bir betik okuma işleminin yeniden
başlatılmasının güvenli olması gerektiği
anlamına gelir. Eğer betikli güncellemenin dosyanın
boyutuna ve tarihine bakılmaksızın daima yapılabilmesini
isterseniz,
-I seçeneğini kullanın (betik okunurken).
Eğer bir hata oluşursa, hedef ağaç bir ihtimal,
kısmen güncellenmiş durumda olacaktır. Bu durumda,
rsync betikli güncelleme ile değil, normal işlemle
kullanılarak hedef ağaç düzeltilebilir.
Tüm hedeflerde kullanılan
rsync sürümü, betik
dosyasını üretmekte kullanılandan en azından biraz
daha yeni olmalıdır. Eğer, betik dosyasının protokol
sürümü onu okuyan
rsync'in sürümünden
daha yeni ise
rsync bir hata vererek sonlanacaktır.
--dry-run (
-n) seçeneği betik kipinde
çalışmaz ve bir çalışma anı hatası ile
sonlanır.
Bir betik dosyası okunurken, siz belirtmemiş olsanız bile, betik
dosyası üretilirken kullanılan ve betik dosyasındaki
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
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 betik kipi "rsync+" üzerine
inşa edilmiş olsa da en son sürümde yeni bir
gerçeklenim kullanılmaktadır.
SEMBOLİK BAĞLAR¶
rsync kaynak dizini içinde bir sembolik bağ
saptadığında üç temel davranış
sözkonusudur:
- ·
- Öntanımlı olarak, sembolik bağlar
oldukları gibi aktarılmazlar. Bir sembolik bağ varsa,
"skipping non-regular file" (normal dosya
olmadığından atlanıyor) iletisini
alırsınız ve dosya atlanır.
- ·
- Eğer --links seçeneği
belirtilmişse, sembolik bağlar alıcı tarafta aynı
hedefle yeniden oluşturulurlar. BİLGİ: --archive
seçeneği dolaylı 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üvenilir" 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ündeki /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.
Mutlak yol içeren (/ ile başlayan) sembolik bağlarla, bulunulan
dizinden daha yukarıdaki dizinleri gösteren ".."
bileşenlerini içeren sembolik bağlar güvensiz olarak kabul
edilir.
TANI KOYMA¶
rsync ara sıra biraz şifreli gibi görünen hata
iletileri üretir. Bunlardan biri en kafa karıştıcı
olan "protocol version mismatch -- is your shell clean?" (protokol
sürümü yanlış -- kabuğunuz temiz mi?)
iletisidir.
Bu ileti genellikle,
rsync'in aktarım için
kullandığı akım üzerinde istenmeyen veriler
üreten uzak kabul oluşumları ya da başlatma
betiklerinizden kaynaklanır. Bu soruna tanı koymanın yolu, uzak
kabuğu şöyle çalıştırmaktır:
ssh uzakmakine /bin/true > out.dat
Bundan sonra oluşturulan out.dat dosyasına bakın. Herşey
yolunda gitmişse dosya sıfır uzunlukta olacaktır.
Eğer yukarıdaki hatayı alıyorsanız, dosya bazı
veriler içerecektir. Dosyanın içeriğine bakarak
bunları nelerin üretebileceğini bulmaya
çalışın. Ç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 istiyorsanız,
-vv seçeneğini belirtmeyi deneyin.
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; 64 bitlik dosyaları
desteklemeyen bir platformda bu tür dosyalarla
çalışılmak isteniyor; istemci tarafından
desteklendiği halde sunucu tarafından desteklenmeyen bir
seçenek kullanılmış.
- 5
- Sunucu/istmeci protokolü başlatılırken
hata.
- 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
- 30
- Veri aktarımında zamanaşımı
ORTAM DEĞİŞKENLERݶ
- CVSIGNORE
- .cvsignore dosyalarındaki gibi yoksayılacak
kalıpları belirtmek için kullanılır. Daha fazla
bilgi için --cvs-exclude seçeneğinin
açıklamasına bakınız.
- 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çeneği olarak sadece -e
seçeneği kullanılabilir.
- RSYNC_PROXY
- rsync sunucusuna bağlanırken rsync
istemcisi tarafından kullanılacak vekil sunucuyu belirtmek
için kullanılır. Değeri bir konakadı:port
çifti olarak belirtmelisiniz.
- 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 saptamak için
kullanılır. Böyle bir tanım
yapılmamışsa, öntanımlı kullanıcı
ismi olarak "nobody" kullanılır.
- HOME
- Kullanıcının öntanımlı
.cvsignore dosyasını bulmakta kullanılır.
İLGİLİ DOSYALAR¶
/etc/rsyncd.conf veya rsyncd.conf
İLGİLİ BELGELER¶
rsyncd.conf(5)
HATALAR¶
Zamanlar unix time_t türünden değerler olarak
aktarılır.
Dosyalar FAT dosya sistemine aktarılırken,
rsync dosyalarda
değişiklik yapmayabilir.
--modify-window
seçeneğinin açıklamasına bakınız.
Dosya izinleri, aygıtlar, vs. temel sayısal değerleriyle
aktarılır.
Ayrıca,
--delete seçeneğinin açıklamasına
da bakınız.
Lütfen hataları raporlayınız! Hataları raporlamak
için
http://rsync.samba.org/ adresine bakınız.
RSYNC HAKKINDA¶
rsync GNU kamu lisansı altında
dağıtılmaktadır. Ayrıntılar için COPYING
dosyasına bakınız.
Sanalyöremize
http://rsync.samba.org/ adresinden erişebilirsiniz. Bu
kılavuz sayfasında yanıtlarını
bulamadığınız sorular için sanalyöremizde bir
FAQ-O-Matic bulunmaktadır.
rsync'in ana ftp'si:
ftp://rsync.samba.org/pub/rsync.
Bu uygulamayı istiyorsanız, sizden bunu duymak bizi mennun edecektir.
Bu uygulamada, Jean-loup Gailly ve Mark Adler tarafından
yazılmış zlib sıkıştırma
kütüphanesi kullanılmaktadır.
TEŞEKKÜR¶
rsync'in yamanması, sınanması ve önerileri için
Richard Brent, Brendan Mackay, Bill Waite, Stephen Rothwell ve David Bell'e
teşekkür ederiz. Burada bahsetmeyi unuttuğum kişiler
kalmışsa, affola.
Ayrıca, David Dykstra, Jos Backus, Sebastian Krahmer, Martin Pool, Wayne
Davison ve J.W. Schultz'a özellikle teşekkür ederiz.
YAZANLAR¶
rsync ilk olarak Andrew Tridgell ve Paul Mackerras tarafından
yazıldı. Daha sonra bir çok kişi tarafından
geliştirildi.
Destek ve geliştirme için
http://lists.samba.org adresindeki eposta
listelerine bakınız.
ÇEVİREN¶
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>,
Mart 2005