RSYNC(1) | Kullanıcı Komutları | RSYNC(1) |
rsync - hızlı, becerikli, uzak (ve yerel) dosya kopyalama aracı
Alım:
Gönderim:
Alım:
Gönderim:
HEDEF belirtmeksizin yalnızca KAYNAK
belirtilen kullanımda kopyalama yapılmaz, kaynak dosyalar
listelenir.
Bu kılavuz sayfasının belge içi bağlarla
gezilebilir sürümü için bkz:
http://tlbp.gen.tr/man/man1/man1-rsync.html
rsync hızlı ve olağanüstü becerikli bir dosya kopyalama aracıdır. Yerel olarak veya herhangi bir uzak kabuk ya da uzak rsync sunucusu üzerinden başka bir konağa/konaktan kopyalama yapabilir. Davranışının her yönünü denetleyebilen çok sayıda seçenek sunar ve kopyalanacak dosyaların çok esnek belirlenmesine olanak sağlar. Yalnızca kaynak dosyalar ile hedefteki mevcut dosyalar arasındaki farkları göndererek ağ üzerinden gönderilen veri miktarını azaltan delta aktarım algoritmasıyla ünlüdür. rsync, yedekleme ve yansılama için ve günlük kullanım için geliştirilmiş bir kopyalama komutu olarak yaygın olarak kullanılır.
rsync boyutuna veya son değişiklik zamanında bakarak değişen dosyaları bulan "hızlı denetim" algoritmasını (öntanımlıdır) kullanarak aktarılacak dosyaları saptar. Hızlı bir denetimle dosya verisinin güncellenmesinin gerekmediği saptandığında bile ilgili seçenekler belirtilerek istendiği takdirde diğer öznitelikler de hedef dosyaya aktarılır.
rsync’e özgü bazı ek özellikler:
rsync dosyaları, uzak konaktan yerele veya yerelden uzak konağa ya da yerel dosya sistemi içinde kopyalayabilir. İki uzak konak arasında dosya kopyalamayı desteklememektedir.
rsync’in uzak bir sisteme bağlanmasının iki yolu vardır: ssh(1) veya rsh(1) gibi uzak kabuk uygulamalarından birini kullanarak ya da doğrudan TCP üzerinden rsync sunucusuna bağlanarak. Kaynak veya hedef, konak belirtiminden sonra tek bir : imi ile ayrılarak belirtiliyorsa uzak kabuk aktarımı uygulanır. Kaynak veya hedef, konak belirtiminden sonra bir çift : imi (::) ile ayrılarak belirtiliyorsa veya rsync://URL belirtimi kullanılmışsa doğrudan rsync sucucusuna bağlanmaya çalışılır. (İkinci kuralın bir istisnası için bkz: RSYNC ARTALAN SÜRECİNE UZAK KABUKTAN BAĞLANMAK).
Özel bir durum olarak, hedef belirtmeksizin tek bir kaynak belirtilmesi durumunda dosyalar "ls -l" çıktısına benzer biçemde listelenir.
Beklendiği gibi, ne hedefte ne de kaynakta uzak bir konak belirtilmiyorsa dosya sistemi içinde kopyalama yapılır (ayrıca, bkz: --list-only seçeneği).
rsync yerel tarafı istemci, uzak tarafı sunucu olarak ele alır. Sunucu ile rsync artalan sürecini karıştırmayın. Artalan süreci daima sunucudur fakat sunucu (uzak taraf) bir artalan süreci olabileceği gibi uzak kabuğun çatalladığı bir süreç de olabilir.
Kurulum işlemleri için README.md dosyasına bakınız.
Kurduktan sonra, bir uzak kabuk üzerinden erişelebilen (veya rsync artalan kipi protokolü kullanarak erişilebilen) her makinede rsync kullanılabilir. Uzak dosya aktarımları için, günümüzde rsync iletişiminde ssh kullanmasına rağmen öntanımlı olarak kullanacağı uzak kabuk rsh veya remsh gibi bir kabuk olarak da ayarlanabilir.
Bundan başka, istediğiniz uzak kabuk uygulamasını -e komut satırı seçeneğinin girdisi olarak veya RSYNC_RSH ortam değişkenine atayarak da belirtebilirsiniz.
Yalnız, rsync’in hem yerel hem de uzak makine üzerinde kurulu olması gerektiğini unutmayın.
rsync’i rcp’yi nasıl kullanıyorsanız öyle kullanabilirsiniz. Biri uzak makine olmak üzere bir kaynak ve bir hedef belirtmelisiniz.
Şüphesiz sözdizimini açıklamanın en kolay yolu bir örnek vermektir:
rsync -t *.c foo:src/
rsync -avz foo:src/bar /data/tmp
rsync -avz foo:src/bar/ /data/tmp
rsync -av /src/foo /dest rsync -av /src/foo/ /dest/foo
rsync -av konak: /hedef rsync -av konak::modul /hedef
Son olarak, belli bir rsync sunucusundaki modüllerden listelenebilir olanlar modül ismi boş bırakılarak listelenebilir:
rsync somehost.mydomain.com::
Bir uzak makineden çok sayıda dosya için istek yaparken aralarında boşluk bırakılmış kaynak dosya yolları, ilkinden sonra uzak konağı belirterek de belirtmeyerek de yazılabilir. Aşağıdakilerin hepsi çalışacaktır:
rsync -aiv konak:dosya1 :dosya2 konak:dosya{3,4} /hedef/ rsync -aiv konak::modismi/dosya{1,2} konak::modismi/ek /hedef/ rsync -aiv konak::modismi/first ::modismi/ek{1,2} /hedef/
rsync -aiv konak:’basit bir dosya.pdf’ /hedef/
rsync -ai --old-args konak:’dzn1/dosya1 dzn2/dosya2’ /hedef rsync -ai --old-args konak::’modismi/dzn1/dosya1 modismi/dzn2/dosya2’ /hedef
Dosya aktarımı için rsync’i bir uzak kabuk olmaksızın kullanmak da mümkündür. Bu durumda, TCP 873. port üzerinde çalışan bir uzak rsync sunucusuna bağlanırsınız. Bu açıkça artalan sürecinin uzak makinada çalışıyor olmasını gerektirir. Bu konuda daha ayrıntılı bilgi için bkz: RSYNC ARTALAN SÜRECİNE UZAK KABUKTAN BAĞLANMAK
rsync’i bu yöntemle kullanmanın bir uzak kabuk üzerinden kullanmaya göre farkları şunlardır:
rsync -av konak::kaynak /hedef
RSYNC_PROXY ortam değişkenine bir konak:port çifti belirterek bir vekil sunucu üzerinden de bağlantı sağlayabilirsiniz. Burada, vekil sunucunuzun yapılandırmasının 873. port üzerinden bağlantıya izin verdiğinden emin olmalısınız.
Doğrudan soket bağlantısı yapmak yerine RSYNC_CONNECT_PROG ortam değikenine çalıştırmak istediğiniz komutları atayarak bir uygulamayı vekil olarak kullanmak suretiyle artalan sürecinin ağa bağlanması sağlanabilir. Komut dizgesi, rsync komutunda belirtilen konak adını ifade etmek üzere "%H" değişkenini içerebilir (dizgede tek bir % belirtmek gerekirse yerine %% kullanılabilir). Örnek:
export RSYNC_CONNECT_PROG=’ssh vekilkonak nc %H 873’ rsync -av hedefkonak1::modul/kaynak/ /hedef/ rsync -av rsync://hedefkonak2/modul/kaynak/ /hedef/
rsync artalan sürecinin, (isimli modüller gibi) çeşitli özelliklerini kullanarak, fazladan bir soket bağlantısı yapmadan, sisteme uzak kabukla bağlanmak bazen yararlıdır. rsync, bir konağa uzak kabuk kullanarak bağlanmayı ve ardından uzak kullanıcının ev dizinindeki bir yapılandırma dosyasını okuyacak tek kullanımlık bir "artalan" sunucusu çatallamayı destekler. Artalan süreci tarzı bir aktarımda verilerin şifrelenmek istenmesi durumunda bu yararlı olabilir, ancak artalan süreci uzak kullanıcı tarafından başlatıldığından, chroot(1) gibi özellikler kullanılamayabilir veya artalan süreci tarafından kullanılan kullanıcı kimliği değiştirilemeyebilir. (Artalan süreci aktarımını şifrelemenin başka bir yolu da, ssh(1) kullanarak yerel bir portu uzak bir konağa tünellemek ve uzak konaktaki normal rsync artalan sürecini yalnızca "localhost" bağlantılarına izin verecek şekilde yapılandırmaktır.)
Kullanıcı açısından, uzak kabuk bağlantısıyla uzak artalan süreci çatallayarak aktarımda, normal rsync artalan süreci aktarımında kullanılanla hemen hemen aynı komut satırı sözdizimi kullanılır. Tek fark, uzak kabuğun --rsh=KOMUT seçeneğiyle komut satırında açıkça belirtilmesi gerekliliğidir. (RSYNC_RSH ortam değişkeninin kullanımı aynı işlevselliği sağlamaz.) Örnek:
rsync -av --rsh=ssh konak::modul /hedef
rsync -av -e "ssh -l ssh-kull" rsync-kull@konak::modul /hedef
Bu kullanımda, rsync artalan süreci ssh(1) tarafından sisteme erişilerek başlatılmaktadır (istenirse, ~/.ssh/authorized_keys dosyası üzerinden de zorlanabilir). Ancak, artalan sürecine (uzak kabuk uygulaması ile değil) doğrudan erişilecekse sürecin önceden çalıştırılmış olması gerekir.
Bir rsync artalan sürecine bağlanabilmek için uzak sistemde rsync artalan sürecinin çalışmakta olması gerekir (veya belli bir porttan gelen bağlantıda bir rsync artalan sürecini çatallaması için inetd benzeri bir sürecin yapılandırılması gerekir). Gelen soket bağlantılarını işleyecek bir artalan sürecinin nasıl başlatılacağı hakkında bilgi için bkz: rsyncd.conf(5) -- bu, artalan sürecinin yapılandırma dosyasıdır ve artalan sürecinin nasıl çalıştırılacağına ilişkin tüm ayrıntıları içerir (artalan süreci ve inetd yapılandırmaları dahil).
Uzak kabuk aktarımlarından biri kullanılacaksa rsync artalan sürecini başlatmak gerekmez.
rsync, belirtilen dosya adlarını her zaman dahili aktarım listesinde sıralar. Aynı adlı dizinlerin içerikleri birleştirilerek, yinelenen dosya adlarını kaldırmak kolaylaşır, yoksa dosyalar komut satırında verilenden farklı bir sırada aktarıldığında birilerinin kafası karışabilirdi.
Belli bir dosyanın diğerlerinden önce aktarılması gerekirse, dosyalar farklı rsync oturumlarında aktarılabileceği gibi --delay-updates seçeneği de kullanılabilir (ikincisi sıralı dosya aktarımını etkilemez ama son dosya güncelleme aşaması daha hızlı olur).
Burada rsync kullanımıyla ilgili bazı örneklere yer verilmiştir.
Büyük MS Word dosyaları ve eposta dizinlerinden oluşan eşimin ev dizinini yedeklemek için her gece bir PPP bağlantısı üzerinden bunları kendi makinemin arvidsjaur dizinine şöyle bir cron işi ile aktarıyorum:
rsync -Cavz . arvidsjaur:backup
get:
rsync -avuzb --exclude ’*~’ samba:samba/ . put:
rsync -Cavuzb . samba:samba/ sync: get put
"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"
Burada rsync’de kullanılabilen seçeneklerin bir özetine yer verilmiştir. Bu seçenekler bir sonraki bölümde ayrıntılı olarak açıklanmıştır.
--verbose, -v çıktı daha ayrıntılı olur --quiet, -q hatalar dışında bilgi verilmez --info=SÇNK ince taneli bilgilendirici ayrıntılama --debug=SÇNK ince taneli hata ayıklayıcı ayrıntılama --stderr=e|a|c std hata çıktı kipi değişir (ön: errors) --quiet, -q hata olmayan iletiler baskılanır --no-motd süreç kipi MOTD baskılanır --checksum, -c sadece toplam sağlamaya bakılır, zaman ve
boyut değişikliklerine bakılmaz --archive, -a arşiv kipi; -rlptgoD (-H’sız) ile aynı --no-SEÇENEK belirtilen seçeneği olumsuzlar (--no-D gibi) --recursive, -r dizinlerin alt dizinlerine inilir --relative, -R göreli dosya yolları kullanılır --no-relative --relative kapatılır --no-implied-dirs -R uygulanmış dizinler gönderilmez --backup, -b yedekleme yapılır (--suffix ve
--backup-dir seçeneklerine bakın) --backup-dir=DİZİN sadece belirtilen dizinin içeriği
yedeklenir --suffix=SONEK yedekleme soneki
(--backup-dir yoksa ~ öntanımlıdır) --update, -u hedeftekiler daha yeniyse bu dosyalar
atlanır --inplace hedef dosyaları yerinde günceller --append hedef kısaysa ve eşit olacaksa veriyi ekler --append-verify eski veri sağlama toplamına eklenir --dirs, -d altdizinlere inmeden dizinleri aktarır --old-dirs, --old-d eski rsync ile iletişimde --dirs gibidir --mkpath hedefin yol bileşeni oluşturulur --links, -l sembolik bağları sembolik bağ olarak
kopyalar --copy-links, L sembolik bağ değil bağın son hedefi
kopyalanır --copy-unsafe-links sadece güvensiz sembolik bağlar
dönüştürülür --safe-links ağacın dışını hedefleyen sembolik
bağlar yoksayılır --munge-links sembolik bağı bağ değil dosya olarak aktarır --copy-dirlinks, -k sembolik bağı hedefindeki dosyaya dönüştürür --keep-dirlinks, -K sembolik bağlı dizinler alıcıda dizin
yapılır --hard-links, -H sabit bağlar korunur --perms, -p izinler korunur --executability, -E çalıştırılabilirlik korunur --chmod=CHMOD dosya ve/ya dizin izinleri korunur --acls, -A ACLler korunur (--perms uygular) --xattrs, -X ek öznitelikler korunur --owner, -o sahip korunur (sadece root) --group, -o grup korunur --devices, -D aygıtlar korunur (sadece root) --copy-devices aygıt içeriğini normal dosya gibi kopyalar --write-devices aygıtlara dosya gibi yaz (--inplace uygula) --specials özel dosyalar korunur -D --devices --specials kullanımına eşdeğer --times, -t zamanlar korunur --atimes, -U erişim zamanları korunur --open-noatime açılan dosyaların erişim zamanı değiştrlmez --crtimes, -N oluşturulma zamanları korunur (yeni-lik) --omit-dir-times, -O zamanlar korunurken dizinler bunun
dışında tutulur --super alıcıya root’un işlerini de yapmasını söyler --fake-super xattr’lerle ayrıcalıklıları saklar/kurtarır --sparse, -S seyrek dosyaları en verimli şekilde
elde eder --preallocate hedef dosyaları yazmadan önce yer ayırır --dry-run, -n işlemi yapıyormuş gibi gösterir ama yapmaz --whole-file, -W dosyaları tamamen kopyalar
(rsync algoritması ile farkları değil) --checksum-choice=AD sağlama toplamı algoritmasını seçer (--cc gibi) --one-file-system, -x dosya sistemi sınırlarının dışına çıkılmaz --block-size=BOYUT, -B sabit bir blok boyunda sağlama toplamına
zorlar --rsh=KOMUT, -e kullanılacak uzak kabuk uygulaması
belirtilir --rsync-path=UYGULAMA uzak makinede rsnc’in çalıştıracağı
uygulama --existing sadece hedefte mevcut olan dosyalar
güncellenir --ignore-existing hedefte mevcut olan dosyalar yoksayılır --remove-source-files gönderen dosyaları eşzamanlı siler (dizinsiz) --del --delete-during ile aynı --delete göndericide olmayan dosyalar alıcıda
silinir --delete-before alıcıda aktarım öncesi silme yapılır
(öntanımlı) --delete-during alıcıda aktarım sırasında silme yapılır --delete-delay silinenleri saptar, aktarım sonrası siler --delete-after alıcıda aktarım sonrası silme yapılır --delete-excluded alıcıda ayrıca dışlanmış dosyalar da
silinir --ignore-missing-args kaynakta belirtilmeyenleri hatasız yoksayar --delete-missing-args kaynakta belirtilmeyenler hedefte silinir --ignore-errors G/Ç hataları olsa da siler --force dizinler boş olmasa bile silinir --max-delete=SAYI SAYIdan fazla dosya silinmez --max-size=BOYUT BOYUTtan büyük dosyalar aktarılmaz --min-size=BOYUT BOYUTtan küçük dosyalar aktarılmaz --max-alloc=BOYUT bellek ayırma sınırını değiştirir --partial kısmen aktarılmış dosyalar tutulur --partial-dir=DİZİN kısmen aktarılmış dosyalar DİZİNde tutulur --delay-updates güncellenecek tüm dosyalar sona bırakılır --prune-empty-dirs, -m dosya listesindeki boş dizinleri budar --numeric-ids kullanıcı/grup kimliklerini isimlerle
eşleştirmez --usermap=İSİM özel kullanıcı adı eşlemi --groupmap=İSİM özel grup adı eşlemi --chown=KULL:GRUP basit kullanıcı/grup eşlemi --timeout=SÜRE G/Ç zamanaşımını SÜRE saniyeye ayarlar --contimeout=SÜRE bağlantı zamanaşımını SÜRE saniyeye ayarlar --ignore-times, -I zaman ve boyut bakımından eşleşen dosyalar
atlanmaz --size-only boyutları aynı olan dosyalar atlanır --modify-window=SAYI doğruluğu arttırmak için değişiklik
zamanları karşılaştırılır --temp-dir=DİZİN, -T geçici dosyaları DİZİNde oluşturur --fuzzy, -y hedefte dosya yoksa benzerini bulur --compare-dest=DİZİN alınan dosyaları ayrıca DİZİNdekilerle
karşılaştırır --copy-dest=DİZİN DİZİNde değişmemiş dosyaları hedefe kopyalar --link-dest=DİZİN değişmediyse DİZİNdeki dosyalara sabit bağ --compress, -z aktarım sırasında dosya verisi sıkıştırılır --compress-choice=STR sıkıştırma algoritması belirtir (--zc gibi) --compress-level=SAYI sıkıştırma seviyesi belirtir (--zl gibi) --skip-compress=LISTE uzantısı LİSTEdeki dosyalar sıkıştırılmaz --cvs-exclude, -C dosyalar CVS’nin yaptığı gibi yoksayılır --filter=KURAL, -f bir dosya süzme kuralı ekler -F --filter=’dir-merge /.rsync-filter’ ve
yinelemeli: --filter=’- .rsync-filter’
ile aynı --exclude=KALIP KALIP ile eşleşen dosyalar dışlanır --exclude-from=DOSYA dışlama kalıpları DOSYAdan okunur --include=KALIP KALIP ile eşleşen dosyalar dışlanmaz --include-from=DOSYA dışlanmayan kalıplar DOSYAdan okunur --files-from=DOSYA aktarılacak dosyaların isimlerinin listesi
DOSYAdan okunur --from0, -0 *from seçeneklerindeki dosya listeleri boş
karakter sonlandırmalı kabul edilir --old-args eski tarz boşluk ayıklaması etkin olur --protect-args, -s boşluk ayıklama yok; yalnız jokerler --copy-as=KULL[:GRUP] kopyalama içim kullanıcı ve seçimlik grup --address=ADRES giden soketine adresi bağlar --port=PORT başka bir port belirtmek için --sockopts=SÇNK özel TCP SeÇeNeKleri belirtilir --blocking-io uzak kabukta engellemeli G/Ç kullanılır --outbuf=N|L|B çıktı tamponu biçim: None, Line, Block
yok, satır, blok --stats dosya aktarımı sırasında durum bilgileri
verir --8-bit-output, -8 yüksek bitli karakterler çıktıda öncelenmez --human-readable, -h okunabilen sayılar çıktılanır --progress aktarım sırasında gelişimi gösterir -P --partial --progress ile aynı --itemize-changes, -i tüm güncellemeler için bir değişiklik
özeti çıktılar --remote-option=SÇN, -M SEÇENEK sadece uzak taraf gönderilir --out-format=BÇM çıktı belirtilen BiÇeMde güncellenir --log-file=DOSYA günlük belritilen DOSYAya kaydedilir --log-file-format=BÇM günlük belirtilen BiÇeM ile güncellenir --password-file=DOSYA parola DOSYAdan okunur --early-input=DOSYA sürecin başta çalıştıracağı DOSYA --list-only dosyaları kopyalamaz, sadece listeler --bwlimit=KBPS saniyede kBayt cinsinden G/Ç band genişliği --stop-after=DAK DAK dakika sonra rsync durdurulur --stop-at=y-m-dTh:m rsync belirtilen zamanda durdurulur --write-batch=DOSYA bir toplu işlemli güncellemeyi DOSYAya yazar --only-write-batch=DOSYA --write-batch gibi ama hedef güncellenmez --read-batch=DOSYA bir toplu işlemli güncellemeyi DOSYAdan okur --protocol=SAYI eski protokol sürümüne zorlar --iconv=DNŞM dosyalara karakter kümesi dönüşümü ister --checksum-seed=SAYI blok/dosya sağlama toplamı tohumunu ayarlar --ipv4, -4 IPv4 tercih edilir --ipv6, -6 IPv6 tercih edilir --version, -V sürüm + diğer bilgileri basar ve çıkar --help, -h bu yardım iletisini gösterir ve çıkar
--daemon bir rsync artalan süreci olarak çalışır --address=ADRES belirtilen adres kullanılır --bwlimit=KBPS saniyede kBayt cinsinden G/Ç band genişliği --config=DOSYA rsyncd.conf yerine kullanılacak DOSYA --dparam=YENİSİ, -M genel sunucu yapılandırması geçersiz olur --no-detach üst süreçten ayrık çalışmaz --port=PORT belirtilen PORTu dinler --log-file=DOSYA "günlük dosyası" ayarları geçersiz olur --log-file-format=BÇM "günlük biçemi" ayarları geçersiz olur --sockopts=SÇNKLER özel TCP seçenekleri belirtilir --verbose, -v ayrıntı düzeyini arttırır --ipv4, -4 IPv4 tercih edilir --ipv6, -6 IPv6 tercih edilir --help, -h --daemon bu yardım iletisini gösterir ve çıkar
rsync hem kısa (tek tire artı harf) hem de uzun seçenekleri (çift-tire artı sözcük) kabul eder. Aynı amaca yönelik birden fazla seçenek varsa aralarına virgül konarak listelenmiştir. Bir seçenek girdi alıyorsa ve sadece uzun seçenekte belirtilmişse, girdinin kısa seçenekte için de kullanılması zorunludur. Bazı seçenekler ise sadece uzun seçeneklerden oluşur, kısaları yoktur. ’=’ işareti içeren seçeneklerde ’=’ isteğe bağlıdır; ’=’ yerine boşluk kullanılabilir. girdileri kabuk yorumlamasından korumak için önceleyerek belirtmek gerekebilir. Bir dosya yolundaki yaklaşık imi (~) kabuk tarafından ev dizininiz olarak yorumlanır, bu nedenle --option=~/foo kullanımında yaklaşık iminin kabuk tarafından ev dizininiz olarak yorumlanabilmesi için ’=’ işareti yerine boşluk kullanılmalıdır.
Çıktıda, lisans ve telif hakkı bilgilerinden başka rysnc sitesine bir bağlantı, öntanımlı sıkıştırma ve sağlama toplamı algoritmalarının listesi ile derlenmiş yeteneklerin listesi bulunur.
Çalıştırma sonu özeti, oturum boyunca uzak rsync’e (yerel kopyalamada alıcı tarafa) gönderilen ve alınan bayt sayısını ve saniyede aktarılan bayt sayısını gösterir. İkinci satır, rsync’in oturumda aktaracağı dosyaların toplam bayt sayısı ile gönderilen ve alınan baytların bunların toplamına oranları (bunlar gerçekten daha iyi hissettiren, daha büyüğün daha iyi olduğu sayılardır) gösterilir. Bu değerler ayrıca, --human-readable (veya --no-human-readable) seçenekleri kullanılarak insan tarafından daha fazla (veya daha az) okunabilir duruma da getirilebilir.
Günümüz rsync’inde, -v seçeneği --info ve --debug seçeneklerinin birlikte kullanımına eğdeğer bir çıktı üretir. Ayrıntı düzeyi arttıkça her bilginin ayrıntı düzeyi aynı oranda artmadığından -v seçeneği yerine veya birlikte bu yeni seçeneklerin kullanımı tercih edilebilir. Hem --info hem de --debug, ayrıntıdaki her artış için tam olarak hangi ayarlamaların yapıldığını belirten bir yardım istemine de sahiptir.
Bununla birlikte, artalan sürecinin "azami ayrıntı" ayarlarının, artalan süreci tarafında hangi seçenekleri ne kadar yüksek bir ayrıntıyla sınırlayabileceği de dikkate alınmalıdır. Örneğin azamilik 2 ise, -vv ile ayarlanandan daha yüksek bir değere ayarlanan info ve debug seçeneklerinin ayrıntı düzeyi, artalan süreci oturumunun -vv düzeyine indirilir.
rsync -a --info=progress2 kaynak/ hedef/ rsync -avv --info=stats2,misc1,flist0 kaynak/ hedef/
Bu seçenek 3.1.0 sürümünde eklenmiştir, bu nedenle sunucu tarafındaki daha eski bir rsync, ince ayar girişimlerini reddedebilir (sunucuya bir veya daha fazla seçenek gönderilmesi gerekiyorsa ve sunucu bunları anlamayacak kadar eskiyse). Bir artalan süreciyle çalışılacaksa yukarıdaki azami ayrıntı uyarısına da bakmakta yarar vardır.
rsync -avvv --debug=none kaynak/ hedef/ rsync -avA --del --debug=del2,acl kaynak/ hedef/
3.2.0 sürümünden itibaren, her aktarım tarafı için farklı hata ayıklama değerleri belirlemenize ve rsync sürümlerinden yalnızca birinde bulunan yeni bir hata ayıklama seçeneğini belirtmenize izin vermek için bu seçenek, artık sunucu tarafına otomatik olarak iletilmemektedir. Aynı seçeneğin her iki tarafa da uygulanması istenirse, kaşlı ayraç genişletmesini kullanmak, kod yazmaktan kurtulmanın kolay bir yoludur. Aşağıdaki komut, zsh(1) ve bash(1)’ta çalışır:
rsync -aiv {-M,}--debug=del2 kaynak/ hedef/
Bu seçenek rsync’in daha fazla dosya aktarmasına sebep olduğundan, rsync’in birkaç dosya aktarmasına sebep olan --ignore-existing ve --ignore-non-existing seçenekleriyle karşılaştırıldığında kafa karıştırıcı olabilir.
Tüm aktarımlarda nanosaniyelik karşılaştırmanın öntanımlı olması istenirse bir ~/.popt dosyası oluşturulup içine şu satırlar konabilir:
rsync alias -a -a@-1 rsync alias -t -t@-1
Gönderen taraf, kullanılabilir dosyaların listesini oluşturmak için dosya sistemini tararken sağlama toplamlarını da üretir. Alıcı taraf ise, sağlama toplamlarını değişmiş dosyaları tararken üretir ve gönderici taraftakiyle aynı boyuttaki dosyalarda sağlama yapar; boyutları veya sağlama toplamaları değişen dosyalar aktarım için seçilir.
rsync’in, dosya aktarılırken oluşturulan dosya sağlama toplamlarını sınayarak, aktarılan her dosyanın alıcı tarafta doğru şekilde yeniden oluşturulduğunu daima doğruladığı unutulmamalıdır. Ancak bu aktarım sonrası otomatik doğrulamanın, bu seçeneğin aktarım öncesi yaptığı “Bu dosyanın güncellenmesi gerekiyor mu?” sınaması ile hiçbir ilgisi yoktur.
Kullanılan sağlama toplamı üzerinde, istemci ve sunucu arasında uzlaşım otomatiktir, ancak --checksum-choice (--cc) seçeneği veya bu seçeneğin açıklamasında bahsi geçen RSYNC_CHECKSUM_LIST ortam değişkeni kullanılarak bu geçersiz kılınabilir.
ACL’lerin (-A), ek özniteliklerin (-x), erişim zamanlarının (-U), oluşturma zamanlarının (-N) korunmasını veya sabit bağların bulunmasını ve korunmasını (-H) sağlayan seçeneklerin belirtilmemesine özen gösterilmelidir.
Bir örnek olarak, -rlptgoD seçeneklerine eşdeğer olan -a seçeneğinde sadece -o seçeneğinin uygulanmaması istenirse -a seçeneğini -rlptgD’ye dönüştürüp kullanmak yerine -a --no-o (yani, --archive --no-owner) kullanılabilirdi.
Seçeneklerin birbirlerine göre konumları da önemlidir: -a --no-r kullanımının tersine --no-r -a kullanıldığında -r tekrar etkin olur. Bunun yanında, çeşitli seçeneklerin öntanımlı durumlarını etkileyerek -a seçeneğinin anlamını oldukça değiştiren --files-from seçeneğinin yan etkisi konumsal bile değildir. Daha fazla bilgi için bkz: --files-from
Aktarılacak dosyaların listesini oluşturmaya yönelik arttırımlı özyinelemeyle ilgili bilgiler için --inc-recursive seçeneğine bakılabilir.
Arttırımlı özyineleme, dosyalar aktarılmaya başlanmadan önce tüm dosya hiyerarşisinin taranmasını gerektirmediğinden arttırımsız olana göre aktarımın daha çabuk başlamasını sağlar. Kaynak dosyalarda özyineleme etkin değilse bu seçenek etkisizdir.
Bazı seçenekler rsync’in dosya listesinin tamamını bilmesini gerektirir, dolayısıyla bu seçenekler arttırımlı özyineleme kipini iptal eder. Arttırımlı özyinelemeyi iptal eden seçenekler:
--delete-before (--delete seçeneğinden önce öntanımlıydı) --delete-after --prune-empty-dirs --delay-updates
Arttırımlı özyinelemenin tek yan etkisi, özyinelemeli olarak taranan bir dizindeki eksik alt dizinlerin (öntanımlı olarak) özyinelemeden önce oluşturulmasıdır. Bu erken oluşturma aşaması (arttırımsız olanın tersine) rsync’in bitmiş dizinin değişiklik zamanını (özyinelemeli kopyalama bitene kadar geciktirmek zorunda kalmadan) hemen tanımlamasını sağlar. Ancak, daha sınırlayıcı ayrıcalıklar bu alt dizinlere kopyalama bitmeden atanmaz. --omit-dir-times seçeneği kullanılarak bu erken oluşturma aşamasından kaçınılabilir.
Arttırımlı özyineleme --no-inc-recursive (--no-i-r>) seçeneği ile iptal edilebilir.
rsync /foo/bar/foo.c remote:/tmp/
rsync -R /foo/bar/foo.c remote:/tmp/
rsync 3.0.0 ve sonrasında, dosya yolu aslında sembolik bağ olsa bile dosya listesindeki örtük dizinler daima gerçek dizin olarak gönderilir. Bu, dosya yolunu kopyalarken bir sembolik bağın varlığını fark etmediğiniz durumda beklenmeyen bazı davranışları önler. Bir sunucu tarafı sembolik bağlı kopyalamak istiyorsanız, hem yolu ile birlikte sembolik bağı hem de gerçek yolu ile birlikte hedef dizini ekleyin. Gönderen tarafta daha eski bir rsync ile uğraşıyorsanız, --no-implied-dirs seçeneğini kullanmanız gerekebilir.
Ayrıca, belirtilen her yol için, örtük dizin olarak gönderilen dizin miktarını da sınırlamak mümkündür. Gönderen tarafta 2.6.7 ve üstü bir rsync olması durumunda, kaynak yola aşağıdaki gibi bir nokta ve eğik çizgi yerleştirebilirsiniz:
rsync -avR /foo/./bar/baz.c uzak:/tmp/
(cd /foo; rsync -avR bar/baz.c uzak:/tmp/)
rsync -avR --rsync-path="cd /foo; rsync" uzak:bar/baz.c /tmp/
Örneğin, bir komut satırı girdisini veya bir gönderici dosya girdisi ile rsync’in "yol/foo/dosya" dosyasını aktarması istenirse --relative seçeneği de kullanılmışsa buradaki "yol" ve "yol/foo" örtük dizinlerdir. "yol/foo", hedef sistemdeki ""bar"a bir sembolik bağ ise, alıcı rsync normalde "yol/foo"yu siler, onu bir dizin olarak yeniden oluşturur ve dosyayı yeni dizine yerleştirir. --no-implied-dirs seçeneği ile, alıcı rsync, mevcut yol elemanlarını kullanarak "yol/foo/dosya"yı günceller; bu, "yol/bar" dosyasının oluşturulmasının sona erdiği anlamına gelir. Bu bağ korumasını gerçekleştirmenin bir başka yolu da --keep-dirlinks seçeneğini kullanmaktır (bu, aktarımın geri kalanındaki dizin sembolik bağlarını da etkiler).
3.0.0’dan eski bir rsync’den dosya kopyalarken, gönderen tarafta bir sembolik bağ varsa ve örtük dizinlerin normal dizinler gibi aktarılması isteniyorsa bu seçeneğin kullanılması gerekebilir.
Eğer --backup-dir seçeneğini belirtmezseniz:
Göreli bir yol belirtilirse, yedekleme dizininin hedef dizine göreli olacağını unutulmamalıdır, bu nedenle muhtemelen mutlak bir yol veya “../” ile başlayan bir yol belirtmek gerekebilir. Alıcı rsync artalan süreciyse, yedekleme dizini modülün yol hiyerarşisinin dışına çıkamaz, bu nedenle DİZİNi silmemeye veya içine kopyalamamaya özen göstermek gerekir.
Dizinlerin, sembolik bağların veya diğer özel dosyaların kopyalanmasını etkilemez. Ayrıca, gönderici ve alıcı arasındaki dosya biçemi farkı, nesneler üzerinde hangi tarih olursa olsun, güncelleme için her zaman yeterince önemli kabul edilir. Başka bir deyişle, hedefteki bir dosyayı içeren dizin kaynakta da varsa, aktarım zaman damgalarına bakılmaksızın gerçekleşir.
Bu seçenek bir aktarım kuralıdır, dışlama kuralı değildir, bu nedenle dosya listelerine giren verileri etkilemez ve dolayısıyla silme işlemlerini de etkilemez. Sadece alıcının aktarılmasını istediği dosyaların sayısını sınırlar.
Bunun bazı yan etkileri vardır:
--partial seçeneğinin uygulanmasını sağlar (kesintiye uğrayan aktarım dosyayı silmez), dolayısıyla --partial-dir ve --delay-updates seçenekleri ile birlikte kullanılamaz. rsync 2.6.4’ten önce bu seçenek, --compare-dest ve --link-dest ile de uyumlu değildi.
rsync, dosyada içeriğini tamamen doğrulamadan büyüyen dosyayı yerinde günceller (yalnızca eklediği içeriği doğrular). rsync, alıcı tarafta göndericideki dosyadan daha kısa olmayan tüm dosyaları atlar (bu, yeni dosyaların da aktarıldığı anlamına gelir). Ayrıca, gönderme uzlaşımları sırasında gönderen taraftaki boyutu kısalan dosyaları da atlar (bu olduğunda rsync "küçülen dosya" uyarısı yapar).
Dosyanın aktarımına gerek yoksa ya da bir dizinin veya sıradan olmayan dosyaların güncellenmesini etkilemiyorsa, dosyanın içerik dışı özniteliklerinin (örneğin, izinler, sahiplik ve benzerlerinin) güncellenmesini engellemez.
--files-from ve --list-only seçeneklerinin (örtük --list-only dahil) yanında --recursive belirtilmezse, --dirs seçeneği örtük olarak uygulanır (böylece dizinler de listede görünür). Bunun olmaması istenirse --no-dirs (veya --no-d) belirtilebilir.
Ayrıca, geriye uyumluluğa yardımcı bir seçenek de vardır: --old-dirs (--old-d) seçeneği, taraflarda eski bir rsync bulunması durumunda özyineleme olmadan tek bir dizini listelemek için -r --exclude=’/*/*’ çözümünün kullanılmasını sağlar.
Aşağıdaki örnekte, foo dosyasından alt/dizin dizininde bar dosyası oluşturulmakta, "alt" ve "alt/dizin" dizinleri hedefte yoksa oluşturulmaktadır:
rsync -ai --mkpath foo alt/dizin/bar
rsync -ai --mkpath foo alt/dizin/bar/
Daha ayrıntılı bilgi için bkz: SEMBOLİK BAĞLAR
Bu seçenek, aktarımda hiçbir sembolik bağ bırakmadığından, aktarımdaki sembolik bağları etkileyen diğer seçeneklerin yok sayılmasına sebep olur.
Bu seçenek, sembolik bağların alıcı tarafta da izlenmesine sebep olan bir yan etkiye sahip 2.6.3’ten önceki rsync sürümlerinden farklı olarak, alıcı tarafta zaten mevcut olan sembolik bağların izlenmesi işleminde bir değişiklik yapmaz. Günümüz rsync’i, bu seçeneği uzak alıcıya iletmez (çünkü yalnızca gönderenin bunu bilmesi gerekir), bu nedenle, bu yetersizliğin yalnızca 2.6.7’den eski (alıcıya -L seçeneğinin aktarımı durdurmayan) rsync istemcisi kullananları etkilemesi gerekir.
Alıcı tarafta gerçek bir dizin olarak ele alınması için bir dizine sembolik bağ gereksinimi varsa bkz: --keep-dirlinks (-K).
Daha ayrıntılı bilgi için bkz: SEMBOLİK BAĞLAR
Kesme noktasının, rsync’in ayrıntılı çıktıda bahsetmediği yolun parçası olarak aktarımın tepe dizini oluşuna dikkat edilmelidir. “/kaynak/alt” dizinini “/hedef/” dizinine kopyalarsanız, “alt" dizini aktarımın tepe dizini değil (/kaynak için tepe dizindir) aktarım ağacının içindeki bir addır, dolayısıyla oluşturulan göreli sembolik bağlar, /kaynak ve /hedef dizinlerindeki diğer adlar için meşrudur. Bunun yerine “/kaynak/alt/” (sonda eğik çizgi ile) “/hedef/alt” dizinine kopyalanırsa, “alt" dizini dışındaki hiçbir dosyaya sembolik bağa izin verilmez.
Güvenli sembolik bağların yalnızca --links açıkça veya örtük olarak belirtilmişse kopyalanacağını unutmayın. --copy-unsafe-links seçeneğinin, --copy-links ile birlikte kullanılınca fazladan bir etkisi olmaz.
Daha ayrıntılı bilgi için bkz: SEMBOLİK BAĞLAR
Yok sayma alıcı tarafta gerçekleştiğinden, gönderen taraf geçersiz sembolik bağlara sahip olsa bile (--munge-links kullanılıyorsa) bu yok sayma yine de etkili olacaktır. Ayrıca, silme işlemlerini de etkiler, çünkü dosya aktarımda mevcut ise, sembolik bağın güvenli olmadığı kabul edildiğinde ve atlandığında alıcıdaki karşılığının silinmesini önler.
Sembolik bağların aktarımda koşullu olarak yok sayılabilmesi için bu seçenek --links (veya --archive) ile birlikte kullanılmalıdır. --copy-unsafe-links seçeneğini etkisiz kılar.
Bu seçeneğin --relative ile birlikte kullanımı istenmeyen sonuçlara yol açabilir.
Daha ayrıntılı bilgi için bkz: SEMBOLİK BAĞLAR
Örneğin bir rsync artalan sürecinin yapılandırma dosyasındaki veya rrsync(1) (sınırlı rsync) betiğine aktarılan bir seçenek üzerinden rsync sunucu tarafında bu seçeneği genellikle istemcinin bilgisi dışında etkinleştirir. İstemci tarafında belirtildiğinde, geçersiz sembolik bağlara sahip olan/ihtiyaç duyan istemci tarafıysa seçenek normal olarak belirtilmelidir; geçersiz sembolik bağlara sahip olduğunda/ihtiyaç duyduğunda sunucuya seçenek vermek için -M --munge-links kullanılmalıdır. Yerel bir aktarımda, istemcinin gönderici olduğuna dikkat edin, bu nedenle seçeneğin belirtilmesi sembolik bağları doğrudan geçerli kılarken, uzak seçenek olarak belirtildiğine sembolik bağları geçersiz kılar.
Bu seçeneğin --remote-option aracılığıyla bir artalan sürecine gönderildiğinde hiçbir etkisi yoktur, çünkü artalan süreci geçersiz sembolik bağlar isteyip istemediğini "--munge-symlinks" aracılığıyla yapılandırır.
Sembolik bağ değeri, aktarıma girdikten sonra geçerli/geçersiz duruma getirilir, bu nedenle, sembolik bağları sembolik olmayanlara dönüştüren herhangi bir seçenek, alıcının yaptığı bir seçim olan --safe-links dışında, geçerli/geçersiz kılma işleminden önce gerçekleşir, bu nedenle, karar geçerli/geçersiz kılma değerine dayandırılır. Bu, bir alıcıda geçersiz kılma etkinleştirilmişse, --safe-links kullanmanın tüm sembolik bağların yok sayılmasına neden olacağı anlamına gelir (çünkü hepsi mutlaktır).
rsync’in sembolik bağları geçersiz kılmak için kullandığı yöntem, her birinin değerinin önüne “/rsyncd-munged/” dizgesi koymaktır. Bu, dizin olmadığı sürece bağların kullanılmasını engeller. Bu seçenek etkinleştirildiğinde, bu yol bir dizinse veya bir dizine bir sembolik bağ ise rsync çalışmayı reddedecektir (ancak yalnızca başlangıçta buna bakar). Bir veya daha fazla sembolik bağı yerinde geçerli/geçersiz kılmak için kaynak kodun support dizinindeki "munge-symlinks" python betiğine de bakın.
Bu seçenek olmadan, gönderen taraf bir dizini dizin sembolik bağıyla değiştirmişse, alıcı taraf yeni sembolik bağın yolunda olan her şeyi dizinler dahil siler (--force veya --delete etkili olduğu sürece).
Alıcı taraf için benzer bir seçenek --keep-dirlinks seçeneğidir.
--copy-dirlinks, kaynaktaki dizin sembolik bağlarının tamamına uygulanır. Yalnızca belli birkaç sembolik bağın izlenmesi isteniyorsa, yolların doğru eşleşmesi için --relative seçeneğini kullanarak bunları eğik çizgi sonlandırmalı kaynak girdileri olarak belirtmektir. Örnek:
rsync -r --relative kaynak/./ kaynak/./devam/ hedef/
Daha ayrıntılı bilgi için bkz: SEMBOLİK BAĞLAR
Örneğin, "dosya" dosyasını içeren "foo" dizinini aktardığınızı, ancak "foo"nun alıcıda "bar" dizinine sembolik bağ olduğunu varsayalım. --keep-dirlinks olmadan, alıcıda "foo" sembolik bağı silinir, bir dizin olarak yeniden oluşturulur ve dosya bu yeni dizine kopyalanır. --keep-dirlinks ile alıcıdaki sembolik bağ korunur ve "dosya" içeriği "bar" dosyasına aktarılır.
Daha ayrıntılı bilgi için bkz: SEMBOLİK BAĞLAR
Bu seçenek, hedefteki sabit bağ kalıbının kaynaktakiyle tam olarak eşleşmesini GEREKTİRMEZ. Hedefte ek sabit bağların oluşabileceği durumlar:
Arttırımlı özyineleme etkinse (bkz. --inc-recursive), rsync, başka bir yerde bu içerikler için başka bir bağın bulunduğunu keşfetmeden önce eksik bir sabit bağlı dosyayı aktarabilir. Bu, aktarımın doğruluğunu (yani, hangi dosyaların birbirine sabit olarak bağlı olduğunu) değil, yalnızca verimliliğini etkiler (yani, aktarımda sabit bağlı dosya kümesinin daha sonra bulunabilecek başka bir üyesi olan sabit bağlı bir dosyanın yeni bir ilk kopyası için verilerin kopyalanması). Bu verimsizliği önlemenin tek yolu, --no-inc-recursive seçeneğini kullanarak arttırımlı özyinelemeyi devre dışı bırakmaktır.
Bu seçenek belirtilmediğinde izinler şöyle belirlenir:
Özetle: Hedef dosyalara (hem eski hem de yeni) kaynak izinlerini vermek için --perms kullanılmalıdır. Yeni dosyalara hedefin öntanımlı izinlerini vermek için (mevcut dosyaları değiştirmeden bırakarak), --perms seçeneği olmaksızın --chmod=ugo=rwX kullanılması gerekir (bu, tüm maskelenmemiş bitlerin etkinleştirilmesini sağlar). Bu seçeneklerin daha sonra kolayca yazılması için, ~/.popt adında bir dosya oluşturup komut satırının bu dosyay yazılması ve popt takma adının tanımlanması yeterli olur. Aşağıdaki örnekte, diğer seçeneklere ek olarak hedef dizinin öntanımlı grubunun kullanılması için --no-g seçeneğini de içeren bir takma ad olarak -Z seçeneği tanımlanmaktadır:
rsync alias -Z --no-p --no-g --chmod=ugo=rwX
rsync -avZ kaynak/ hedef/
--perms seçeneğinin belirtilmediği durumda yeni oluşturulan dizinlerde hedefin setgid bitinin korunması özelliği 2.6.7 sürümünde eklenmiştir. Daha eski rsync sürümleri, yeni oluşturulan dizinde hedefin setgid bitini geçersiz kılarken, --perms belirtilmediğinde yeni oluşturulan dosyalar için üç özel izin bitini hatalı bir şekilde koruyordu. rsync 2.6.7 sürümünde ACL yamasına öntanımlı ACL gözlemi eklendi, bu nedenle daha eski (veya ACL-etkin olmayan) rsync’ler, öntanımlı ACL’ler mevcut olsa bile umask’ı kullanır. (Bu davranışları etkileyenin, alıcının rsync sürümü olduğunu unutulmamaldır.)
Bu seçeneğin düzgün çalışabilmesi için kaynak ve hedef ACL’lerinini uyumlu olması gerekir. Uyumlu olmayan ACL’lerin yedeklenmesi ve geri yüklenmesi ile ilgili bilgi için bkz: --fake-super.
Genişletilmiş öznitelik isim alanlarını destekleyen sistemler için, ayrıcalıklı kullancı tarafından yapılan bir kopyalama, sistem.* dışındaki tüm isim alanlarını kopyalar. Normal bir kullanıcı yalnızca user.* isim alanını kopyalar. Normal kullanıcı aidiyetinde olmayan isim alanlarının normal bir kullanıcı olarak yedeklenmesi ve geri yüklenmesi ile ilgili bilgi için bkz: --fake-super.
Yukarıdaki isim alanı yetkilendirmesi x belirteçli süzme seçenekleriyle geçersiz kılınabilir. Ek öznitelikleri etkileyen bir süzme kuralı belirtildiğinde, rsync, kullanıcının kendi sistem.*/user.* süzme kurallarını uygulamasını ve ayrıca kopyalanacak veya silinecek ek öznitelik adlarına ilişkin ek süzme işlemlerini yapmasını gerektirir. Örneğin, sistem.* isim alanını atlamak için şu belirtilebilir:
--filter=’-x system.*’
--filter=’-x! user.*’
--filter=’-xr *’
chmod(1) kılavuz sayfasında belirtilen normal çözümleme kurallarına ek olarak, ’D’ ile öncelenerek belirtilen öğeler yalnızca dizinlere, ’F’ ile öncelenerek belirtilen öğeler ise yalnızca dosyalara uygulanır. Örneğin, aşağıdakiler tüm dizinlerin setgid olarak imlenmesini, dosyalara başkaları tarafından yazılamamasını, kullanıcı ve grup tarafından yazılabilmesini ve tüm bitlerle tutarlı çalıştırılabilirlik sağlayacaktır:
--chmod=Dg+s,ug+w,Fo-w,+X
--chmod=D2775,F664
Aktarımdaki dosyalara uygulanabilen izin değerlerinin --perms ve --executability seçenekleriyle verdiği sonuçları incelemek için bu seçeneklerin açıklamalarına bakılabilir.
Sahiplik koruması, ilişkilendirmenin öntanımlı olarak kullanıcı adıyla yapılmasını gerektirir, ancak bazı durumlarda son çare olarak kullanıcı kimliği de kullanılabilir (Bu konu --numeric-ids seçeneğinin açıklamasında daha ayrıntılı incelenmiştir).
Grup koruması, ilişkilendirmenin öntanımlı olarak grup adıyla yapılmasını gerektirir, ancak bazı durumlarda son çare olarak grup kimliği de kullanılabilir (Bu konu --numeric-ids seçeneğinin açıklamasında daha ayrıntılı incelenmiştir).
Bu seçenek belirtilmemişse, öntanımlı olarak rsync rastladığı her aygıt dosyası için "skipping non-regular file" (normal dosya olmadığından atlanıyor) uyarısı üretir. Uyarıyı --info=nonreg0 kullanarak susturmak mümkündür.
Bu seçenek belirtilmemişse, öntanımlı olarak rsync rastladığı her özel dosya için "skipping non-regular file" (normal dosya olmadığından atlanıyor) uyarısı üretir. Uyarıyı --info=nonreg0 kullanarak susturmak mümkündür.
Bu seçenek rsync artalan süreci tarafından öntanımlı olarak reddedilir.
Örtük olarak --inplace seçeneğinin uygulanmasını sağlar.
Yinelenirse, aktarım tamamlandıktan sonra rsync’in bir süre daha çalıştırılması gerekmeksizin, gönderici ve alıcı sistemlerin aktarılan dosyaların erişim zamanlarını eşlemesine yardımcı olan --open-noatime seçeneğini örtük olarak etkinleştirir.
Bu seçeneğin ayrıca --inc-recursive seçeneğinde incelendiği gibi arttırımlı özyineleme etkinleştirildiğinde eksik alt dizinlerin önceden oluşturulmasını önleme gibi bir yan etkisi de vardır.
Bu seçenek, ayrıcalıklı kullanıcı olmaksızın verileri yedeklemenin ve uyumsuz sistemlerdeki ACL’leri depolamanın iyi bir yoludur.
Bu seçenek sadece seçeneği kullanan tarafı etkiler. Uzak kabuk bağlantısının uzak tarafını etkilemek için --remote-option (-M) seçeneği kullanılır:
rsync -av -M --fake-super /kaynak/ konak:/hedef/
Bu seçenek hem --super hem de --no-super seçeneğini geçersiz kılar.
Artalan sürecinin rsyncd.conf(5) dosyasındaki "fake super" modül seçeneğinin açıklamasına da bakılabilir.
Bu seçenek olmadan, büyük dosyaların blokları dosya sisteminde bitişik olmayabilir, ancak bu seçenekle rsync muhtemelen daha yavaş kopyalama yapar. Hedef, genişletme destekleyen bir dosya sistemi (ext4, xfs, NTFS, vb.) değilse, bu seçeneğin hiçbir olumlu etkisi olmayabilir.
--sparse ile birlikte kullanımda çekirdek sürümü ve dosya sistemi türü, (boş karakter dizgeleri tahsisinin aksine) ayrılan veride delikler oluşturmayı destekliyorsa, dosyada yalnızca seyrek bloklar bulunacaktır.
--itemize-changes çıktısının, kuru çalıştırmada ve sonraki gerçek çalıştırmada tamamen aynı olması beklenir (kasıtlı hile ve sistem çağrısı hataları hariç); aynı değilse, bu yazılım hatasıdır. Diğer çıktıların çoğunlukla değişmemesi gerekir, ancak bazı alanlarda farklılık gösterebilir. Özellikle, kuru çalıştırmada dosya aktarımları için gerçek veriler gönderilmez, bu nedenle --progress seçeneğinin hiçbir etkisi olmaz, "gönderilen baytlar", "alınan baytlar", "değişmez veriler" ve "eşleşen veriler" istatistikleri çok küçüktür ve "hızlanma" değeri, dosya aktarımının gerekmediği bir çalıştırmaya eşdeğerdir.
Bkz: Yukarıdaki --whole-file seçeneği.
Algoritma seçenekleri:
auto (öntanımlı otomatik seçim) xxh128 xxh3 xxh64 (diğer adı: xxhash) md5 md4 none
İlk isim veya tek isim olarak "none" belirtilirse --whole-file seçeneği zorlanır ve hiçbir sağlama toplamı sınaması yapılmaz. İkinci veya tek isim olarak "none" belirtilirse --checksum seçeneği belirtilemez.
"auto" seçeneği öntanımlı olup rsync, algoritma seçimini aşağıdaki gibi istemci ve sunucu arasındaki uzlaşıma dayalı olarak yapar:
Aktarımın her iki tarafında da 3.2.0 ve üstü rsync olduğunda, istemcinin ve sunucunun seçenekler listesindeki ilk algoritma seçilir. Ortak bir sağlama toplamı seçeneği bulunamazsa, rsync hata vererek çıkar. Uzak rsync, sağlama toplamı uzlaşımını desteklemek için çok eskiyse, protokol sürümüne göre bir değer seçilir (protokol yaşına göre MD4’ün çeşitli türleri ile MD5 arasından bir seçim yapılır).
Öntanımlı sıra, RSYNC_CHECKSUM_LIST ortam değişkenine boşlukla ayrılmış kabul edilebilir sağlama toplamı adları listesi atanarak özelleştirilebilir. Dizge bir "&" karakteri içeriyorsa, liste "istemci dizgesi & sunucu dizesi" olarak ayrılır, aksi takdirde aynı dizge her ikisi için de geçerli olur. Dizge (veya dizge bölümü) boşluk olmayan karakterler içermiyorsa, öntanımlı sağlama toplamı listesi kullanılır. Bu yöntem, aktarım sağlama toplamını, aktarım öncesi sağlama toplamından ayrı olarak belirlemenize izin vermez ve "auto" ve tüm bilinmeyen sağlama toplamı adlarını yok sayar. Yalnızca geçersiz adlardan oluşan bir liste, başarısız uzlaşımla sonuçlanır.
Bu seçenek ortam değişkeninde belirtilen listeyi geçersiz kılar.
Bu seçenek yinelenirse, rsync tüm bağlama noktası dizinlerini kopyadan çıkarır. Aksi takdirde, karşılaştığı her bağlama noktasında (bağlama noktasının bulunduğu dizininin özelliklerine erişilemediğinden bağlı dizinin özniteliklerini kullanarak) boş bir dizin oluşturur.
rsync’ten sembolik bağları daraltması istendiyse (--copy-links veya --copy-unsafe-links aracılığıyla), başka bir aygıttaki bir dizine giden bir sembolik bağ, bir bağlama noktası olarak değerlendirilir. Dizin olmayanlara sembolik bağlar bu seçenekten etkilenmez.
Bu seçenek bir aktarım kuralıdır, dışlama kuralı değildir, bu bakımdan dosya listelerine giden veriyi ve dolayısıyla silme işlemini etkilemez. Sadece alıcının aktarılmasını istediği dosyaları sınırlar.
Bu seçenek bir aktarım kuralıdır, dışlama kuralı değildir, bu bakımdan dosya listelerine giden veriyi ve dolayısıyla silme işlemini etkilemez. Sadece alıcının aktarılmasını istediği dosyaları sınırlar.
Bu seçenek, --link-dest seçeneğini kullanarak yedekleme yapanlar için kesintiye uğrayan bir yedeklemeyi devam ettirmek gerektiğinde yararlı olabilir. --link-dest kullanımı (düzgün kullanıldığında) yeni bir dizin hiyerarşisine kopyalama yapılmasını sağladığından --ignore-existing seçeneği ile evvelce işlem görmüş dosyaların didiklenmemesi sağlanır (sabit bağlı dosyaların izinlerinde değişiklik yapılmasını önler). Yani, bu seçenek yalnızca hedef hiyerarşi içinde mevcut olan dosyalarla ilgilenir.
--info=skip2 kullanıldığında rsync, BİLGİ’nin "tür değişikliği", "toplam değişiklik" (-c gerektirir), "dosya değişikliği" (hızlı sınamaya dayalı olarak),"öznitelik değişikliği" veya "güncel" anlamına geldiği "DOSYA var (BİLGİ)" iletisini çıktılar. --info=skip1 kullanıldığında ise (örtük olarak -vv uygulayarak) mevcut iletiyi BİLGİ soneki olmadan çıktılar.
Bu seçenek yalnızca hareket görmeyen kaynak dosyalarda kullanılmalıdır. Belirli bir dizinde görünen dosyaların başka bir konağa taşınması için kullanılıyorsa, tamamlanan dosyaların kaynak dizinde doğrudan üzerlerine yazılmadığından, isimlerinin değiştirildiğinden emin olunmalıdır, böylece rsync henüz tam olarak yazılmamış bir dosyayı muhtemelen aktaramayacaktır. Dosyalar önce farklı bir dizine yazılamıyorsa, rsync’in henüz tamamlanmamış dosyaları aktarmaktan kaçınmasını sağlayan bir adlandırma deyimi kullanılmalıdır (örneğin, dosyanın adını yazıldığında “foo.new”, işi bittiğinde “foo” yapmak ve ardından rsync aktarımı için --exclude=’*.new’ seçeneğini kullanmak gibi).
3.1.0 sürümünden başlayarak, dosyanın boyutu veya değiştirilme zamanı değişmemişse, rsync gönderen tarafı silme işlemini bir hata vererek atlayacaktır.
rsync 2.6.7 öncesinde, --recursive etkin olmadıkça bu seçeneğin hiçbir etkisi olmazdı. 2.6.7 sürümünden itibaren, silme işlemi sadece içeriği kopyalanan dizinler için sadece --dirs (-d) etkin olduğunda etkili olur.
Bu seçenek doğru şekilde kullanılmazsa tehlikeli olabilir. Önce --dry-run (-n) seçeneğiyle silinecek dosyaları görüp, önemli dosyaların silinmeyeceğinden emin olduktan sonra asıl işlemi başlatmak çok daha iyidir.
Gönderen tarafta bir G/Ç hatası saptandığında hedefteki dosya silme işlemi iptal edilir. Bu, gönderen tarafın alıcı taraftaki dosyaları tümden silmesi gibi geçici dosya sistemi hatalarına karşı (NFS hataları gibi) bir önlemdir. Bu davranış --ignore-errors seçeneğiyle iptal edilebilir.
--delete seçeneği silme zamanını belirten --delete-* seçenekleriyle, --delete-excluded dahil, herhangi bir sorun olmaksızın birleştirilebilir. Ancak, silme zamanını belirten --delete-* seçeneklerinden biri belirtilmemişse, öntanımlı olarak hedefteki rsync 3.0.0 veya sonraki bir sürümse --delete-during algoritmasını, öncekilerden biri ise --delete-before algoritmasını seçer. Ayrıca bkz: --delete-after ve --delete-delay.
Aktarımın başında silme yapılması, eğer dosya sistemi doluluk bakımından sınırda ise ve ancak fazlalıkların kaldırılmasıyla dosya aktarımı mümkün olabilecekse yararlıdır. Ancak, bu seçenek aktarımın başlamasını geciktirdiğinden aktarımın zamanaşımına uğramasına (--timeout belirtilmişse) sebep olabilir. Ayrıca rsync’i, aktarımdaki tüm dosyaları bellekte bir kerede taramak için eski, artırımlı olmayan yineleme algoritmasını kullanmaya zorlar. (Bkz: --recursive seçeneği).
Ayrıca, yalnızca silme işlemlerinin aktarımın sonunda gerçekleşmesini isteyenler için daha hızlı bir seçim olabilecek --delete-delay seçeneğine de bakılabilir.
Eksik kaynak dosyalar, --list-only çıktısında "*missing" girdisi olarak görünen özel dosya listesi girdileriyle temsil edilir.
3.0.0 sürümünden itibaren, hedefteki gereksiz dosyalar hakkında hiçbiri silinmeden uyarılmak için --max-delete=0 belirtilebilir. Daha eski istemciler bunu "sınırsız" olarak yorumluyordu, bu nedenle istemcinin sürümü bilinmiyorsa, silmeye izin verilmeyeceğini belirtmek için geriye dönük uyumlu bir yol olarak, daha az belirgin olan --max-delete=-1 kullanılabilir (gerçekten eski sürümler, sınır aşıldığında uyarmıyordu).
Bu seçenek bir aktarım kuralıdır, dışlama kuralı değildir, bu nedenle dosya listelerine giren verileri etkilemez ve dolayısıyla silme işlemlerini de etkilemez. Sadece alıcının aktarılmasını istediği dosyaların sayısını sınırlar.
Birim dizgesinin ilk harfi B (bayt), K (kilo), M (mega), G (giga), T (tera) veya P (peta) olabilir. Dizge tek bir karakterse veya kendisine "ib" eklenmişse (örneğin, "G" veya "GiB") bu durumda birimler 1024’ün katlarıdır. "B" ile biten iki harfli bir son ek kullanırsanız (ör. “kb”) 1000’in katları olan birimler elde edersiniz. Dizgenin harfleri, birimi belirten herhangi bir büyük veya küçük harfi içerebilir.
Son olarak, dizge “+1” veya “-1” ile bitiyorsa, belirtilen yönde bir bayt kaydırılır. Mümkün olan en büyük değer genellikle 8192P-1’dir.
Örnekler: --max-size=1.5mb-1 ise 1499999 bayttır ve --max-size=2g+1 ise 2147483649 bayttır.
3.1.0 öncesi rsync sürümlerinde --max-size=0 belirtilemezdi.
3.1.0 öncesi rsync sürümlerinde --max-size=0 belirtilemezdi.
Bunun, ayrılan belleğin toplam boyutu için bir sınır olmadığını unutmayın. Her ayrı tahsis için tutarlılık değeridir.
BOYUT --max-size seçeneğinde açıklanan bir sonekle belirtilebilmektedir. Bir sonek belirtilmezse birim olarak bayt öntanımlıdır.
3.2.3 sürümü itibariyle 0 değeri sınır olmadığını belirtmektedir.
Bu seçenek tarafından desteklenen BOYUT değerlerini kullanarak RSYNC_MAX_ALLOC ortam değişkenine öntanımlı bir değer atayabilirsiniz. Uzak rsync --max-alloc seçeneğini anlamıyorsa, --max-alloc=1g belirterek ortam değişkenindeki değeri geçersiz kılabilirsiniz; "1G" öntanımlı değer olduğundan rsync seçeneği uzak tarafa göndermeyecektir.
3.2.3 sürümü itibariyle, BOYUT --max-size seçeneğinde açıklanan bir sonekle belirtilebilmektedir. Daha eski sürümler BOYUT olarak sadece bayt sayısı kabul ederdi.
Bu seçenek [kullanıcı@]konak::modül/yol girdisi ile birlikte kullanılırsa, uzak makinedeki rsync sunucusunu çalıştırmak için belirtilen uzak kabuk KOMUT’u kullanılacak ve aktarım için uzak makinede çalışan rsync sunucusunun soket bağlantısı değil, uzak kabuk bağlantısı kullanılacaktır. Ayrıca, bkz: RSYNC ARTALAN SÜRECİNE UZAK KABUKTAN BAĞLANMAK
rsync 3.2.0 ve sonrasında, uzak kabuk bağlantısı aracılığıyla artalan sürecine bağlanılırsa RSYNC_PORT ortam değişkeni etkinleştirilir. Öntanımlı artalan süreci portu kullanılacaksa değişkene 0 atanır. Ya da rsync://URL ile veya --port seçeneği ile belirtilen rsync portunun değeri atanır. Bu, betiğin öntanımlı olmayan bir port istenip istenmediğini ayırt etmesine ve ssl veya stunnel yardımcı betiğinin öntanımlı porta veya başka bir porta bağlanmasını sağlar.
KOMUT’un rsync’e tek bir girdi olarak sunulması koşuluyla, KOMUT içinde komut satırı girdileri kullanımına izin verilir. Komutu ve girdileri birbirinden ayırmak için boşluk (sekme veya diğer boşluk karakterlerini değil) kullanılmalıdır. Bir girdideki boşlukları korumak için ise tek ve/veya çift tırnak kullanılabilir (ancak ters eğik çizgileri değil). Tek tırnaklı bir dizge içinde çifte tek tırnak kullanımının tek tırnakla sonuçlandığı, çift tırnak için de benzerinin geçerli olduğunu unutulmamalıdır (ayrıca, kabuğun ve rsync’in hangi tırnakları çözümlediğinin de bilinmesi gerekir). Bazı örnekler:
-e ’ssh -p 2234’ -e ’ssh -o "VekilKomutu nohup ssh firewall nc -w1 %h %p"’
Ayrıca, uzak kabuk uygulaması -e seçeneğindeki gibi değer kabul eden RSYNC_RSH ortam değişkeni kullanılarak da belirtilebilir.
Ayrıca, bu seçenekten etkilenen --blocking-io seçeneğine de bakılabilir.
Aşağıdaki örnekte uzak makinede --relative seçeneği ile kullanmak için farklı bir öntanımlı dizin belirtilmektedir:
rsync -avR --rsync-path="cd /a/b && rsync" konak:c/d /e/
rsync -av -M --log-file=foo -M --fake-super kaynak/ hedef/
rsync -av -x -M --no-x kaynak/ hedef/
Aktarmak istediğiniz her uzak seçenek için ayrı bir -M seçeneği kullanmanız gerektiğini unutmayın. Daha eski rsync sürümlerinde, uzak seçenek girdisi içinde herhangi bir boşluğun varlığı, onun ayrı ayrı uzak girdilere bölünmesine neden olabilir, ancak günümüz rsync’inde bu durum --old-args kullanımını gerektirir.
Yerel aktarım açısından, "yerel" taraf gönderici, "uzak" taraf alıcıdır.
Popt seçenek çözümleme kütüphanesinin bazı sürümlerinde, içinde eşit imi bulunan bir seçeneğin, kısa bir seçenek harfine bitişik olarak kullanılmasını (-M--log-file=/tmp/foo gibi) engelleyen bir yazılım hatası vardır. Kullanılan popt sürümünü etkileyen böyle bir hata varsa, rsync ile birlikte gelen popt sürümü kullanılabilir.
Dışlama listesi aşağıdakilerle ilklendirilir (bunlar kolay bozulan olarak imlenir - bkz: SÜZME KURALLARI):
RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS .make.state .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core .svn/ .git/ .hg/ .bzr/
$HOME/.cvsignore içindeki dosyalarla CVSIGNORE ortam değişkeninde (tüm isimler bir boşlukla ayrılarak belirtilir) listelenen her dosya aralarına boşluk konarak bu listeye eklenir.
Son olarak, .cvsignore dosyası ile aynı dizindeki dosyalardan .cvsignore dosyasında listelenmiş kalıplarla eşleşen dosyalar yok sayılır. rsync’in süzme ve dışlama uyguladığı dosyaların aksine bu kalıplar boşluklarla ayrılır. Daha fazla bilgi için cvs(1) sayfasına bakınız.
Bu seçenek --filter kurallarıyla birlikte belirtilirse, -C seçeneğinin komut satırının neresinde olduğuna bakılmaksızın, CVS dışlananları --filter kurallarının sonuna eklenir. Bu, onlara --filter kurallarına göre daha düşük öncelik verir. CVS dışlananlarının --filter kurallarına nasıl ekleneceği belirlenmek istenirse, -C seçeneği, komut satırında değil --filter=:C veya --filter=-C biçeminde --filter seçeneğinin bir uzantısı olarak belirtilebilir (bu, komut satırında belirtilebileceği gibi süzme dosyasına ":C" ve "-C" kuralları yerleştirilerek de belirtilebilir). İlk kural her dizinde .cvsignore dosyalarına bakılmasını, ikinci kural ise yukarıda bahsedilen CVS dışlananlarının bir kereliğine dahil edilmesini sağlar.
Dışlanacak dosyaların listesini oluşturmak içim komut satırında çok sayıda --filter seçeneği belirtebilirsiniz. KURAL boşluk karakterleri içeriyorsa, kabuğun kuralı tek bir terim olarak aktarabilmesi için tırnak içine alınması gerekir. Kılavuzun devamında belirtildiği gibi, kuralı girdileriyle ilişkilendirmek için boşluk yerine alt çizgi konulabilir.
Bu seçenek hakkında daha ayrıntılı bilgi için bkz: SÜZME KURALLARI
--filter=’: /.rsync-filter’
--filter=’- .rsync-filter’
Bu seçenek hakkında daha ayrıntılı bilgi için bkz: SÜZME KURALLARI
Bu seçenek hakkında daha ayrıntılı bilgi için bkz: SÜZME KURALLARI
DOSYA olarak - belirtilmişse, liste standart girdiden okunur.
Bu seçenek hakkında daha ayrıntılı bilgi için bkz: SÜZME KURALLARI
DOSYA olarak - belirtilmişse, liste standart girdiden okunur.
rsync -a --files-from=/tmp/foo /usr uzak:/yedek
Ek olarak, eğer DOSYA’yı "uzak:" öneki ile belirtirseniz, bu dosya yerel konaktan değil, uzak konaktan okunur (konak eşleştirmesi aktarımın sonunda yapılır). Bir kısaltma olarak, "aktarımın yapıldığı uzak konak" anlamında sadece ":" önekini de kullanabilirsiniz. Örnek:
rsync -a --files-from=:/yol/dosya-listesi uzak:/ /tmp/kopya
--iconv ve --protect-args seçenekleri belirtilmişse ve --files-from seçeneği dosyaları bir konaktan diğerine gönderiyorsa aktarılan dosyaların karakter kümesi, gönderen konağın karakter kümesinden alıcı konağın karakter kümesine dönüştürülür.
Günümüz rsync’inde öntanımlı olan, uzak kabuğa gönderilen girdilerde kabuğun özel karakterlerinin (boşluklar dahil) ters eğik çizgi ile öncelenmesidir. *, ?, [, ] joker karakterleri , --usermap gibi seçenek girdilerinde öncelenirken dosya adı girdilerinde öncelenmez (birden çok dosya adına genişlemeleri sağlanır).
Dosya adlarında eski tarz sözcük ayrıştırması bir betikle yapılıyorsa, bu seçenek bir kez belirtilir. Uzak kabukta ters eğik çizgi öncelemesi sorunluysa, iki kez belirtilir.
Bu seçenek yerine RSYNC_OLD_ARGS ortam değişkeni de kullanılabilir. Ortam değişkenin değeri "1" ise rsync öntanımlı olarak tek seçenekli, "2" veya daha büyük ise, rsync öntanımlı olarak yinelenen seçenek durumuna geçer. "0" ise, öntanımlı önceleme davranışı elde edilir. Ortam değişkeninin değeri, komut satırından belirtilen olumlu veya olumsuz seçenekler tarafından geçersiz kılınabilir (--no-old-args olumsuz seçenektir).
Bu seçenek --protect-args seçeneğiyle birlikte kullanılamaz.
Bu, 3.2.4’te eklenen, girdilerin yeni tarz ters eğik çizgi öncelemesine benzer, ancak bazı ek özellikler de desteklenir ve işlem, uzak kabuktaki ters eğik çizgi öncelemesine bırakılmaz.
Bu seçenek --iconv ile birlikte kullanıldığında, uzak taraftaki ilgili girdilerin karaktar kümesi yerelinkinden uzağınkine dönüştürülür. Bu dönüşüm joker karakterler genişletilmeden önce yapılır. Ayrıca bkz: --files-from.
Bu seçenek yerine RSYNC_PROTECT_ARGS ortam değişkeni de kullanılabilir. Sıfırdan farklı bir değer atanırsa işlem öntanımlı olarak etkin olur, aksi takdirde öntanımlı olarak etkin olmaz. Ortam değişkeninin değeri, komut satırından belirtilen olumlu veya olumsuz seçenekler tarafından geçersiz kılınabilir (--no-s ve --no-protect-args olumsuz seçeneklerdir). Bu ortam değişkeni ayrıca sıfırdan farklı bir değerle atanmış RSYNC_OLD_ARGS ortam değişkeni tarafından da geçersiz kılınabilir.
3.0.0 öncesi bir rsync ile etkileşirken bu seçeneği iptal etmeniz gerekebilir.
Bu seçenek --old-args seçeneği ile birlikte kullanılamaz.
Bu seçeneğin, seçenekleri betiğin incelemesinden gizleyen kısıtlı rsync betiğinin (rrsync) kullanımıyla uyumlu olmadığını unutulmamalıdır.
Bu seçenek, sistem dosyalarının root yetkileriyle okunup yazılmadığından emin olunmak istenmesi durumunda ve rsync’in, üzerinde anlık değişiklikler olabilecek bir dizinde root olarak dizin içinden veya dışından çalıştırılma riskini azaltmaya yardımcı olabilir. Seçenek, bazen root seviyesinde konak erişim yetkilerinin kullanımına ihtiyaç duyulan bir ortamda rsync’i belirtilen kullanıcı olarak çalıştırabilmeyi mümkün kılar. Böylece, uzak kabuk veya artalan süreci bağlantısından sonra kopyalama aşaması için rsync’in root yetkilerini belirtilen kullanıcya terketmesi sağlanabilir.
Seçenek, aktarım yerelken iki tarafıda etkilerken yerel olmadığı durumda yalnızca yerel tarafı etkiler. Uzak tarafı etkilemek için --remote-option kullanılır. Yerel aktarım için, aktarımın uzak tarafını etkileyen seçenekleri belirtmek için "localhost:" veya "lh:" konak belirtiminin kullanımına olanak sağlayan (rsync paketinin support dizinindeki) lsh (veya lsh.sh) destek betiği kullanılabilir.
Örneğin, aşağıdaki komut root aidiyetinde çalıştırılmakta fakat yerel dosyaları "veli" kullanıcısı yazmaktadır:
sudo rsync -aiv --copy-as=veli konak1:backups/veli/ /home/veli/
Aşağıdaki root aidiyetinde çalıştırılan komutta "veli" kullanıcısı olarak hedef/ dizinine yerel kopyalama yapılmaktadır (support/lsh betiğinin $PATH dizinlerinde bir yere kopyalanmış olduğu varsayılmaktadır):
sudo rsync -aive lsh -M--copy-as=veli kaynak/ lh:hedef/
Bu seçenek çoğunlukla, alıcı disk bölümünde aktarımdaki en büyük dosyanın bir kopyasını tutacak kadar yer olmadığında kullanılır. Bu durumda (yani, göndericinin dizini farklı bir disk bölümünde olduğunda), rsync alınan her geçici dosyayı adını değiştirerek ilişkili hedef dosyanın üstüne yazamaz, geçici dosya yapmadan dosyayı yerine kopyalaması gerekir. Bu durumda, hedef dosya, kopyalama sırasında kırpılan verileri de içerir. Bu şekilde yapılmasaydı (hedef dosya önce silinse, veriler hedef dizindeki geçici bir dosyaya yerel olarak kopyalanıp sonra bu dosya silinenin yerine aktarılsaydı) eski dosya diskte yer kaplamaya devam eder (birisi zaten açmışsa) ve bu nedenle aynı anda diskte yeni sürümü sığdırmak için yeterli yer olmayabilirdi.
Bu seçenek disk alanı yetersizliği dışında bir nedenle kullanılıyorsa, --delay-updates seçeneğiyle birlikte kullanmak iyi olabilir; bu, kopyalanan tüm dosyaların hedef hiyerarşisindeki alt dizinlere yerleştirilmesini ve aktarımın bitmesinin beklenmesini sağlayacaktır. Hedef bölüme gelen tüm dosyaların kopyalarını yapmak için yeterli alanınız yoksa, rsync’e disk alanı hakkında fazlaca endişe duyulmadığını söylemenin başka bir yolu, göreli bir yol belirten --partial-dir seçeneğini kullanmaktır; Bu, rsync’e hedef hiyerarşideki bir alt dizinin, tek bir dosya kopyasını saklamak için uygun olduğunu söylediğinden, rsync, belirtilen dizini kopyalanan dosyayı getirmek için bir hazırlama alanı olarak kullanacak ve ardından onu yeniden adlandırarak yerine yazacaktır. (--partial-dir seçeneğine mutlak bir yol belirtmenin böyle bir yan etkisi yoktur.)
Seçenek tekrarlanırsa, bulanık tarama, --compare-dest, --copy-dest veya --link-dest seçenekleriyle belirtilenlerle eşleşen diğer hedef dizinlerde de yapılır.
rsync 2.6.4 ve sonrasında, çok sayıda --compare-dest dizini belirtilebilmektedir. Sadece öznitelikleri uyuşmayan bir dosya bulunursa, yerel bir kopya yapılıp öznitelikleri güncellenir. Eğer bir eşleşme bulunamazsa, işlemi hızlandırmak için bu DİZİNlerin birinden temel bir dosya seçilir.
Eğer DİZİN göreli belirtilmişse hedef dizine göreli olduğu kabul edilir. Ayrıca bkz: --link-dest ve --copy-dest
Çok sayıda --copy-dest DİZİNi belirtilebilir, bu da rsync’in değişmemiş bir dosyayı listede belirtilen sırada aramasına neden olur. Bir eşleşme bulunamazsa, aktarımı hızlandırmak için DİZİN’lerden birinden temel bir dosya seçilir.
DİZİN göreli bir yol belirtiyorsa hedef dizine görelidir. Ayrıca bkz --compare-dest ve --link-dest.
rsync -av --link-dest=$PWD/öndizin konak:kaynak/ yeni/
2.6.4 sürümünden başlayarak, çok sayıda --link-dest dizini belirtilebilmektedir. Bu da rsync’in tam eşleşme için listeyi belirtilen sırayla aramasına neden olur (bu türde 20 dizinlik sınır vardır). Yalnızca niteliklerde farklılık gösteren bir eşleşme bulunursa, yerel bir kopya yapılır ve nitelikler güncellenir. Bir eşleşme bulunamazsa, aktarımı hızlandırmak için DİZİN’lerin birinden temel bir dosya seçilecektir.
Bu seçenek en çok boş bir hedef hiyerarşisine kopyalama yaparken işe yarar, çünkü mevcut dosyaların öznitelikleri değiştirilebilir ve bu da diğer hedef dosyaları sabit bağlar yoluyla etkileyebilir. Ayrıca, değişikliklerin ayrıntılandırılması biraz karışık olabilir. 3.1.0 sürümünden önce, bir hedef dosya zaten mevcut olduğunda, başka bir dizinle tam bir eşleşmenin asla sağlanamayacağı (veya hedefe bağ oluşturulamayacağı) unutulmamalıdır.
2.6.1 sürümünden önceki sürümlerde, -o seçeneği (-a seçeneği de bu seçeneği uygular) belirtilmişse, --link-dest seçeneği root olmayan bir kullanıcı için istendiği gibi çalışmayacaktır (yazılım hatası). Bu hatadan korunmak için böyle bir rsync ile gönderimde -o seçeneği kullanılmamalıdır.
Rsync çok sayıda sıkıştırma yöntemini desteklemektedir, --compress-choice (--zc) seçeneği ile zorlanmadıkça birini otomatik olarak seçecektir.
Derleme sırasında seçilmiş sıkıştırma algoritmalarının listesi rsync --version komutu ile görüntülenebilir.
Aktarım sırasında her iki tarafta da 3.2.0 veya üstü bir sürüm kullanılıyorsa, istemcinin ve sunucunun algoritma listesinden ilk algoritmaları ayrı ayrı seçer. Ortak bir sıkıştırma algoritması bulunamazsa rsync hata vererek çıkar. Uzak rsync sağlama toplamı uzlaşımını desteklemek için çok eski ise listesinde "zlib" bulunduğu varsayılır.
Öntanımlı sıra, RSYNC_COMPRESS_LIST ortam değişkenine kabul edilebilir algoritma isimleri boşluk ayraçlı sıralanarak özelleştirilebilir. Algortima isimleri & içeriyorsa "istemci dizgesi & sunucu dizgesi" biçeminde oluşturulduğu varsayılır, aksi takdirde aynı dizge her iki tarafa da uygulanır. Dizge (veya bir kısmı) boşluk olmayan karakterler içermiyorsa öntanımlı sıkıştırma listesi kullanılır. Listedeki bilinmeyen algoritma isimleri iptal edilir, ancak liste tamamen geçersiz isimlerden oluşuyorsa uzlaşım başarısız olur.
Bazı eski rsync sürümleri öntanımlı zlib sıkıştırma yöntemi ile uyumsuz olduklarında -zz seçeneğinin kullanımı gerektirecek şekilde yapılandırıldıklarından -z seçeneğinin kullanımını reddeder. rsync sunucusu, açıkça -zz belirtilmesi gerektiği konusunda uyarmadıkça bu tuhaflık yok sayılabilir.
Kullanılabilen sıkıştırma seçenekleri:
zstd lz4 zlibx zlib none
--old-compress veya --new-compress seçeneği hakkında bir hata görürseniz, daha fazla rsync sürümünün tanıdığı --compress-choice=zlib veya --compress-choice=zlibx seçeneği geriye uyumluluk adına gönderilmeye çalışılıyor demektir. Bu hata, sunucudaki eski rsync sürümünün sıkıştırma türünü zorlamanıza izin vermeyeceğini gösterir.
"zlibx" sıkıştırma algoritmasının, (harici bir zlib gerçeklenimiyle uyumlu hale gelebilmesi için) eşleşen verilerin sıkıştırma akımına dahil edilmediği bir "zlib" algoritması oluşuna dikkat edilmelidir.
Seviye değerleri etkin olan sağlama toplamına bağlı olarak değişiklik gösterir. Çünkü rsync öntanımlı olarak bir sağlama toplamı seçiminde (uzak rsync yeterince yeni bir sürümse) uzlaşım arayacaktır. Geçerli seçimden emin olunamıyorsa, bu seçeneği bir --compress-choice (--zc) seçeneğiyle birlikte kullanmak iyi olabilir. Örnek:
rsync -aiv --zc=zstd --zl=22 konak:kaynak/ hedef/
zstd sıkıştırması için geçerli değerler -131072’den 22’ye kadar olup 3 öntanımlı değerdir. SAYI olarak 0 belitilirse öntanımlı öntanımlı olan 3. seviye sıkıştırma uygulanır.
lz4 sıkıştırması için geçerli bir değer yoktur, dolayısıyla değer daima 0 olur.
Çok küçük ya da çok büyük bir değer belirtilirse sayı sessizce geçerli değerle sınırlanır. Bu, --zl=999999999 gibi bir değer belirtilmeye ve hangi algoritma seçilirse seçilsin azami sıkıştırma seviyesine ulaşmaya olanak tanır.
Etkin olan sıkıştırma seviyesini sorgulamak ve "uzlaşılan dizge" sonuçlarını görüntülemek için --debug=nstr belirtilebilir. Bu, (etkin sağlama toplamı seçimi ile birlikte) "Client compress: zstd (level 3)" benzeri bir dizge çıktılar.
LİSTE eğik çizgilerle (/) ayrılmış birden fazla dosya soneki içerebilir. Hiçbir dosyanın atlanmayacağını belirtmek için değer olarak boş dizge ("") verilebilir.
Basit karakter sınıfı eşleşmesi desteklenmektedir. Örneğin "[:alpha:]" sınıfından başka birşey belirtilmezse ’-’ karakterinin özel bir anlamı olmaz.
Yıldız (*) ve soru iminin (?) özel anlamları vardır.
Aşağıdaki örnekte atlanacak 6 sonek belirtilmektedir (mp[34] iki sonekle eşleşir):
--skip-compress=gz/jpg/mp[34]/7z/bz2
3g2 3gp 7z aac ace apk avi bz2 deb dmg ear f4v flac flv gpg gz iso jar jpeg jpg lrz lz lz4 lzma lzo m1a m1v m2a m2ts m2v m4a m4b m4p m4r m4v mka mkv mov mp1 mp2 mp3 mp4 mpa mpeg mpg mpv mts odb odf odg odi odm odp ods odt oga ogg ogm ogv ogx opus otg oth otp ots ott oxt png qt rar rpm rz rzip spx squashfs sxc sxd sxg sxm sxw sz tbz tbz2 tgz tlz ts txz tzo vob war webm webp xz z zip zst
Bu listenin yerini, biri hariç tüm durumlarda LİSTE alacaktır: rsync artalan sürecinden alınan bir kopya, LİSTEye eklenir (artalan sürecinin listesi farklı bir öntanımlı liste ile yapılandırılabilir).
Öntanımlı olarak rsync, dosyaların sahibini belirlemekte kullanıcı ve grup isimlerini kullanır. Özel kullanıcı ve grup kimliği olan 0 kimliği, bu seçenek belirtilmemiş olsa bile, kullanıcı ve grup isimleriyle asla eşleştirilmez.
Eğer kullanıcı ve grup yerelde herhangi bir isimle eşleşmiyorsa veya hedefte bir eşleşme yoksa, bunların yerine kaynak sistemdeki kullanıcı ve grup kimlikleri kullanılır. chroot ayarlarının rsync’in kullanıcı ve grup isimlerini arama yeteneklerini nasıl etkilediğini ve bunların nasıl değiştirebileceği hakkında bilgi için bkz: rsyncd.conf(5) kılavuz sayfasındaki use chroot modül seçeneğinin açıklaması.
--usermap=0-99:nobody,wayne:admin,*:normal --groupmap=usr:1,1:usr
0 kullanıcısı ve grubu için gönderici adının alıcıya iletilmediğine dikkat edilmelidir, bu nedenle ya 0 kullanarak bu değerleri eşleştirmelisiniz ya da alıcı tarafta geçerli olan adları kullanmalısınız (genelde "root"). Diğer tüm GÖNDEREN adları, gönderen tarafta kullanılanlarla, tüm ALAN adları, alıcı tarafta kullanılanlarla eşleşir.
Gönderen tarafta adı olmayan tüm kimlikler, eşleştirme amacıyla boş ad olarak değerlendirilir. Bu, bir "*" ile veya boş ad kullanılarak eşleştirilmelerine olanak tanır. Örneğin:
--usermap=:nobody --groupmap=*:nobody
--usermap seçeneğinin çalışması için alıcının ayrıcalıklı kullanıcı aidiyetinde çalıştırılması gerekir (bkz: --super ve --fake-super). --groupmap seçeneğinin çalışması için, alıcının grubu atayacak izinlere sahip olması gerekir.
rsync 3.2.4 ve sonrasında, --usermap seçeneği örtük olarak --owner (-o) seçeneğini uygularken --groupmap seçeneği örtük olarak --group (-g) seçeneğini uygular (rsync eşleşme seçeneklerinin çalışması için bu seçeneklerin etkin olmasını gerektirdiğinden).
Eski bir rsync’in joker karakterlerden şikayetini önlemek için --protect-args (-s) kullanımı gerekirken günümüz rsync’leri bunu otomatik olarak halleder.
"--chown=foo:bar", belirtilirse "--usermap=*:foo --groupmap=*:bar" belirtmekten farkı yoktur, sadece daha kolaydır (ve örtük olarak --owner ve/veya --group seçenekleri ile aynıdır).
Eski bir rsync’in joker karakterlerden şikayetini önlemek için --protect-args (-s) kullanımı gerekirken günümüz rsync’leri bunu otomatik olarak halleder.
Ayrıca bkz: Artalan süreci için --address seçeneği.
Ayrıca bkz: Artalan süreci için --port seçeneği.
Ayrıca bkz: Artalan süreci için --sockopts seçeneği.
Seçeneğin başlıca kullanım amacı, rsync çıktısı bir dosyaya veya boruya yönlendirilirken tam tamponlamadan satır tampolamaya geçmektir.
"%i" belirtimi 11 karakter uzunlukta şifresel bir çıktıya sahiptir. Genel biçimi YXcstpoguax dizgesine benzer. Burada Y karakteri yapılan güncellemenin çeşidini, X karakteri dosya türünü, diğer karakterler ise güncellenmişlerse öznitelikleri belirten bir karakterle değiştirilir.
Y karakterinin yerini alan güncelleme türleri şunlardır:
< uzak konağa aktarılan (gönderilen) dosya > yerel konağa aktarılan (alınan) dosya c yerel konakta değiştirilen/oluşturulan dosya (bir dizin ya da sembolik bağın oluşturulması gibi). h başka bir öğeye sabit bağ olan öğe (--hard-links gerektirir). . (nokta) güncellenmiş (öznitelikleri değişmiş) dosya * ayrıntılı çıktı alanının geri kalanı bir ileti içeriyor ("siliniyor" gibi).
f dosya d dizin L sembolik bağ D aygıt S özel dosya (isimli soketler ve isimli borular gibi)
"." Öznitelik değişmedi. "+" Dosya yeni oluşturuldu. " " Hiçbir öznitelik değişmedi (tüm noktalar boşluklara dönüşür). "?" Neyin değiştiği bilinmiyor (uzak rsync eski olduğunda). harf Bir özniteliğin güncellendiğini belirtir.
Bu seçeneğinin belirtilmesi, önemli bir şekilde güncellenen (aktarılan bir dosya, yeniden oluşturulmuş bir sembolik bağ/aygıt veya dokunulan bir dizin) her dosya veya dizinden vb. bahsedecek olan --info=name seçeneğinin örtük olarak uygulanmasını sağlar. Ek olarak, değişiklikleri ayrıntılı gösterme öncelemi (%i) dizgeye dahil edilirse (--itemize-changes seçeneği kullanılmış gibi), herhangi bir şekilde değiştirilen öğe adları da günlüğe eklenir (alıcı tarafın sürümü en az 2.6.4 olduğu takdirde). %i çıktısının açıklaması için bkz: --itemize-changes
Günlüklemenin aktarımın sonunda yapılmasını sağlayan aktarım istatistiği belirtimlerinden biri belirtilmedikçe rsync, günlük biçemi dizgesini dosyanın aktarımından önce çıktılayacaktır. Bu geç günlükleme etkin olduğunda ve ayrıca --progress seçeneği de belirtilmişse rsync aktarılan dosyanın ismini işlem bilgisinden önce (şüphesiz, --log-format çıktısından sonra) çıktılayacaktır.
Neler yapıldığını günlüklemesi için uzak tarafa istekte bulunma örneği:
rsync -av --remote-option=--log-file=/tmp/rlog kaynak/ hedef/
Bağlantının istem dışı kapanma sebebini incelemek için yaralıdır.
Ayrıca bkz: Artalan sürecinin --log-file seçeneği.
--log-file belirtildiği durumda bu seçenekle BİÇEM olarak "%i %n%L" belirtilmedikçe öntanımlı biçem kullanılır.
Ayrıca bkz: Artalan sürecinin --log-file-format seçeneği.
Geçerli istatistikler:
2.6.7 sürümünden itibaren yüksek bitli karakterler ters eğik çizgi (\) ve diyez (#) iminden sonra 3 sekizlik rakam ile ifade edilmektedir. Örneğin satır sonu karakteri "\#012" ile ifade edilir. Dosya ismindeki ters eğik çizgi imlerinin ardından bir diyez imi ve 3 sekizlik rakam gelmedikçe ters eğik çizgiler öncelenmez.
2. ve 3. seviyede eklenen birim harfleri: K (kilo), M (mega), G (giga), T (tera), P (peta). Örneğin, 1234567 baytlık dosya 2. seviyede 1,23M olarak çıktılanırdı (yerelde ondalık kısmın virgül ile ayrıldığı varsayımıyla).
--whole-file açıkça (veya örtük olarak) belirtilirse, dosya rsync’in delta-aktarım algoritması kullanılmadan gönderildiğinden, DİZİN içindeki güncellenmekte olan dosya ile ilgili kısmi dosyalarının basitçe kaldırılacağı unutulmamalıdır.
rsync, henüz yoksa, DİZİN’i oluşturacaktır, ancak sadece son dizini oluşturur, yolun tamamını değil. Bu, rsync’in gerektiğinde hedef dosyanın dizininde kısmi dizini oluşturmasını ve kısmi dosya silindikten sonra kaldırmasını sağlamak için göreli bir yol ("--partial-dir=.rsync-partial" gibi) kullanmayı kolaylaştırır. Mutlak bir yolun kısmi dizinin çalışması için ayrılmış özel bir dizini göstermesi beklendiğinden, bu dizin kaldırma işleminin yalnızca göreli yol için yapıldığı unutulmamalıdır.
DİZİN değeri mutlak bir yol değilse, rsync mevcut tüm dışlama kurallarının sonuna bir kural daha ekler. Bu, gönderen tarafta mevcut olabilecek herhangi bir kısmi dizin dosyasının gönderilmesini ve ayrıca alıcı taraftaki kısmi dizin öğelerinin zamansız silinmesini önleyecektir. Bir örnek: yukarıdaki --partial-dir seçeneği, diğer dışlama kurallarının sonuna bu "bozulabilir" dışlama kuralının eşdeğerini ekler: -f ’-p .rsync-partial/’
özel dışlama kuralları kullanılıyorsa, kısmi dizin için özel bir dışlama/gizleme/koruma kuralı eklemek gerekebilir. Çünkü,
Sunucu yapılandırmasının refuse options ayarı, amacı gereği --partial-dir seçeneğinin --partial seçeneğini örtük olarak uygulamamasına sebep olur. Bu, yani, --partial seçeneğinin reddedilmesi, --partial-dir tarafından sağlanan daha güvenilir üsluba hala izin veriyor olmakla, aktarımı yarım kalmış hedef dosyaların tekrar yazılmasına izin vermemek amacıyla kullanılabilir.
Bu seçenek --no-inc-recursive anlamına gelir çünkü üzerinde sonuna kadar yineleme yapabilmek için bellekte tam dosya listesine ihtiyaç duyar.
Bu seçenek alıcı tarafta daha fazla bellek kullanır (aktarılan dosya başına bir bit) ve ayrıca alıcı tarafta tüm güncellenmiş dosyaların ek bir kopyasını tutmak için yeterli boş disk alanı gerektirir. Ayrıca, aşağıdaki durumlar dışında --partial-dir için mutlak yol kullanılması gerekir:
--min-size seçeneği gibi aktarım kurallarının kullanımının dosya listesine girenleri etkilemediği ve bu nedenle bir dizindeki dosyalardan hiçbiri aktarım kuralıyla eşleşmese bile dizinleri boş bırakmadığı unutulmamalıdır.
Dosya listesi gerçekte budandığından, bu seçenek ayrıca bir silme etkin olduğunda hangi dizinlerin silineceğini de etkiler. Ancak, hariç tutulan dosya ve dizinlerin, hem kaynak dosyaları gizleme hem de hedef dosyaları koruma kurallarıyla hariç tutulan bazı öğelerin silinmesini engelleyebileceği unutulmamalıdır. Bunun nasıl önleneceğini öğrenmek için bozulabilir süzme kuralına bakılabilir.
Genel bir koruma (protect) süzgeci kullanarak dosya listesinden belirli boş dizinlerin budanmasını önleyebilirsiniz. Örneğin, bu seçenek "emptydir" dizininin dosya listesinde tutulmasını sağlar:
--filter ’protect emptydir/’
rsync -avm --del --include=’*.pdf’ -f ’hide,! */’ kaynak/ hedef
rsync’in normal bir dosyayı aktarırken göstediği ilerleme satır şuna benzer:
782448 63% 110.64kB/s 0:00:04
Bu istatistikler, rsync’in delta-aktarım algoritması kullanımdaysa yanıltıcı olabilir. Örneğin, gönderenin dosyası temel dosyanın ardından ek verilerden oluşuyorsa, alıcıya değişmez veriler ulaştığında rapor edilen hız muhtemelen önemli ölçüde düşecek ve dosyanın eşleşen kısmını bitirmek için aktarımın tamamlanması muhtemelen alıcının tahmin ettiğinden çok daha uzun sürecektir.
Dosya aktarımı bittiğinde rsync ilerleme satırına şöyle bir satır yerleştirir:
1,238,099 100% 146.38kB/s 0:00:08 (xfr#5, to-chk=169/396)
Artırımlı bir özyineleme taramasında, rsync, taramanın sonuna ulaşana kadar dosya listesindeki toplam dosya sayısını bilmeyecek, ancak tarama sırasında dosyaları aktarmaya başladığından, (artırımlı özyineleme denetimi anlamında) "ir-chk" metnini içeren bir satır görüntüleyecektir. Listenin tam boyutununun saptandığı noktaya gelindiğinde "ir-chk" yerini "to-chk" metnine bırakacaktır. Yani, "ir-chk" ifadesini gördüğünüz sürece, dosya listesindeki denetlenecek dosya sayısı giderek artacaktır (aktarılan her dosya ayrıca bu listeye eklenecektir).
Ayrıca, istatistikleri tek tek dosyalar yerine tüm aktarıma dayalı olarak veren bir --info=progress2 seçeneği de vardır. Çok sayıda adın ekranı kaydırmadan aktarımın ilerleyiş izlenmek isteniyorsa, bu seçeneğin bir dosya adı çıktısı verdirmeden kullanılması gerekir (örneğin -v seçeneğinden kaçınılabilir veya --info=name0 belirtilebilir). --info=progress2’yi kullanmak için --progress seçeneğinin belirtilmesi gerekmez.
Son olarak, rsync’e SIGINFO veya SIGVTALRM sinyali göndererek anında ilerleme raporu alınabilir. BSD sistemlerinde, Ctrl+T tuşları SIGINFO sinyali oluşturulur (Linux şu anda bir SIGINFO sinyalini desteklememektedir). İstemci süreci bu sinyallerden birini aldığında, mevcut dosya aktarımının bittiğini bildirecek ilerleme raporu çıktısını üreten bayrağı tanımlar (sinyal geldiğinde büyük bir dosya aktarılıyorsa bu işlem biraz zaman alabilir). Bir dosya adının (gerekirse) ardından ilerleme bilgisinin --info=progress2 biçimi gelir. 3 rsync sürecinden hangisinin istemci süreci olduğu bilinmeksizin, hepsinin sinyallenmesinde sakınca yoktur (çünkü istemci olmayan süreçler sinyali yok sayar).
Bu seçenek ssh gibi bir uzak kabuk aktarımına parola sağlamaz. Bu işlemin uzak kabukra nasıl yapılacağını öğrenmek için kullanılacak kabuğun belgelerine bakılabilir. Aktarım için uzak kabuk kullanıldığı durumda bu dosya uzak kabuk oturumunun kimlik kanıtlama işlemi bittikten sonra etkili olur (yani, artalan sürecinin yapılandırma dosyasında belirtilmiş bir parola varsa kimlik kanıtlaması için bu dosya okunur).
Artalan sürecinin sürümü en az 3.2.1 olmalıdır.
rsync -av --list-only foo* hedef/
Geriye uyumluluk için hız sınırı en yakın KiB birime yuvarlanabilir. Yani, 1024 b/s’den küçük hız belirtilemez.
rsync veriyi soketlere bloklar halinde yazar ve bu seçenek hem blokların yazılması hem de ortalama aktarım hızını istenen hızda tutmaya çalışmak amacıyla kullanılır. rsync’in veri bloğunu yazarken uyuduğu durumlarda ortalama hızı tutturmaya çalışırken bazı hız aşımları görülebilir.
Verilerin dahili arabelleğe alınması nedeniyle, --progress seçeneği, verilerin gönderim hızını doğru şekilde yansıtmayabilir. Bunun nedeni, bazı dosyaların verileri hızlıca arabelleğe alındığında hızlıca gönderiliyor gibi görünmesi ya da çıktı arabelleğinin boşaltılması sırasında gönderimin yavaşlamış gibi görünmesidir. Bu durum, gelecekteki bir sürümde düzeltilebilir.
Ayrıca bkz: Artalan sürecininin --bwlimit seçeneği.
Belirtilen SÜRE geçtiğinde rsync’in kopyalamayı durdurmasını sağlar.
Azami esneklik için, bir tarafın çıkması bağlantıyı sonlandırdığından bu seçenek uzak tarafa gönderilmez. Bağlantının yalnızca bir tarafı bu seçeneği desteklese bile seçeneğin kullanımına izin verilir. Gerektiğinde, --remote-option (-M) seçeneği kullanılarak uzak tarafın bağlantıyı sonlandırması istenebilir.
Değer çeşitli şekillerde kısaltılabilir, örneğin 2 rakamlı yıl belirtilebildiği gibi bazı değerler hiç belirtilmeyebilir. Her durumda, sağlanan zaman bilgisiyle eşleşen zamanda kopyalama durdurulur. Geçerli zamanın veya geçmişin belirtilmesi durumunda rsync hata vererek çıkar.
Örneğin, "1-30" 30 Ocak yerel zamanla gece yarısını, "14:00" bir sonraki ös 2’yi, "1" gelecek ayın 1. gününün geceyarısını, "31" gelecek 31 çeken ayın 31. gününün geceyarısını, "59" ise geçerli saatin 59. dakikasını ifade eder.
Azami esneklik için, bir tarafın çıkması bağlantıyı sonlandırdığından bu seçenek uzak tarafa gönderilmez. Bağlantının yalnızca bir tarafı bu seçeneği desteklese bile seçeneğin kullanımına izin verilir. Gerektiğinde, --remote-option (-M) seçeneği kullanılarak uzak tarafın bağlantıyı sonlandırması istenebilir. Uzak konağın öntanımlı zaman diliminin yerel zaman diliminden farklı olabileceği hesaba katılmalıdır.
Bu seçenek uzlaşılmış sağlama toplamını ve sıkıştırma listelerini geçersiz kılar ve her zaman eski tarz md5/md4/zlib seçimlerine dayalı bir seçim üzerinde uzlaşım sağlar. Daha güncel bir seçim istenirse, --checksum-choice (--cc) ve/veya --compress-choice (--zc) seçenekleri kullanılabilir.
Toplu işlem dosyası doğrudan taşınabilir ortamlara yazılabilir: Bu ortam, aktarım bitmeden önce kapasitesini doldurursa, bu kısmi aktarım hedefe uygulanabilir ve geri kalanını almak için tüm süreç tekrarlanabilir (çoklu güncelleme döngüsü devam ederken hedef sistemin kısmen güncellenmiş olması umursanmadığı takdirde).
Ayrıca, değişiklikleri uzak bir sisteme gönderirken bant genişliğinin önemli olmadığı unutulmamalıdır. Çünkü toplu işlem dosyası, verilerin kablo üzerinden akmasına gerek kalmadan göndericiden alıcıya yönlendirilmesine olanak tanır (çekerken, gönderen uzakta olduğundan toplu işlem dosyası oluşturamazsınız).
Yerel iconv(1) kitaplığının desteklediği karakter kümesi adlarının listesi için "iconv --list" komutu çalıştırılabilir.
--protect-args (-s) seçeneğini belirtilirse, rsync komut satırında belirtilen dosya adlarını gönderen taraf dönüştürecektir. Ayrıca bkz: --files-from
rsync’in süzme dosyalarında (içerilen/dışlanan dosyalar dahil) herhangi bir ad dönüşümü yapmadığını unutulmamalıdır. Aktarımın her iki tarafıyla da eşleşecek kuralların belirtildiğinden emin olunmalıdır. Örneğin, iki tarafta da hesaba katılması gereken dosya adı farklılıkları varsa, fazladan içerme/dışlama kuralları belirtilebilir.
Bir --iconv seçeneği buna izin veren bir rsync artalan sürecine iletildiğinde, artalan süreci, gerçekte ilettiğiniz uzak karakter kümesinden bağımsız olarak "charset" yapılandırma seçeneğinde belirtilen karakter kümesini kullanır. Bu nedenle, bir artalan süreci aktarımı için yalnızca yerel karakter kümesini belirtmek yeterlidir (--iconv=utf8 gibi).
Ayrıca bkz: Artalan süreci --ipv4 seçeneği.
rsync, IPv6 desteği olmadan derlendiyse, --ipv6 seçeneğinin hiçbir etkisi olmaz. Bu durumda rsync --version çıktısı "IPv6 yok" dizgesini içerir.
rsync artalan süreci başlatılırken kullanılan seçenekler:
Eğer standart girdi bir soket ise, rsync, inetd üzerinden çalıştığını varsayacaktır, aksi takdirde, uçbirimini bırakıp bir artalan süreci haline gelecektir. rsync istemcileri tarafından yapılan her bağlantı isteğinde süreç, yapılandırma dosyasını (rsyncd.conf) okuduktan sonra isteğe yanıt verecektir.
Daha fazla bilgi için bkz: rsyncd.conf(5)
Ayrıca, rsyncd.conf(5) kılavuz sayfasındaki address seçeneğinin açıklamasına da bakılabilir.
Ayrıca bkz: İstemci --bwlimit seçeneği.
rsync --daemon -M pidfile=/yol/rsync.pid
Ayrıca istemci --port seçeneğinin ve rsyncd.conf(5) kılavuz sayfasındaki port seçeneğinin açıklamasına da bakılabilir.
Ayrıca bkz: İstemci --log-file seçeneği.
Ayrıca bkz: İstemci --log-file-format seçeneği.
Ayrıca bkz: İstemci --sockopts seçeneği.
Ayrıca bkz: İstemci --verbose seçeneği.
Ayrıca bkz: İstemci --ipv4 seçeneği.
rsync, IPv6 desteği olmadan derlendiyse, --ipv6 seçeneğinin hiçbir etkisi olmaz. Bu durumda rsync --version çıktısı "IPv6 yok" dizgesini içerir.
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]
uzun kısa açıklama
-------------------------- 1. exclude - dışlama kalıbı belirtir 2. include + içerme kalıbı belirtir. 3. merge . ek kuralları okumak için birleştirilecek dosyayı belirtir. 4. dir-merge : bir dizin içi birleştirme dosyası belirtir. 5. hide H aktarımdan gizlenen dosyalar için kalıp belirtir. 6. show S aktarımdan gizlenmeyen dosyalar için kalıp belirtir. 7. protect P silinmekten korunan dosyalar için kalıp belirtir. 8. risk R silinmekten korunmayan dosyalar için kalıp belirtir. 9. clear ! geçerli içerme/dışlama listesini temizler (girdi almaz)
--include ve --exclude komut satırı seçenekleri yukarıdaki kural sözdizimini değil, sadece kalıplarla ek olarak listeyi temizleyen ünlem (!) imini (ve kalıplar bir dosyadan okunuyorsa boş ve açıklama satırlarını) kabul eder. Bir kalıp "- " (tire ve boşluk) veya "+ " (artı ve boşluk) ile başlamıyorsa, kural (içerme seçeneği için) "+ " veya (dışlama seçeneği için) "- " önekli bir dizge olarak yorumlanır. Diğer yandan, bir --filter seçeneği, kuralın başlangıcında daima kısa veya uzun bir kalıp adı içermelidir.
Ayrıca, her bir --filter, --include ve --exclude seçeneği tek bir kalıp/kural alır. Çok sayıda kalıp/kural eklemek için komut satırında bu seçenekler yinelenebilir veya --filter, --include-from ve --exclude-from seçeneklerinin birleştirme dosyası sözdizimi kullanılabilir.
Yukarıda SÜZME KURALLARI bölümünde bahsedildiği gibi dosyalar "+", "-" vb. süzme kuralları kullanılan kalıplar belirtilerek içerilebilir ya da dışlanabilir. İçerme ve dışlama kurallarının her birinde aktarılacak dosyaların isimleriyle eşleşen kalıplar belirtilir. Bu kalıplar çeşitli biçimler alabilir:
Örneğin, "/foo/bar/baz" içerilirken "/foo" ve "/foo/bar" dışlanmaz). Eğer bir kalıp belli bir üst dizini dışlıyorsa, bir düzey daha derin içerme kalıbını sonuçsuz bırakabilir, çünkü rsync, hiyerarşinin dışlanan bir bölümünden daha derine inmez.
Bir üst dizinin dışlanması "*" ile biten bir kural kullanılırken önem kazanır. Örneğin, bu çalışmayacaktır:
+ /bir/yol/bu-dosya-bulunmaz + /bu-dosya-bulunur - *
+ /bir/ + /bir/yol/ + /bir/yol/bu-dosya-bulunur + /bu-dosya-da-bulunur - *
Dışlama/içerme eşleştirme örnekleri:
Yukarıda SÜZME KURALLARI bölümünde bahsedildiği gibi merge (.) ya da dir-merge (:) süzme kuralı belirtilerek tüm dosyalar süzme kurallarıyla birleştirilebilir.
İki çeşit birleştirme dosyası vardır: tek dosyalık (’.’) ve dizin içi dosyalar (’:’). Tek dosyalık bir birleştirme dosyası bir defa okunur ve "." kuralındaki süzme listesi ile birlikte işleme sokulur. Dizin içi birleştirme dosyası türünde ise, rsync adım adım bütün alt dizinleri tarayarak ismi belirtilen dosyayı buldukça dosya içeriğini o anki kural listesine ekler. Bu dizin içi kural dosyaları aktarımın alt dizinlerinde aranması gerektinden gönderen tarafta oluşturulmalıdır. Ayrıca, bu kural dosyalarının silinmeyecek dosyaları etkilemesi isteniyorsa, alıcı tarafa da aktarılmaları gerekecektir (aşağıda, Diziniçi Birleştirme Kuralları ve Silme bölümüne bakınız).
Bazı örnekler:
merge /etc/rsync/default.rules . /etc/rsync/default.rules dir-merge .per-dir-filter dir-merge,n- .non-inherited-per-dir-excludes :n- .non-inherited-per-dir-excludes
Tek dosyalık kuralın dir-merge dosyasından miras alınmasını engellemenin diğer bir yolu, dosyanın başına bir / getirmektir. Bir diziniçi birleştirme dosyasındaki bu tür kurallar birleştirme dosyasının bulunduğu dizine göre ele alınır, böylece bir "/foo" kalıbı dir-merge süzme kuralı dosyasının bulunduğu dizindeki "foo" dosyasıyla eşleşir.
--filter=". dosya" üzerinden belirtilebilecek örnek süzme dosyası:
merge /home/user/.global-filter - *.gz dir-merge .rules + *.[ch] - *.o - foo*
Eğer bir dizin içi birleştirme dosyası, ilk aktarım dizininin üst dizini olan bir dosya yolu ile belirtilmişse, rsync belirtilen dosya için, aktarım dizininin başlangıcından itibaren tüm üst dizinleri tarayacaktır. Örneğin, böyle bir süzgeç (bkz: -F seçeneği),
--filter=’: /.rsync-filter’
Dizin içi birleştirme dosyaları için bu tarz ön tarama örnekleri:
rsync -avF /kaynak/yol/ /hedef/dizin rsync -av --filter=’: ../../.rsync-filter’ /kaynak/yol/ /hedef/dizin rsync -av --filter=’: .rsync-filter’ /kaynak/yol/ /hedef/dizin
".cvsignore" dosyasının içeriği kalıplara dahil etmek istenirse, ":C" kuralı kullanılmalıdır. Bu kural, .cvsignore dosyalarını dizin içi birleştirme dosyaları haline getirir, fakat dosya CVS uyumluluğu bağlamında ayrıştırılır. --cvs-exclude (-C) seçeneğinin bulunduğu yerde etkili olması isteniyorsa kuralların arasına bu noktada ":C" kuralı yerleştirilebilir. Bu olmaksızın, rsync .cvsignore dosyası için dir-merge kuralını diğer kurallarının sonuna ekleyecektir (komut satırı seçeneklerinden daha düşük bir öncelik vererek). Örnek:
cat <<EOT | rsync -avC --filter=’. -’ a/ b + foo.o :C - *.old EOT rsync -avC --include=foo.o -f :C --exclude=’*.old’ a/ b
Yukarıda SÜZME KURALLARI bölümünde bahsedildiği gibi mevcut içerme/dışlama listesini "!" süzme kuralını kullanarak temizleyebilirsiniz. "Geçerli" liste ya genel kural listesi (kural, süzme seçenekleri çözümlenirken saptanmışsa) ya da dizin içi birleştirme dosyası kurallarından (bunlar kendi alt listelerinde miras alınırlar, dolayısıyla üst dizinin kurallarını bu kuralla temizleyebilirsiniz) oluşur.
Evvelce de bahsedildiği gibi, genel içerme/dışlama kalıpları aktarımın kök dizini ile ilişkilendirilebilir (birleştirme dosyasının dizini ile ilişklendirilen dizin içi kalıplarının tersine). Aktarımı, göndericiden alıcıya bir isim alt ağacının gönderilmesi olarak düşünürseniz, aktarımın kök dizini hedef dizinde yinelenecek olan ağaç başlangıcıdır. Bu kök, bir / ile başlayan kalıplarla ilişkilendirilir.
Eşleşme aktarımın köküne göre yapıldığından, kaynak yolun sonundaki bölü çizgisini değiştirmek ya da --relative seçeneğinin kullanımında değişiklik yapmak eşleştirmede kullanılan yolu etkiler. Aşağıda bu davranış örneklenmiştir.
Biri "/home/ben/foo/bar", diğeri "/home/sen/bar/baz" olan iki dosya olsun. Aşağıda bu iki dosyanın çeşitli komut kullanımlarındaki farklı aktarımları gösterilmiştir.
Örnek komut: rsync -a /home/ben /home/sen /hedef +/- kalıbı: /ben/foo/bar +/- kalıbı: /sen/bar/baz Hedef dosya: /hedef/ben/foo/bar Hedef dosya: /hedef/sen/bar/baz Örnek komut: rsync -a /home/ben/ /home/sen/ /hedef +/- kalıbı: /foo/bar (dikkat: "ben" yok) +/- kalıbı: /bar/baz (dikkat: "sen" yok) Hedef dosya: /hedef/foo/bar Hedef dosya: /hedef/bar/baz Örnek komut: rsync -a --relative /home/ben/ /home/sen /hedef +/- kalıbı: /home/ben/foo/bar (dikkat: tam dosyayolu) +/- kalıbı: /home/sen/bar/baz (keza bu da) Hedef dosya: /hedef/home/ben/foo/bar Hedef dosya: /hedef/home/sen/bar/baz Örnek komut: cd /home; rsync -a --relative ben/foo sen/ /hedef +/- kalıbı: /ben/foo/bar (belirtilen yolla başlar) +/- kalıbı: /sen/bar/baz (keza bu da) Hedef dosya: /hedef/ben/foo/bar Hedef dosya: /hedef/sen/bar/baz
Bir silme seçeneği olmaksızın, diziniçi birleştirme kuralları sadece gönderen tarafı ilgilendirir, dolayısıyla aktarımı etkilemeksizin birleştirme dosyaları rahatça dışlanabilir. Bunu kolayca yapmanın yolu, örnekte görüldüğü gibi bu dışlamayı sağlayacak ’e’ belirtecini eklemektir. Bu iki komut eşdeğerdir:
rsync -av --filter=’: .hrc’ --exclude=.hrc konak:kaynak/dizin /hedef rsync -av --filter=’:e .hrc’ konak:kaynak/dizin /hedef
rsync -avF --delete-after konak:kaynak/dizin /hedef
rsync -av --filter=’: .kural’ --filter=’. /benim/ek.kuralım’ \
--delete konak:kaynak/dizin /hedef
Aşağıdaki örnekte, uzak taraf .rsync-filter dosyalarını aktarımdan dışlamaktadır, ancak alıcı tarafta neyin silineceğini denetim altına almak için kendi .rsync-filter dosyalarımızı kullanmak istiyoruz. Bunu yapmak için diziniçi birleştirme dosyalarını özellikle dışlamalı (böylece silinmezler) ve neyin silinip silinmeyeceğini denetim altına almak için kuralları yerel dosyalara koymalıyız:
rsync -av --filter=’:e /.rsync-filter’ --delete \
konak:kaynak/dizin /hedef rsync -avFF --delete konak:kaynak/dizin /hedef
Toplu işlem dosyası kipi bir çok sistem için aynı olan güncellemeleri uygularken kullanılabilir. Bir dizin ağacının çok sayıda konak üzerinde kopyalarının bulunduğunu varsayalım. Şimdi, kaynak ağacında bazı değişiklikler olduğunu ve bunların diğer konaklara da aktarılması gerektiğini varsayalım. Bu işlemi toplu işlem dosyası kipini kullanarak yapmak için, rsync, kaynak ağacındaki değişiklikleri hedef ağaçlardan birinde uygulayan --write-batch seçeneği ile çalıştırılır. --write-batch seçeneği, yapılan işlemlerin aynı dizin ağacını içeren hedeflerde uygulanmak üzere bir "toplu işlem dosyası" içinde saklanmasını sağlar.
Toplu iş dosyasını bir kez oluşturmak, birden çok hedef ağacı güncellerken dosya durumu, sağlama toplamı ve veri bloğu oluşturma işlemlerini her defasında yeniden gerçekleştirme zorunluluğundan kurtarır. Aynı verileri her konağa ayrı ayrı göndermek yerine, toplu güncelleme dosyalarını birçok konağa aynı anda aktarmak için çok noktaya yayın aktarım protokolleri kullanılabilir.
Kaydedilen değişiklikleri diğer hedef ağaçlara uygulamak için rsync, bu dosyanın ismi --read-batch seçeneğinde belirtilerek çalıştırılır. rsync, toplu işlem dosyasında saklanmış bilgileri kullanarak hedef ağacı günceller.
Rahat olsun diye, --write-batch seçeneği kullanılırken ek bir dosya daha oluşturulur. Bu dosyanın ismi, toplu işlem dosyasının isminin sonuna ".sh" eklenerek oluşturulur. Bu .sh dosyası toplu işlem dosyasını kullanarak hedefi güncelleyecek komut satırını içerir. Bir Bourne (ya da benzeri) kabuk kullanılarak çalıştırılabilir. İsteğe bağlı olarak özgün yol yerine hedef ağacın dosya yolu aktarılabilir. Bu, hedef ağacın dosya oluşturulurken kullanılandan farklı olduğu durumlarda yararlıdır.
Örnekler:
$ rsync --write-batch=foo -a konak:/kaynak/dzn/ /hedef1/dzn/ $ scp foo* uzak: $ ssh uzak ./foo.sh /hedef2/dzn/ $ rsync --write-batch=foo -a /kaynak/dzn/ /hedef1/dzn/ $ ssh uzak rsync --read-batch=- -a /hedef2/dzn/ <foo
--read-batch seçeneği, hedef ağacın, betiğin oluşturulduğu hedefteki ağaçla aynı olacağı varsayımına dayanır. Hedef ağaçta bir fark saptandığında işlem ya bir uyarı ile iptal edilir (dosya güncel görünüyorsa) ya da dosya güncellemesi yapılmaya çalışılır ve bundan sonra eğer dosyanın doğrulanması başarısız olursa işlem bir hata üretilerek iptal edilir. Bu, eğer işlem kesintiye uğratılırsa toplu okuma işleminin yeniden başlatılmasının güvenli olması gerektiği anlamına gelir. Eğer toplu güncellemenin dosyanın boyutuna ve tarihine bakılmaksızın daima yapılabilmesi istenirse, -I seçeneği kullanılabilir (toplu işlem dosyası okunurken). Eğer bir hata oluşursa, hedef ağaç bir ihtimal, kısmen güncellenmiş durumda olacaktır. Bu durumda, rsync toplu güncelleme ile değil, normal işlemle kullanılarak hedef ağaç düzeltilebilir.
Tüm hedeflerde kullanılan rsync sürümü, toplu işlem dosyasını üretmekte kullanılan kadar yeni olmalıdır. Eğer, toplu işlem dosyasının protokol sürümü onu okuyan rsync’in sürümünden daha yeni ise rsync bir hata vererek sonlanacaktır. Ayrıca, eski bir rsync sürümünün anlayabileceği rsync üretimi bir toplu işlem dosyasının oluşturulma yöntemi için --protocol seçeneğine bakılabilir. (2.6.3 sürümünde toplu işlem dosyalarının biçemi değiştiğinden, bu sürümden eski ve yeni sürümlerin toplu işlem dosyaları bir diğerinde çalışmayacaktır.)
Bir toplu işlem dosyası okunurken, siz belirtmemiş olsanız bile, işlem dosyası üretilirken kullanılan ve veriler için gerekli olan bazı seçenekler zorunlu olarak kullanılacaktır. Diğer seçenekler değiştirilebilir, hatta değiştirilmelidir de. Örneğin, --write-batch seçeneği --read-batch seçeneği olarak değişmeli, --files-from seçeneği kullanılmamalıdır, bunun yanında --filter/--include/--exclude seçenekleri ise --delete seçeneklerinden biri belirtilmedikçe gerekli olmaz.
betik.sh dosyasını oluşturan kod, kabuk betiğinin sonuna tek bir listeye dönüştürerek --filter/--include/--exclude seçeneklerini bir belge niteliğinde ekler. Tecrübeli bir kullanıcı bu bilgiyi --delete tarafından silinmesi istenenlerde bir değişiklik varsa, dışlama listesini değiştirmekte kullanabilir. Normal bir kullanıcı ise, bu ayrıntıları yoksayabilir ve betikli veriyi uygun --read-batch komutuyla çalıştıran kabuk betiğini kullanabilir.
rsync’deki özgün toplu işlem kipi "rsync+" üzerine inşa edilmiş olsa da en son sürümde yeni bir gerçeklenim kullanılmaktadır.
rsync kaynak dizini içinde bir sembolik bağ saptadığında üç temel davranış sözkonusudur:
Mutlak yol içeren (/ ile başlayan) sembolik bağlarla, boş ve bulunulan dizinden daha yukarıdaki dizinleri gösteren ".." bileşenlerini içeren sembolik bağlar güvensiz olarak kabul edilir.
Sembolik bağ seçeneklerinin yorumlanışı aşağıda özetlenmiştir. Liste öncelik sırasına göredir, bu nedenle kullanılan seçeneklerin tamamını içeren bir şık yoksa en yakın kısmi eşleşmeyi içeren ilk şık kullanılmalıdır:
--keep-dirlinks seçeneği aktarımdaki sembolik bağları değil alıcı taraftaki dizin sembolik bağlarının ele alınışını etkiler. Seçeneğin açıklamasında bu konuda bir uyarı bulunmaktadır.
rsync ara sıra biraz şifreli gibi görünen hata iletileri üretir. Bunlardan biri, en kafa karıştıcı olanı, "protocol version mismatch -- is your shell clean?" (protokol sürümü uyuşmazlığı -- kabuğunuz temiz mi?) iletisidir.
Bu ileti genellikle, rsync’in aktarım için kullandığı akım üzerinde istenmeyen veriler üreten uzak kabuk oluşumları ya da başlatma betiklerinizden kaynaklanır. Bu soruna tanı koymanın yolu, uzak kabuğu şöyle çalıştırmaktır:
ssh uzakkonak /bin/true > out.dat
Süzme kalıplarında hata ayıklamak için, -vv seçeneği belirtilebilir. rsync, bu ayrıntı seviyesinde dosyaların tek tek neden içerildiğini veya dışlandığını gösterecektir.
0 - Başarılı
1 - Sözdizimi ya da kullanım hatası
2 - Protokol uyumsuzluğu
3 - girdi/çıktı dosyalarını,
dizinlerini seçerken oluşan hatalar
4 - İstenen eylem desteklenmiyor, iki olasılık
var:
--old-args, --no-old-args veya --protect-args seçeneği kullanıldığında bu değişken yok sayılır.
3.2.4 sürümünden itibaren desteklenmektedir.
--old-args, --no-old-args veya --protect-args seçeneği kullanıldığında bu değişken yok sayılır.
3.1.0 sürümünden itibaren desteklenmektedir. 3.2.4 ve sonrasında RSYNC_OLD_ARGS değişkenine sıfırdan farklı bir değer atanmışsa bu değişken yok sayılır.
/etc/rsyncd.conf veya rsyncd.conf
--server ve --sender seçenekleri rsync tarafından dahili olarak kullanılır ve normal şartlar altında asla bir kullanıcı tarafından kullanılmamalıdır. Yalnızca bir rsync komutunu çalıştırabilen bir oturum açmak gibi belirli senaryolarda bu seçenekler hakkında biraz bilgi sahibi olmak gerekebilir. Örneğin, rsync paketinin support dizininde, kısıtlı bir ssh oturumu açmak için kullanılabilen rrsync (restricted -kısıtlı- rsync) adında örnek bir betik bulanmaktadır.
rsync GNU kamu lisansı altında dağıtılmaktadır. Ayrıntılar için COPYING dosyasına bakılabilir.
Sanalyöremiz: https://rsync.samba.org/
Bu kılavuz sayfasında yanıtlarını bulamadığınız sorular için sanalyöremizde bir SSS bölümü bulunmaktadır.
rsync’in GitHub projesi: https://github.com/WayneD/rsync.
Bu uygulamayı beğeniyorsanız, sizden bunu duymak bizi mennun edecektir.
Bu uygulamada, Jean-loup Gailly ve Mark Adler tarafından yazılmış zlib sıkıştırma kütüphanesi kullanılmaktadır.
Gidenlere teşekkürler: John Van Essen, Matt McCutchen, Wesley W. Terpstra, David Dykstra, Jos Backus, Sebastian Krahmer, Martin Pool ve aramızdan ayrılan ama unutulmayan yoldaşımız J.W. Schultz’a.
Ayrıca, Richard Brent, Brendan Mackay, Bill Waite, Stephen Rothwell ve David Bell’e de teşekkür ederiz. Unuttuklarım varsa özür dilerim.
rsync ilk olarak Andrew Tridgell ve Paul Mackerras tarafından yazıldı. Daha sonra bir çok kişi tarafından geliştirildi. Şu an Wayne Davison tarafından sürdürülmektedir.
Destek ve geliştirme eposta listelerimiz için bkz: https://lists.samba.org
© 2005, 2022 Nilgün Belma Bugüner
Bu çeviri özgür yazılımdır:
Yasaların izin verdiği ölçüde
HİÇBİR GARANTİ YOKTUR.
Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri
yapmak için https://github.com/TLBP/manpages-tr/issues adresinde
"New Issue" düğmesine tıklayıp yeni
bir konu açınız ve isteğinizi belirtiniz.
15 Nisan 2022 | rsync 3.2.4 |