rsync(1) rsync(1)
rsync - rcp yerine daha hzl ve esnek bir ara
rsync [seenek]... kaynak [kaynak]... [kullanc@]konak:hedef
rsync [seenek]... [kullanc@]konak:kaynak hedef
rsync [seenek]... kaynak [kaynak]... hedef
rsync [seenek]... [kullanc@]konak::kaynak [hedef]
rsync [seenek]... kaynak [kaynak]... [kullanc@]konak::hedef
rsync [seenek]... rsync://[kullanc@]konak[:port]/kaynak [hedef]
rsync ounlukla rcp gibi davranan bir uygulamadr, ancak daha fazla
seenek ierir ve zellikle hedefteki dosyann mevcut olmas halinde dosya
aktarmn ok daha hzl gerekletiren rsync uzak gncelleme protokoln
kullanr.
rsync uzak gncelleme protokol rsync'in a balants zerinden sadece iki
dosya grubu arasndaki farklar aktarmasn mmkn klar. Bunu bu pakete elik
eden teknik raporda aklanan verimli bir toplama salamas arama
algoritmasn kullanarak yapar.
rsync'e zg baz ek zellikler:
o balarn, aygtlarn, sahip, grup ve izinlerin kopyalanmasn destekler
o GNU tar'a benzer exclude ve exclude-from seenekleri
o CVS'nin yok sayaca dosyalarn yoksaylmasn salayan CVS dlama (exclude)
kipi
o rsh, ssh gibi uzak effaf kabuklar kullanabilir
o root kullancsnn yetkilerine ihtiya duymaz
o grnmeyen maliyetleri asgari dzeyde tutmak iin dosya aktarmlarnda
borulama yapar
o hem anonim hem de kimlik dorulamal rsync sunucu destei (yanslama iin
ideal)
rsync sekiz farkl yntemle kullanlabilir:
o yerel dosyalar kopyalamak iin. Bu arda ne kaynak ne de hedef dosya
yolu bir : ayrac iermez.
o yerel makineden uzaktaki bir makineye bir uzak kabuk uygulamas (ssh
veya rsh gibi) kullanarak dosyalar kopyalamak iin. Bu arda sadece
hedef dosya yolu tek bir : ayrac ierir.
o uzaktaki bir makineden yerel makineye bir uzak kabuk uygulamas (ssh
veya rsh gibi) kullanarak dosyalar kopyalamak iin. Bu arda sadece
kaynak dosya yolu bir : ayrac ierir.
o uzaktaki bir rsync sunucusundan yerel makineye kopyalama yapmak iin.
Bu arda sadece kaynak dosya yolu bir :: ayrac veya bir rsync://
URL'si ierir.
o yerel makineden uzaktaki bir rsync sunucusuna kopyalama yapmak iin.
Bu arda sadece hedef dosya yolu bir :: ayrac veya bir rsync://
URL'si ierir.
o uzaktaki makinede bulunan rsync sunucusunu ve bir uzak kabuk
uygulamasn kullanarak, uzaktaki makineden yerel makineye kopyalama
yapmak iin. Bu arda kaynak dosya yolunun bir :: ayrac iermesi yannda
--rsh=komut (ya da -e komut) seenei de kullanlr.
o uzaktaki makinede bulunan rsync sunucusunu ve bir uzak kabuk
uygulamasn kullanarak, uzaktaki makineye yerel makineden kopyalama
yapmak iin. Bu arda hedef dosya yolunun bir :: ayrac iermesi yannda
--rsh=komut (ya da -e komut) seenei de kullanlr.
o uzaktaki makinede bulunan dosyalarn listesini almak iin. Bu ilem
uzaktaki makineden kopyalama ilemindeki gibi ancak yerel hedefi
belirtmeden yaplr.
Tm durumlarda (burada listelenenler dnda kalanlar dahil) kaynak ve
hedef belirtimlerinden biri daima yerel olmaldr (yani rsync ile iki
uzak makine arasnda ilem yapamazsnz).
Kurulum ilemleri iin README dosyasna baknz.
Kurduktan sonra, bir uzak kabuk zerinden eritiiniz (veya rsync artalan
kipi protokol kullanarak eritiiniz) her makinede rsync
kullanabilirsiniz. Uzak dosya aktarmlar iin, gnmzde rsync iletiimde ssh
kullanmasna ramen ntanml olarak kullanaca uzak kabuk rsh veya remsh
gibi bir kabuk olarak da ayarlanabilir.
Bundan baka -e komut satr seeneinin argman olarak veya RSYNC_RSH ortam
deikenine atayarak da istediiniz bir uzak kabuk uygulamasn
belirtebilirsiniz.
Yksek derecede gvenlik istendiinde ortak kanaat ssh kullanmaktr.
Yalnz, rsync'in hem yerel hem de uzak makine zerinde kurulu olmas
gerektiini unutmayn.
rsync'i rcp'yi nasl kullanyorsanz yle kullanabilirsiniz. Biri uzak
makine olmak zere bir kaynak ve bir hedef belirtmelisiniz.
phesiz szdizimini aklamann en kolay yolu bir rnek vermektir:
rsync -t *.c foo:src/
Bu komut alma dizinindeki *.c kalb ile eleen tm dosyalar foo
makinesinin src dizinine kopyalayacaktr. Bu dosyalardan uzak makinede
mevcut olanlar iin rsync uzak gncelleme protokol kullanlarak sadece
farklar gnderilir. Bu konuda daha ayrntl bilgi iin teknik rapora baknz.
rsync -avz foo:src/bar /data/tmp
Bu komut, foo makinesindeki src/bar dizinindeki tm dosyalar varsa
altdizinlerdekileri de iererek yerel makinenin /data/tmp dizinine
kopyalar. Dosyalarn, sembolik balarn, aygtlarn, zniteliklerinin,
izinlerinin, sahiplerinin, v.s.sinin korunmasn salayan "ariv" kipinde
aktarm yaplr. Buna ek olarak, aktarm ileminin verileri ieren ksmlarnn
boyutunu kltmek iin sktrma uygulanr.
rsync -avz foo:src/bar/ /data/tmp
Kaynak yolunun sonuna eklenen / iareti hedefte ek bir dizin
oluturmaktan kanlmas davrann deitirir. Sona eklenen bu / iaretinin
"dizini ismiyle kopyala" davrannn zdd olarak "bu dizinin ieriini
kopyala" anlamna geldiini dnebilirsiniz, fakat her iki durumda da
dizinin znitelikleri hedefteki dizine kopyalanacaktr. Baka bir deyile,
aadaki komutlarn her biri ile dosyalar ayn ekilde, /dest/foo dizininin
znitelikleri ayarlanarak kopyalanr:
rsync -av /src/foo /dest
rsync -av /src/foo/ /dest/foo
Ayrca, rsync'i sadece yerel kipte de kullanabilirsiniz. Bu durumda
hedef ve kaynak dosya yollarnn ikisi de isimlerinde ':' iermeyecektir.
Kopyalama ilemi glendirilmi bir kopyalama komutu verilmi gibi
yryecektir.
rsync somehost.mydomain.com::
Bu komut, somehost.mydomain.com makinesindeki kullanlabilecek tm anonim
rsync modllerini listeleyecektir. (Daha fazla bilgi iin aadaki blmlere
baknz.)
Bir uzak makineden ok sayda dosya iin istek yaparken aralarnda boluk
braklm kaynak dosya yollarn trnak iine alarak belirtebilirsiniz. Baz
rnekler:
rsync makine::'modlismi/dizin1/dosya1 modlismi/dizin2/dosya2' /hedef
Bu komut, bir rsync sunucusundan /hedef dizinine dosya1 ve dosya2
dosyalarn kopyalayacaktr. Her argman ayn "modlismi/" nekini iermeli ve
arada sadece bir boluk karakteri bulunmaldr. Dier tm boluklarn dosya
isimlerine eklenecei varsaylr.
rsync -av makine:'dizin1/dosya1 dizin2/dosya2' /hedef
Bu komut dosya1 ve dosya2 dosyalarn /hedef dizinine kopyalayacaktr.
Szck ayrma ilemi uzak kabuk tarafndan yaplr, yani eer szck ayrma
gereklememise, bunun sebebi uzak kabuun bu ilem iin yaplandrlmam
olmasdr (nedendir bilinmez, ok yaygndr). smi boluk ieren bir dosyay
kopyalamak isterseniz, ya bunu uzak kabuun anlayabilecei bir yntemle
yapmal ya da boluklarn yerine dosya ismi kalplar kullanmalsnz. ki rnek:
rsync -av makine:'isminde\ boluk\ olan\ dosya' /hedef
rsync -av makine:isminde?boluk?olan?dosya /hedef
kinci rnekte, elemeyen kalplar kabuunuzun anlayaca varsaylmtr. Bu
takdirde bunlar tersbl ncelemeli hale getirecektir.
Dosya aktarm iin rsync'i bir uzak kabuk olmakszn da kullanmak mmkndr.
Bu durumda, TCP 873. port zerinde alan bir uzak rsync sunucusuna
balanacaksnz.
RSYNC_PROXY ortam deikenine bir makine:port ifti belirterek bir vekil
sunucu zerinden de balant salayabilirsiniz. Burada, vekil sunucunuzun
yaplandrmasnn 873. port zerinden balantya izin verdiinden emin
olmalsnz.
rsync'i bu yntemle kullanmann bir uzak kabuk zerinden kullanmaya
farklar unlardr:
o ya makine ismini dosya yolundan ayrmak iin tek bir : yerine ::
kullanrsnz ya da bir rsync:// URL biimini kullanrsnz.
o uzak sunucu balandnzda gnn iletisini basabilir.
o uzak sunucu iin bir dosya yolu belirtmezseniz, sunucu zerinde
eriilebilir olan dosya yollarnn listesini alrsnz.
o bir yerel hedef belirtmezseniz, uzak sunucu istediiniz dosyalarn bir
listesini yollar.
Uzak sunucu zerindeki baz dosya depolar kimlik dorulamas
gerektirebilir. Byle bir durumda balanmak istediinizde sizden parola
istenecektir. Parola istemi almamak iin parolanz RSYNC_PASSWORD ortam
deikenine kaydedebileceiniz gibi, --password-file seeneini de
kullanabilirsiniz. Bu kullanm rsync'i bir betik ile kullandnz
durumlarda yararldr.
Uyar: Baz sistemlerde ortam deikenlerini tm kullanclar grebilmektedir.
Bu tr sistemlerde --password-file seeneinin tercih edilmesi
nerilir.
Balant iin ssh veya rsh kullanarak ve dosya aktarmn rsync sunucusunun
yeteneklerinden yararlanarak yapmann mmkn olmas bazan kullanl
olabilmektedir. zellikle, bir uzak makineye ssh zerinden balanmak
istediinizde (ifreleme iin ya da gvenlik duvarndan geebilmek iin) ama
bunun yannda rsync sunucusunun yeteneklerinden de yararlanmak
istediiniz durumlarda bu yararldr (BR UZAK KABUKTAN BR RSYNC SUNUCUSU
ALITIRMAK blmne baknz).
Kullanc asndan, rsync'in bu yntemle kullanlmas, komut satrndan uzak
kabuk uygulamasnn --rsh=komut ile belirtilmesi dnda bir rsync
sunucusuna balanmaktan farkszdr. (Burada, RSYNC_RSH ortam deikenine bir
atama yaparak uzak kabuk uygulamas belirtmek, beklenen ilevsellii
salamayacaktr.)
Uzak kabuk kullancsn, rsync sunucu kullancsndan ayrmak iin uzak kabuk
komutunda '-l kullanc' seeneini kullanabilirsiniz:
rsync -av --rsh="ssh -l ssh-kullancs" \
rsync-kullancs@makine::modl[/yol] yerel-yol
"ssh-kullancs" ssh seviyesinde kullanlmaldr; "rsync-kullancs" ise uzak
makinenin rsyncd.conf dosyasndan snanacaktr.
Bir rsync sunucusu bir yaplandrma dosyas kullanlarak yaplandrlr. Daha
ayrntl bilgi iin rsyncd.conf(5) klavuz sayfasna baknz. rsync'i bir uzak
kabuk uygulamas zerinden ve root olarak altrmadka, ntanml olarak
/etc/rsyncd.conf dosyas kullanlr. Aksi takdirde, uzak makinedeki alma
dizininde (genellikle $HOME) bulunan rsyncd.conf ntanmldr.
rsync sunucusu yaplandrma dosyas ile ilgili tm bilgiyi rsyncd.conf(5)
klavuz sayfasnda bulabilirsiniz.
Uzak kullanc root (chroot, setuid/setgid, v.s.) olmadka baz yaplandrma
seenekleri kullanlamaz olacaktr. Eer rsync sunucusunu bir uzak kabuk
uygulamas zerinden kullanyorsanz, services dosyasnda rsync sunucu
portunun bulunmas ya da inetd'nin yaplandrlmas gerekli deildir.
Bir tek kullanmlk ssh anahtar dnda bir rsync sunucusu altrmak iin
rsyncd.conf(5) klavuz sayfasndaki bu blme baknz.
Burada rsync kullanmyla ilgili baz rnekler bulacaksnz.
Byk MS Word dosyalar ve eposta dizinlerinden oluan eimin ev dizinini
yedeklemek iin yle bir cron ii altryorum:
rsync -Cavz . arvidsjaur:backup
Her gece bir PPP balants zerinden bu dizini ayrca, kendi makinemin
arvidsjaur dizinine kopyalyorum.
Samba kaynak aacn ezamanl tutmak iin u Makefile hedeflerini
kullanyorum:
get:
rsync -avuzb --exclude '*~' samba:samba/ .
put:
rsync -Cavuzb . samba:samba/
sync: get put
Bu sayede balantnn br ucundaki bir CVS diziniyle benimkini gncellememi
salyor. Uzak makinede bir takm CVS ilemleri yaptktan sonra uzak CVS
protokol ile bunlar kendi makinemde gncellemek gecikmelerden dolay pek
verimli olmuyor.
"eski" ve "yeni" ftp sitelerim arasnda bir dizini u komutla yanslyorum:
rsync -az -e ssh --delete ~ftp/pub/samba nimbus:"~ftp/pub/tridge"
Bu komut her saat ba cron'dan altrlyor.
Burada rsync'de kullanlabilen seeneklerin bir zetine yer verilmitir
(rsync --help komutu bu listeyi ktlar). Bu seenekler bir sonraki blmde
ayrntl olarak aklanmtr.
-v, --verbose kt daha ayrntl olur
-q, --quiet hatalar dnda bilgi verilmez
-c, --checksum sadece toplam salamaya baklr, zaman ve
boyut deiikliklerine baklmaz
-a, --archive ariv kipi; -rlptgoD (-H'sz) ile ayn
-r, --recursive dizinlerin alt dizinlerine inilir
-R, --relative greli dosya yollar kullanlr
--no-relative --relative kapatlr
--no-implied-dirs -R uygulanm dizinler gnderilmez
-b, --backup yedekleme yaplr (--suffix ve
--backup-dir seeneklerine bakn)
--backup-dir=DZN sadece belirtilen dizinin ierii
yedeklenir
--suffix=SONEK yedekleme soneki
(--backup-dir yoksa ~ ntanmldr)
-u, --update hedeftekiler daha yeniyse bu dosyalar
atlanr
--inplace hedef dosyalar yerinde gnceller
-d, --dirs altdizinlere inmeden dizinleri aktarr
-l, --links sembolik balar sembolik ba olarak
kopyalar
-L, --copy-links sembolik ba deil ban son hedefi
kopyalanr
--copy-unsafe-links sadece gvensiz sembolik balar
dntrlr
--safe-links aacn dn hedefleyen sembolik
balar yoksaylr
-H, --hard-links sabit balar korunur
-K, --keep-dirlinks sembolik bal dizinler alcda dizin
yaplr
-p, --perms izinler korunur
-o, --owner sahip korunur (sadece root)
-g, --group grup korunur
-D, --devices aygtlar korunur (sadece root)
-t, --times zamanlar korunur
-O, --omit-dir-times zamanlar korunurken dizinler bunun
dnda tutulur
-S, --sparse seyrek dosyalar en verimli ekilde
elde eder
-n, --dry-run ilemi yapyormu gibi gsterir ama yapmaz
-W, --whole-file dosyalar tamamen kopyalar
(rsync algoritmas ile farklar deil)
--no-whole-file daima arttrml rsync algoritmas
kullanlr
-x, --one-file-system dosya sistemi snrlarnn dna klmaz
-B, --block-size=BOYUT sabit bir blok boyunda salama toplamna
zorlar
-e, --rsh=KOMUT kullanlacak uzak kabuk uygulamas
belirtilir
--rsync-path=UYGULAMA uzak makinede rsnc'in altraca
uygulama
--existing sadece hedefte mevcut olan dosyalar
gncellenir
--ignore-existing hedefte mevcut olan dosyalar yoksaylr
--remove-sent-files alnan dosyalar/sembolik balar
gndericide silinir
--del --delete-during ile ayn
--delete gndericide olmayan dosyalar alcda
silinir
--delete-before alcda aktarm ncesi silme yaplr
(ntanml)
--delete-during alcda aktarm srasnda silme yaplr
--delete-after alcda aktarm sonras silme yaplr
--delete-excluded alcda ayrca dlanm dosyalar da
silinir
--ignore-errors G/ hatalar olsa da siler
--force dizinler bo olmasa bile silinir
--max-delete=SAYI SAYIdan fazla dosya silinmez
--max-size=BOYUT BOYUTtan daha byk dosyalar aktarlmaz
--partial ksmen aktarlm dosyalar tutulur
--partial-dir=DZN ksmen aktarlm dosyalar DZNde tutulur
--delay-updates gncellenecek tm dosyalar sona braklr
--numeric-ids kullanc/grup kimliklerini isimlerle
eletirmez
--timeout=SRE G/ zamanamn SRE saniyeye ayarlar
-I, --ignore-times zaman ve boyut bakmndan eleen dosyalar
atlanmaz
--size-only boyutlar ayn olan dosyalar atlanr
--modify-window=SAYI doruluu arttrmak iin deiiklik
zamanlar karlatrlr
-T, --temp-dir=DZN geici dosyalar DZNde oluturur
-y, --fuzzy hedefte dosya yoksa benzerini bulur
--compare-dest=DZN alnan dosyalar ayrca DZNdekilerle
karlatrr
--link-dest=DZN deimediyse DZNdeki dosyalara sabit ba
-z, --compress aktarm srasnda dosya verisi sktrlr
-C, --cvs-exclude dosyalar CVS'nin yapt gibi yoksaylr
-f, --filter=KURAL bir dosya szme kural ekler
-F --filter='dir-merge /.rsync-filter' ve
yinelemeli: --filter='- .rsync-filter'
ile ayn
--exclude=KALIP KALIP ile eleen dosyalar dlanr
--exclude-from=DOSYA dlama kalplar DOSYAdan okunur
--include=KALIP KALIP ile eleen dosyalar dlanmaz
--include-from=DOSYA dlanmayan kalplar DOSYAdan okunur
--files-from=DOSYA aktarlacak dosyalarn isimlerinin listesi
DOSYAdan okunur
-0, --from0 *from seeneklerindeki dosya listeleri bo
karakter sonlandrmal kabul edilir
--version srm numarasn basar
--port=PORT baka bir port belirtmek iin
--blocking-io uzak kabukta engellemeli G/ kullanlr
--no-blocking-io engellemeli G/ ntanml olduunda bunu
iptal eder
--stats dosya aktarm srasnda durum bilgileri
verir
--progress aktarm srasnda geliimi gsterir
-P --partial --progress ile ayn
-i, --itemize-changes tm gncellemeler iin bir deiiklik
zeti ktlar
--log-format=BM aktarmlar belirtilen biimde gnlkler
--password-file=DOSYA parola DOSYAdan okunur
--list-only dosyalar kopyalamaz, sadece listeler
--bwlimit=KBPS saniyede kBayt cinsinden G/ band genilii
--write-batch=DOSYA bir betikli gncellemeyi DOSYAya yazar
--read-batch=DOSYA bir betikli gncellemeyi DOSYAdan okur
--checksum-seed=SAYI blok/dosya salama toplam tohumunu ayarlar
-4, --ipv4 IPv4 tercih edilir
-6, --ipv6 IPv6 tercih edilir
-h, --help bu yardm iletisini gsterir
rsync ayrca bir artalan sreci olarak da altrlabilir. Bu durumda u
seenekleri kabul eder:
--daemon bir rsync artalan sreci olarak alr
--address=ADRES belirtilen adres kullanlr
--bwlimit=KBPS saniyede kBayt cinsinden G/ band genilii
--config=DOSYA rsyncd.conf yerine kullanlacak DOSYA
--no-detach st sreten ayrk almaz
--port=PORT belirtilen PORTu dinler
-v, --verbose ayrnt dzeyini arttrr
-4, --ipv4 IPv4 tercih edilir
-6, --ipv6 IPv6 tercih edilir
-h, --help bu yardm iletisini gsterir
rsync GNU uzun seenekler paketini kullanr. ou komut satr seenei hem ksa
hem de uzun seenek ierir. Baz seenekler ise sadece uzun seeneklerden
oluur. `=' iareti ieren seeneklerdeki parametreler istee baldr; `='
yerine boluk kullanlabilir.
-h, --help
rsync tarafndan kabul edilen seenekleri aklayan ksa bir yardm
iletisi basar.
--version
rsync srm numarasn basar ve kar.
-v, --verbose
Bu seenek aktarm srasnda verilen bilgi miktarn arttrr. rsync
ntanml olarak sessiz alr. Tek -v belirtildiinde, hangi dosyalarn
aktarldn gsterip sonunda bir zet basar. ki -v belirtildiinde
atlanan dosyalar gsterir ve sonunda daha fazla bilgi verir.
kiden fazla -v kullanm sadece rsync hata ayklamas yapyorsanz
anlamldr.
Aktarlan dosya isimlerinin ktlanmasnda --log-format seeneinin
ntanml olarak "%n%L" ile kullanld varsaylarak sadece dosyalarn
isimleri ve varsa sembolik balar hedefleri ile belirtilir. Tek
-v seviyesinden bir ayrntda bir dosyann znitelikleri deimise bu
gsterilmez. Deitirilen zniteliklerin elere gre listelenmesi
isterseniz (--itemize-changes seeneiyle ya da --log-format
seeneine "%i" ekleyerek), istemcideki ktda deitirilen tm elerin
ayrnt dzeyi arttrlr. Daha fazla bilgi iin --log-format seeneinin
aklamasna baknz.
-q, --quiet
Bu seenek aktarm srasnda verilen bilgi miktarn azaltr. zellikle
uzak sunucudaki bilgi iletileri basklanr. Bu seenek rsync'i
cron'dan altrrken yararldr.
-I, --ignore-times
Normalde rsync hedefte de ayn boyutta ve ayn deiiklik zamanna
sahip dosyalar varsa bunlar atlayacaktr. Bu seenek bu "hzl
snama" davrann kapatr.
--size-only
Normalde rsync hedefte de ayn boyutta ve ayn deiiklik zamanna
sahip dosyalar varsa bunlar atlayacaktr. Bu seenekle, dosyalarn
zamanlarna baklmakszn hedefte de ayn boyutta iseler
aktarlmazlar. Zaman deerlerinin doru tutulmad baka bir yanslama
sistemini kullandktan sonra rsync'i kullanmaya balayacaksanz bu
seenek yararldr.
--modify-window=say
ki zaman deerini karlatrrken, fark say'ya eitse rsync bu
deerleri eit kabul eder. Bu fark normalde 0 dr (tam eitlik),
ancak bu fark baz durumlarda daha byk bir deere ayarlamak daha
yararldr. rnein, MS Windows FAT dosya sistemi (zaman deerleri 2
saniyelik znrle sahiptir) taraflardan biri olduunda
--modify-window=1 yararldr (1 saniyelik farklara izin vermek).
-c, --checksum
Bu seenek gndericiyi aktarmdan nce tm dosyalar 128 bitlik MD4
salama toplamn kullanarak snamaya zorlar. Salama toplam dorudan
alcda snanr ve mevcut olanlar arasnda ayn salama toplaml, ayn
boyutlu ve ayn isimli olanlar aktarlmaz. Bu seenek aktarm
ilemini olduka yavalatabilir.
-a, --archive
Bu seenek -rlptgoD seeneklerine edeerdir. Alt dizinlere inerek
ilem yaplmasn ve hemen hemen hereyin korunmasn istemenin en
kestirme yoludur; bir ey dnda: --files-from belirtilmise -r
uygulanmayacaktr.
ok sayda bal dosyann varl pahalya mal olacandan -a seenei sabit
balar korumaz. Bunu istiyorsanz -H seeneini ayrca
belirtmelisiniz.
-r, --recursive
Bu seenek alt dizinlerinde ardk olarak kopyalanmasn salar. Ayrca
--dirs (-d) seeneine de baknz.
-R, --relative
Greli dosya yollar kullanlr. Yani, komut satrnn gnderici ksmnda
belirtilen dosya yolunun son paras deil, dosya yolunun tamam
kopyalanr. Bu seenek ayn anda ok sayda dizini gndermek iin
yararldr. rnein yle bir komut,
rsync /foo/bar/foo.c remote:/tmp/
uzak makinede /tmp/foo.c dosyasn oluturur. Bunun yerine u komutu
kullansaydnz,
rsync -R /foo/bar/foo.c remote:/tmp/
uzak makinede /tmp/foo/bar/foo.c dosyas oluturulacakt (dosya
yolunun tamam kopyalanr). Karya yollanacak yol uzunluunu
snrlamak iin yle yapabilirsiniz:
cd /foo
rsync -R bar/foo.c remote:/tmp/
Bu komut uzak makinede /tmp/bar/foo.c dosyasn oluturur.
--no-relative
--relative seeneini iptal eder. Bu zellikle --files-from
seeneinin gerektii durumlarda --relative seenei uygulanmakszn
dosyalar ileme sokmakta yararldr.
--no-implied-dirs
--relative seenei ile birlikte kullanldnda her dosya yolundaki
dolayl dizinler, aktarmn paras olarak yinelenmez. Bu dosya
aktarmn daha elverili yapt gibi ayrca dosya yolunun dolayl
paralarnda iki tarafta elemeyen sembolik balarn varln mmkn klar.
rnein, "/path/foo/file" dosyasn -R ile aktarrsanz, hedefte
"/path" ve "/path/foo" ile kaynan dizin ve sembolik balar
tamamen eletirilecektir. --no-implied-dirs seeneinin kullanm bu
dolayl dizinlerin her ikisinin de atlanmasna yol aar. Yani, eer
"/path" bir makine zerinde gerek bir dizin, ancak dier makinede
bir sembolik ba ise, rsync bunu deitirmeye almayacaktr.
-b, --backup
Bu seenekle, evvelce mevcut hedef dosyalarn her aktarmnda ya da
silinmesinde bu dosyalarn isimleri deitirilir. Yedek dosyalarn
nereye gideceini ve nasl bir sonek alacaklarn --backup-dir ve
--suffix seenekleri ile belirtebilirsiniz. Eer --backup-dir
seeneini belirtmezseniz, --omit-dir-times seenei etkin
klnacaktr.
--backup-dir=dizin
--backup seenei ile birlikte kullanldnda bu seenekle yedek
dosyalarn hangi dizinde saklanaca belirtilebilir. Bu, arttrml
yedekleme yaparken ok yararldr. Buna ek olarak --suffix seeneini
kullanarak bir yedek soneki de belirtebilirsiniz (aksi takdirde
dosyalar belirtilen dizine kendi isimleri ile yedeklenir).
--suffix=sonek
Bu seenek --backup (-b) ile kullanldnda, belirtilen sonek ntanml
yedekleme sonekinin yerine kullanlr. --backup-dir
belirtilmemise, ntanml sonek ~ iaretidir, aksi takdirde bo bir
dizgedir.
-u, --update
Bu seenek, hedefte mevcut olan bir dosyann deiiklik zamannn
kaynak dosyannkinden daha yeni olduu durumda atlanmasn salar.
(Eer hedef dosyann deiiklik zaman kaynankiyle aynysa, ama
boyutlar farklysa gncelleme yaplacaktr.)
--update seeneinin u anki gerekleniminde gnderici ve alc arasnda
dosya biimlerinde bir fark varsa, bu, gncelleme iin tarihlerden
daha nemli olarak ele alnr. Baka bir deyile, hedef bir dosyaya
sahipken, kaynak bir dizin veya bir sembolik baa sahipse, aktarm
dosyalarn zaman deerlerine baklmakszn yaplr. Bu davran ileride
deiebilir (bu konuda bir fikriniz varsa, eposta listesinde bunu
aklamaktan ekinmeyin).
--inplace
Bu seenek rsync'in dosyann yeni bir kopyasnn oluturulmamasna ve
yerine tanmamasna sebep olur. Bunun yerine rsync mevcut dosyann
zerine yazacaktr,yani rsync algoritmas a ykn tamamen azaltmay
baaramaz (henz veriyi uyumlu sralamay denemediinden). Buna bir
istisna, rsync yedek dosyalar aktarmda temel dosya olarak
kullanma yeterliinde olduundan, seenein --backup ile birlikte
kullanlmasdr.
Bu seenek blok temelli deiiklikler olan ya da sonuna ekleme
yaplan ok byk dosyalarla, disk ve a bakmndan snrl sistemlerde
yararldr.
Bu seenek --partial (kesilmeye uram bir aktarmda dosya silinmez)
seeneini uygular, fakat --partial-dir ve --delay-updates
seenekleriyle eliir. rsync 2.6.4 ncesinde --inplace ayrca
--compare-dest ve --link-dest seenekleriyle de eliiyordu.
Uyar: Dosya verisi aktarm srasnda kararsz bir durumda olacaktr
(ve byk ihtimalle aktarm kesintiye uradktan sonra da),
dolaysyla, kullanlmakta olan dosyalar bu seenei
kullanarak gncellememelisiniz. Ayrca, alc kullancnn yazma
izni olmayan dosyalarn rsync tarafndan yerinde
gncellenemeyeceini de unutmayn.
-d, --dirs
Gnderen tarafn saptanan her dizini iereceini syler. --recursive
seeneinin tersine, bir dizinin ierii, dizin komut satrnda "." ya
da bir bl zgisi ile biten bir isim ("foo/" gibi) ile
belrtilmedike kopyalanmaz. Bu seenek ya da --recursive seenei
olmakszn, rsync saptad tm dizinleri atlayacaktr (ve herbiri iin
bir ileti ktlayacaktr).
-l, --links
Saptanan her sembolik ba hedefte oluturulur.
-L, --copy-links
Sembolik ba saptandnda sembolik ba deil, hedefindeki dosya
kopyalanr. rsync'in eski srmlerinde, bu seenek ayrca alc tarafa,
dizin sembolik ba gibi sembolik balar izlemesini sylemek gibi
bir yan etkiye sahipti. Gnmzde ise, rsync, byle bir durumda, bu
ek davran salamak iin sizin --keep-dirlinks (-K) seeneini
belirtmenizi gerektirir. Buna tek istisna, -K seeneini anlayacak
ok eski bir rsync ile dosyalarn gnderilmesidir -- bu durumda -L
seenei daha eski bir rsync ile hala -K seeneinin yan etkisine
sahip olacaktr.
--copy-unsafe-links
Bu seenek rsync'e, kopyalanan aacn dndaki bir hedefi gsteren
sembolik balar kopyalamasn syler. Mutlak sembolik balar ayrca
sradan dosyalar olarak ele alnr, bylece bunlar --relative
kullanldnda kaynak dosya yolunun kendindeki sembolik balar
olurlar.
safe-links
Bu seenek rsync'e, kopyalanan aacn dndaki bir hedefi gsteren
sembolik balar yoksaymasn syler. Bu seenein --relative seeneiyle
birlikte kullanlmas beklenmedik sonulara yol aabilir.
-H, --hard-links
Bu seenek rsync'e, sabit balar ayn kaynak sistemdeki gibi
yeniden oluturmasn syler. Bu seenek olmakszn sabit balar sradan
dosyalar olarak ele alnrlar.
rsync'in, eer ban her iki paras da dosya listesi ile
gnderilmise, sabit balar saptayabileceini unutmayn.
Bu seenek ilemi yavalatabilir, gerekten bu ilevsellie ihtiyacnz
varsa kullann.
-K, --keep-dirlinks
Alc tarafta, bir sembolik ba bir dizini gsteriyorsa, bunun
gnderici tarafta bir dizinle eletii varsaylacaktr.
-W, --whole-file
Bu seenekle arttrml rsync algortimas kullanlmaz ve bunun yerine
dosya olduu gibi gnderilir. Eer kaynak ile hedef arasndaki band
genilii diskin band geniliinden (zellikle disk, a dosya
sisteminin bir paras ise) daha yksekse bu seenek daha hzl
olabilir. Kaynak ve hedef, yerel dosya yollar olarak
belirtilmise bu seenek ntanmldr.
--no-whole-file
--whole-file ntanml olduunda bu seenek onu kapatr.
-p, --perms
Bu seenek rsync'e, izinleri hedefte ayn kaynak sistemdeki gibi
belirlemesini syler.
Bu seenek olmakszn, her yeni dosya izinlerini kaynak dosyann
izinlerine ve alc taraftaki umask'a gre belirlenir, dier tm
dosyalar (gncellenenler dahil) kendi mevcut izinleriyle kalr
(bu, cp gibi dier dosya kopyalama aralarnda da byledir).
-o, --owner
Bu seenek rsync'e, hedef dosyann sahibini ayn kaynak dosyadaki
gibi belirlemesini syler. ou sistemde sadece ayrcalkl kullanc
dosya aidiyetini belirleyebilir. ntanml olarak, koruma isim
tarafnda yaplr, fakat baz durumlarda son are olarak kullanc
kimlii kullanlr. Bu konu --numeric-ids seeneinin aklamasnda daha
ayrntl incelenmitir.
-g, --group
Bu seenek rsync'e, hedef dosyann grubunu ayn kaynak dosyadaki
gibi belirlemesini syler. Alc tarafta rsync'i ayrcalkl kullanc
altrmyorsa, sadece alcnn yesi olduu gruplar iin bu yaplabilir.
ntanml olarak ilem grup ismine gre yaplr, ancak baz durumlarda
son are olarak grup kimlii de kullanabilir. Bu konu
--numeric-ids seeneinin aklamasnda daha ayrntl incelenmitir.
-D, --devices
Aktarlan karakter ve blok aygtlar hedefte yeniden oluturulur. Bu
seenei sadece ayrcalkl kullanc kullanabilir.
-t, --times
Bu seenek rsync'e, dosyalar deiiklik zamanlarna gre aktarmasn ve
bunlar uzak sistemde gncellemesini syler. Bu seenek
kullanlmazsa, eniyileme yznden deitirilmemi dosyalarn dlanmas
verimli olamaz; baka bir deyile, -t veya -a seeneinin yokluu
sonraki aktarmda -I kullanlm gibi tm dosyalarn gncellenmesine
yol aar (rsync algoritmas gncellemeyi olduka verimli yapacandan,
eer dosyalar gereekten deimemise, -t kullanmanz ok daha iyi
olacaktr).
-O, --omit-dir-times
Eer rsnc deiiklik zamanlarn gncelliyorsa (--times ile), bu
seenek belirtildiinde dizinleri bunun dnda tutar. Eer alc
tarafta NFS dizinleri paylatryorsa, -O seeneini kullanmak daha
iyidir. Bu seenek --backup seenei --backup-dir olmakszn kullanlm
gibi sonu verir.
-n, --dry-run
Bu seenek rsync'e, herhangi bir dosya aktarm yapmamasn, sadece
yapyormu gibi ilemleri raporlamasn syler.
-S, --sparse
Bu seenekle rsync, seyrek dosyalarn hedefte daha az yer
kaplayacak ekilde elde edilmesini salamaya alr.
Bilgi: Bu seenei hedefteki dosya sistemi Solaris "tmpfs" ise
kullanmayn. Bo blgelerin dzgnce atlanmasn salayamaz ve
dosya sonunda bozulmalar oluur.
-x, --one-file-system
Bu seenek rsync'e, aktarm srasnda dosya sistemi snrlarnn dna
kmamasn syler. Bu seenek, tek bir dosya sisteminin ieriini
aktarmak iin yararldr.
--existing
Bu seenek rsync'e, hedefte yeni dosya oluturulmasn gerektirecek
aktarmlar yapmamasn sadece gncelleme yapmasn syler.
--ignore-existing
Bu seenek rsync'e, hedefte mevcut olan dosyalar gncellememesini
syler.
--remove-sent-files
Bu seenek rsync'e, hedefte yeni oluturulan dosyalarla ierii
gncellenenleri, gnderen taraftan silmesini syler. Dizinler ve
aygtlar ile sadece znitelikleri deitirilmi dosyalar silinmez.
--delete
Bu seenek rsync'e, hedefte olup kaynakta olmayan dosyalar
hedeften silmesini syler, fakat sadece dosyalar dizinleri ile
belirtilmise bu yaplr. Yani, rsync'den tm dizini ("dir" veya
"dir/" gibi) gndermesini istemeli, dizin ieriini belirten dosya
kalplar ("dir/*" gibi) belirtmemelisiniz. Dosya kalplar
belirtildiinde kalp kabuk tarafndan yorumlanr ve kabuk rsync'den
dosyalar kapsayan dizini deil, tek tek dosyalar aktarmasn ister.
Aktarmdan dlanan dosyalardan biriyse, --delete-excluded
kullanlmamsa ya da kurallar sadece gnderen tarafla eleenleri
imliyorsa hedefte silinecek olanlar da dlanr (SZME KURALLARI
blmndeki ierme/dlama belirtelerine baknz).
Alt dizinlere inilmiyorsa bu seenek etkisizdir.
Bu seenek doru ekilde kullanlmazsa tehlikeli olabilir. nce
--dry-run (-n) seeneiyle silinecek dosyalar grp, nemli dosyalarn
silinmeyeceinden emin olduktan sonra asl ilemi balatmak ok daha
iyidir.
Gnderen tarafta bir G/ hatas saptandnda hedefteki dosya silme
ilemi iptal edilir. Bu, gnderen tarafn alc taraftaki dosyalar
tmden silmesi gibi geici dosya sistemi hatalarna kar (NFS
hatalar gibi) bir nlemdir. Bu davran --ignore-errors seeneiyle
iptal edebilirsiniz.
--delete seenei silme zamann belirten --delete-* seenekleriyle,
--delete-excluded dahil, herhangi bir sorun olmakszn
birletirilebilir. Ancak, silme zamann belirten --delete-*
seeneklerinden biri belirtilmemise, rsync ntanml olarak
--delete-before algoritmasn seer. leri srmlerde bu seim
--delete-during algoritmasyla deitirilebilir. Ayrca,
--delete-after seeneine de baknz.
--delete-before
Alc taraftaki dosya silme ilemlerinin aktarmn balangcnda
yaplmasn salar. Bu seenek --delete veya --delete-excluded seenei
ile birlikte silme zamann belirten --delete-* seeneklerinden
biri belirtilmemise ntanmldr. Dosya silinmesi ile ilgili daha
ayrntl bilgi iin --delete seeneinin aklamasna baknz.
Aktarmn banda silme yaplmas, eer dosya sistemi doluluk bakmndan
snrda ise ve ancak fazlalklarn kaldrlmasyla dosya aktarm mmkn
olabilecekse yararldr. Ancak, bu seenek aktarmn balamasn
geciktirdiinden aktarmn zamanamna uramasna (--timeout
belirtilmise) sebep olabilir.
--delete-during, --del
Alc taraftaki dosya silme ilemlerinin aktarm srasnda yaplmasn
salar. Bu yntem silme ileminin aktarmdan nce ve sonra yapld
algoritmalardan daha hzldr. Fakat ilk olarak rsync'in 2.6.4
srmyle kullanlabilir olmutur. Dosya silinmesi ile ilgili daha
ayrntl bilgi iin --delete seeneinin aklamasna baknz.
--delete-after
Alc taraftaki dosya silme ilemlerinin aktarm tamamlandktan sonra
yaplmasn salar. Eer aktarmn bir paras olarak dizin baznda yeni
dosya birleimleri yapyorsanz ve bunlarn ihracnn aktarmn silme
faznda etkin olmasn istiyorsanz bu seenek yararl olacaktr. Dosya
silinmesi ile ilgili daha ayrntl bilgi iin --delete seeneinin
aklamasna baknz.
--delete-excluded
Alc tarafta olup, gnderici tarafta olmayan dosyalarn alc tarafta
silinmesine ek olarak, alc tarafta dlanan dosyalarnda
silinmesini salar (--exclude seeneine baknz). Alc tarafta tek
tek dosyalarn dlanmasnn bu yntemle silinmesi ve silinmesi
istenmeyen dosyalarn bu seenekten korunmas ile ilgili bilgiler
iin SZME KURALLARI blmne baknz. Dosya silinmesi ile ilgili daha
ayrntl bilgi iin ise --delete seeneinin aklamasna baknz.
--ignore-errors
G/ hatalar olsa bile --delete ileminin srdrlmesini salar.
--force
Gnderici tarafta olmayan ancak alc tarafta olan dizinlerin ileri
dolu bile olsa silnmesini salar. Bu sadece --delete seenei
olmakszn byledir, nk silme ilemleri artk iie dizinler ieren bir
tepe dizinin silinmesi eklinde yaplmaktadr. Etkin olmas iin
--recursive seenei (-a tarafndan uygulanr) gerekir.
--max-delete=say
say'dan fazla dosya ya da dizin silinmez. Yanslama yaplrken ok
byk aalarn ykma yol amamas iin yararldr.
--max-size=boyut
boyut bayttan dha byk dosyalar aktarlmaz. boyut belirtilirken,
sonek olarak K, M, G gibi bayt arpanlar belirtilebilecei gibi
kesirli deerler de belirtilebilir (--max-size=1.5m gibi).
-B, --block-size=blokboyu
rsync algoritmasnda sabit bir blok boyunun kullanmna zorlar.
Normalde, bu deer gncellenen her dosya iin ayr ayr seilir. Daha
ayrntl bilgi iin teknik rapora baknz.
-e, --rsh=komut
Bu seenek rsync'in yerel ve uzak kopyalarn arasnda iletiim iin
bir uzak kabuk uygulamas belirleyebilmeyi salar. Genelde, rsync
ntanml olarak ssh kullanacak ekilde yaplandrlr, fakat bir yerel
ada rsh kullanmay da tercih edebilirsiniz.
Bu seenek [kullanc@]makine::modl/yol ile kullanlrsa, uzak
makinedeki rsync sunucusunu altrmak iin belirtilen uzak kabuk
komut'u kullanlacak ve aktarm iin uzak makinede alan rsync
suncusunun soket balants deil, uzak kabuk balants kullanlacaktr.
Ayrca, yukardaki BR RSYNC SUNUCUSUNA BR UZAK KABUKTAN BALANMAK
blmne de baknz.
komut iinde rsync sadece tek bir argmana izin verir. rnek:
-e "ssh -p 2234"
Bilgi: ssh kullanclar makineye zel balant seeneklerini kendi
.ssh/config dosyas ile kiiselletirebilirler.
Uzak kabuk uygulamasn semek iin RSYNC_RSH ortam deikenini, -e
seeneinde belirtilebilen bir deeri atayarak kullanabilirsiniz.
Ayrca, bu seenekten etkilenen --blocking-io seeneinin aklamasna
da baknz.
--rsync-path=uygulama
Uzak makinede balangta hangi uygulamann altrlacan belirtmek iin
kullanlr. ounlukla, rsync'in uzak kabuun ntanml yollar dnda
bulunduu durumda kullanlr (--rsync-path=/usr/local/bin/rsync
gibi). uygulama kabuk tarafndan altrlacandan herhengi bir
uygulama, betik ya da bir dizi komut olabilir. Bir dizi komut
belirtiyorsanz rsync'in iletiimde kullanaca standart girdi ve
standart ktnn devred kalmamasna dikkat etmelisiniz.
Aadaki rnekte uzak makinede --relative seenei ile kullanmak iin
farkl bir ntanml yol belirtilmektedir:
rsync -avR --rsync-path="cd /a/b && rsync" makine:c/d /e/
-C, --cvs-exclude
Sistemler arasnda aktarm istenmeyen geni bir dosya kmesinin
dlanmas iin bir ksayol olarak kullanldr. CVS'nin yoksaylacak
dosyalar saptamakta kulland algoritma kullanlr.
Dlanan dosyalarn listesi yle ilklendirilmi olsun:
RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS
.make.state .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak
*.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj *.so *.exe
*.Z *.elc *.ln core .svn/
$HOME/.cvsignore iindeki dosyalarla CVSIGNORE ortam deikeninde
(tm isimler bir bolukla ayrlarak belirtilir) listelenen her
dosya bu listeye eklenecektir.
Son olarak, .cvsignore dosyas ile ayn dizindeki dosyalardan
.cvsignore dosyasnda listelenmi kalplarla eleen dosyalar yok
saylr. rsync'in szme ve dlama uygulad dosyalarn aksine bu
kalplar boluklarla ayrlr. Daha fazla bilgi iin cvs(1) klavuz
sayfasna baknz.
Bu seenei kendi --filter kurallarnzla birlikte belirtirseniz, -C
seeneinin komut satrnn neresinde olduuna baklmakszn, CVS
dlananlarnn sizin kurallarnzn sonuna ekleneceini unutmayn. Bu,
onlara sizin belirttiiniz kurallara gre daha dk ncelik verir.
CVS dlananlarnn szme kurallarnz arasndaki yerini kendiniz
belirlemek isterseniz, komut satr seenei olarak -C belirtmek
yerine --filter=:C ve --filter=-C seeneklerini belirtmelisiniz
(bu ekilde komut satrnda belirtebileceiniz gibi bir szme
dosyasna ":C" ve "-C" kurallarn yerletirerek de
belirtebilirsiniz). lk kural her dizinde .cvsignore dosyalarna
baklmasn, ikinci kural ise yukarda bahsedilen CVS dlananlarn bir
seferliine dahil edilmesini salar.
-f, --filter=kural
Bu seenek aktarlacak dosyalar listesinden belli dosyalarn
seilerek dlanmas iin kurallar eklemenizi mmkn klar. Bu seenek
alt dizinlerin ardk aktarld aktarmlarda kullanldnda ok yararldr.
Dlanacak dosyalarn listesini oluturmak iim komut satrnda ok
sayda --filter seenei belirtebilirsiniz.
Bu seenek hakknda daha ayrntl bilgi iin SZME KURALLARI blmne
baknz.
-F Bu seenek iki defa belirtildiinde komuta iki --filter kural
eklemeye edeerdir. lk seenek u kural ekler:
--filter=': /.rsync-filter'
Bu kural, rsync'in dizin hiyerarisi dahilinde serpitirilmi
.rsync-filter dosyalarna bakmasn ve aktarmda bu dosyalardaki
szme kurallarn kullanmasn salar. -F seenei ikinci kez kullanlmsa
u kural uygular:
--filter='- .rsync-filter'
Bu kural .rsync-filter dosyalarnn aktarlmamasn salar.
Bu seenek hakknda daha ayrntl bilgi iin SZME KURALLARI blmne
baknz.
--exclude=kalp
Bu seenek bir dlama kural tanmlanmasn salayan --filter seeneinin
basitletirilmi bir biimidir. Seenek, normal szme kurallarnn
kural zmleme szdizimine izin vermez.
Bu seenek hakknda daha ayrntl bilgi iin SZME KURALLARI blmne
baknz.
--exclude-from=dosya
Bu seenek, dlama kurallarnn belirtilen dosyadan alnmasn salamas
dnda --exclude seeneinin benzeridir. dosya iindeki bo satrlar
ile ';' veya '#' ile balayan satrlar yoksaylr. dosya olarak -
belirtilmise girdiler standart girdiden okunur.
--include=kalp
Bu seenek bir ierme kural tanmlanmasn salayan --filter seeneinin
basitletirilmi bir biimidir. Seenek, normal szme kurallarnn
kural zmleme szdizimine izin vermez.
Bu seenek hakknda daha ayrntl bilgi iin SZME KURALLARI blmne
baknz.
--include-from=dosya
Bu seenek, ierme kurallarnn belirtilen dosyadan alnmasn salar.
dosya olarak - belirtilmise girdiler standart girdiden okunur.
--files-from=dosya
Bu seenei kullanarak aktarlacak dosyalarn tam listesini
belirtebilirsiniz. Liste dosya'dan ya da "-" belirtilmise
standart girdiden okunur. Ayrca, bu seenekle birlikte ntanml
uygulanan seeneklere bal olarak rsync'in ntanml davrann kolayca
deitirebilirsiniz:
o --relative (-R) seenei uygulanarak dosya iindeki her ede
belirtilen yol bilgisi korunmutur (bu davran kapatmak iin
--no-relative seeneini kullann).
o --dirs (-d) seenei uygulanarak listede belirtilen dizinlerin
atlanmayp, hedefte oluturulmas salanmtr.
o --archive (-a) seenei uygulanmasna ramen bu seenein
uygulamalarndan biri olan --recursive (-r) seenei
uygulanmadndan, bu davrann uygulanmasn istiyorsanz
--recursive (-r) seeneini ayrca belirtmelisiniz.
dosya'dan okunan dosya isimlerinin hepsi kaynak dizine gre
deerlendirilir -- elerin bandaki "/"lar ile daha st dizinlere
klmasn salayan "../"lar kaldrlr. rnek:
rsync -a --files-from=/tmp/foo /usr uzak:/yedek
/tmp/foo iinde "bin" (hatta "/bin") diye bir girdi varsa,
/usr/bin dizini hedefte /yedek/bin dizini olarak oluturulur
(ancak, dosya iinde dosyalar aka listelenmemise ya da komut
satrnda -r seenei yoksa /usr/bin dizinindeki dosyalar
aktarlmaz). Ayrca, --relative seeneinin etkisini (ntanml olarak
etkindir) sadece dosyadan okunan yol bilgisini yinelemek iin
saklar ancak, kaynak iin belirtilmi yolun yinelenmesine zorlamaz
(rnekte /usr).
Ek olarak, eer dosya'y "uzak:" neki ile belirtirseniz, bu dosya
yerel makineden deil, uzak makineden okunur (uzak: ile
belirtilen makine, aktarmn yapld makine olmaldr). Bir ksaltma
olarak, "aktarmn yapld uzak makine" anlamnda sadece ":" nekini
de kullanabilirsiniz. rnek:
rsync -a --files-from=:/yol/dosya-listesi uzak:/ /tmp/kopya
Bu komut "uzak" makinesindeki /yol/dosya-listesi dosyasnda
listelenmi dosyalar kopyalayacaktr.
-0, --from0
Bu seenek rsync'e, bir dosyadan okunan dosya isimlerinin
sonlandrlmasnn satrsonu karakteri (LF) veya satrba karakteri
(CR) ya da her bu ikisinin birlikte kullanlmasyla (CR+LF) deil
sadece bo karakterle ('\0') yapldn belirtir. Bu seenek
--exclude-from, --include-from, --files-from ve bir --filter
kural ile belirtilen dosyalar etkiler. Dosya isimlerinin boluk
ile ayrld .cvsignore dosyalarn kullanan --cvs-exclude seeneini
etkilemez.
-T, --temp-dir=dizin
Bu seenekle, dosyalar aktarlrken alc tarafta geici olarak
oluturulan dosyalarn nereye konulacan belirtmek iin kullanlr.
ntanml davran, geici dosyalarn alc dizinde oluturulmasdr.
-y, --fuzzy
Bu seenekle, hedefte bulunmayan bir dosya iin benzer bir dosya
aranacan belirtilir. imdiki algoritma, hedef dosya iin ayn
dizinde, ayn boyda ve ayn deiiklik zamanl ya da ayn isimli bir
dosya arar. Byle bir dosya varsa, bu dosya bulank bir hedef
dosya olarak aktarmn hzlandrlmas amacyla kullanlr.
Bilgi: --delete seenei bu amala kullanlabilecek bir dosyann ilem
ncesinde silinmesine yol aabileceinden, bunun yerine ya
--delete-after seeneini kullann ya da dosyann silme
ilemine konu olmayacak ekilde olmasna dikkat edin.
--compare-dest=dizin
Bu seenekle, alc makinede hedef dizinde olmayan dosyalar iin
karlatrmann dizin dizinine gre yaplaca belirtilir. Eer dizin
iinde gndericinin dosyasnn ayns varsa bu dosya aktarlmaz. Bu,
sadece bir nceki yedeklemeden beri deimi dosyalarn yedeklenmesi
iin kullanldr.
2.6.4 srmnden balayarak, ok sayda --compare-dest dizini
belirtilebilmektedir. Eer hedefte bir eleme bulunamazsa, dosya
bu dizinlerde aranr.
Eer dizin greli bir dizin olarak belirtilmise bu dizinin hedef
dizinde olduu kabul edilir. Ayrca --link-dest seeneine de baknz.
--link-dest=dizin
Bu seenek, dizin iindeki deimemi dosyalarn hedef dizine sabit
bal yaplmas dnda --compare-dest seenei gibi davranr. Sabit bal
yaplacak dosyalar znitelikleri (izinler, sahipler, v.s) bakmndan
kaynaktakilerle tamamen ayn olmaldr. rnek:
rsync -av --link-dest=$PWD/nc-dizin \
makine:kaynak-dzn/ yeni-dzn/
2.6.4 srmnden balayarak, ok sayda --link-dest dizini
belirtilebilmektedir. Eer hedefte bir eleme bulunamazsa, dosya
bu dizinlerde aranr.
Eer dizin greli bir dizin olarak belirtilmise bu dizinin hedef
dizinde olduu kabul edilir. Ayrca --compare-dest seeneine de
baknz.
Bilgi: 2.6.1 srmnden nceki srmlerde, -o seenei (-a seenei de bu
seenei uygular) belirtilmise, --link-dest seenei root
olmayan bir kullanc iin istendii gibi almayacaktr (yazlm
hatas). Bu hatadan korunmak iin byle bir rsync ile -o
seeneini kullanmamalsnz.
-z, --compress
Bu seenekle hedef makineye gnderilen dosyalarn verilerini rsync,
aktarm miktarn azaltmak iin sktracaktr. zellikle, yava balantlar
iin ok yararldr.
Bilgi: Hedef makinede sktrma iin ayn aralar kullanlyorsa, sktrlm
veri sktrma ile ilgili dolayl bilgileri iermeyeceinden
aktarmda daha iyi sktrma yaplabilmektedir.
--numeric-ids
Bu seenekle rsync, her iki uta kullanc ve grup isimlerini deil,
kullanc ve grup kimliklerini eletirmeye alacaktr.
ntanml olarak rsync, dosyalarn sahibini belirlemekte kullanc ve
grup isimlerini kullanr. zel kullanc ve grup kimlii olan 0
kimlii, bu seenek belirtilmemi olsa bile, kullanc ve grup
isimleriyle asla eletirilmez.
Eer kullanc ve grup isimleri her iki uta elemiyorsa, bunlarn
yerine kaynak sistemdeki kullanc ve grup kimlikleri kullanlr.
chroot ayarlarnn rsync'in kullanc ve grup isimlerini arama
yeteneklerini nasl etkilediini ve bunlar nasl deitirebileceinizi
renmek iin rsyncd.conf(5) klavuz sayfasndaki use chroot modl
seeneinin aklamasna baknz.
--timeout=sre
Bu seenekle G/ zamanamn saniye cinsinden belirtebilirsiniz.
Belirtilen sre iinde bir aktarm gereklemezse, rsync ilemi
sonlandracaktr. ntanml deer, bir zamanam olmadn belirten 0
deeridir.
--port=port
ntanml 873. port yerine kullanlacak portu belirtmek iin
kullanlr. URL szdizimi port belirtmek iin zaten bir yntem
ierdiinden, bu sadece bir rsync sunucusuna "::" kullanarak
balanyorsanz gerekir. Bu seenein SUNUCU SEENEKLER blmndeki
aklamasna da baknz.
blocking-io
Uzak kabuk aktarm balatlrken engellenebilen G/ kullanlmasn
belirtir. Uzak kabuk rsh veya remsh ise, rsync ntanml olarak
engellenebilen G/, aksi takdirde engellenemeyen G/ kullanr (ssh
ile engellenemeyen G/ tercih edilir).
no-blocking-io
ntanml olarak engellenebilen G/ kullanlyorsa, bunu kapatr.
-i, --itemize-changes
Her dosyann znitelik deiikliklerini de iererek yaplm
deiikliklerin dosyalara gre tasnif edilmi bir listesini ister.
Bu, --log-format='%i %n%L' belirtmekle ayndr.
"%i" belirtimi 9 karakter uzunlukta ifresel bir ktya sahiptir.
Genel biimi UXcstpoga dizgesine benzer. Burada U karakteri
yaplan gncellemenin eidini, X karakteri dosya trn dier
karakterler ise gncellenmilerse znitelikleri belirten bir
karakterle deitirilir.
U karakterinin yerini alan gncelleme trleri unlardr:
o < karakteri yerel makineye aktarlan (alnan) bir dosyay
belirtir.
o > karakteri yerel makineye aktarlan (gnderilen) bir dosyay
belirtir.
o c karakteri yerel makinede deitirilen/oluturulan bir dosyay
belirtir (bir dizin ya da sembolik ban oluturulmas gibi).
o h karakteri baka bir eye sabit ba olan bir eyi belirtir
(--hard-links gerektirir).
o . (nokta) karakteri sadece znitelikleri deimi bir dosya
belirtir.
o = karakteri enin iki uta da ayn olduunu belirtir (bu sadece
ve sadece yksek bir ayrnt seviyesinde ktlanr).
X karakterinin yerini alan dosya trleri unlardr: bir dosya iin
f, bir dizin iin d, bir sembolik ba iin L ve bir aygt iin D.
UXcstpoga dizgesinin dier harfleri, gerek karakterler olup, enin
ilgili znitelikleri gncellenmise ktlanrlar, aksi takdirde "."
ile deitirilirler. Bunun istisnas vardr:
1. yeni oluturulmu bir e iin her harf bir "+" ile deitirilir.
2. ki utada ayn olan elerde her harf bir bolukla deitirilir.
3. Bilinmeyen her znitelik bir "?" ile deitirilir (bu, daha eski
bir rsync ile konuurken ortaya kar).
Harflerin belirttii znitelikler unlardr:
o c dosyann salama toplamlarnn farkl olduunu ve dosyann
aktarmla gncelleneceini belirtir (--checksum gerektirir).
o s dosyann boyutlarnn farkl olduunu ve dosyann aktarmla
gncelleneceini belirtir
o t deiklik zamanlarnn farkl olduunu ve sunucudaki deer ile
gncelleneceini belirtir (--times gerektirir). Bazan bu
karakterin yerine T kullanlr ve zamann aktarm zamanna
ayarlanacan belirtir. T harfi, bir bir dosya ya da dizin
--times seenei belirtilmeksizin aktarlrken ya da bir sembolik
ba aktarlrken ktlanr.
o p izinlerin farkl olduunu ve sunucudaki deer ile
gncelleneceini belirtir (--perms gerektirir).
o o sahiplerin farkl olduunu ve sunucudaki deer ile
gncelleneceini belirtir (--owner ve root yetkileri
gerektirir).
o g gruplarn farkl olduunu ve sunucudaki deer ile
gncelleneceini belirtir (--group ve grup yetkileri
gerektirir).
o a harfi gelecekte ACL'ler gibi geniletilmi dosya
zniteliklerini desteklemek zere yedek olarak ayrlmtr.
Olas dier bir kt daha vardr: dosyalar silinirken silinecek her e
iin "%i" belirtimi "deleting" dizgesini ktlar (yeterince son
srm bir rsync ile konuulduu ve bunun silme ilemlerini bir ayrnt
olarak ktlamayp gnlk kayd tuttuu varsaymyla).
--log-format=biim
lenen her dosya iin kullancya rsync istemcisinin nasl bir kt
gstereceini belirlemenizi salar. biim her biri % karakteri ile
ncelenmi tek karakterli belirtimlerden oluan bir dizgedir. Olas
belirtimlerin listesi iin rsyncd.conf(5) klavuz sayfasndaki log
format seeneinin aklamasna baknz. (--log-format seenei bir
sunucunun gnlk kaydnda ne ktlayacan belirlemez.)
biim dizgesinde --itemized-changes belirtimi (%i) kullanlmamsa,
belli bir yolla (bir dosyann aktarlmas, bir sembolik ba veya
aygtn yeniden oluturulmas, bir dizine dokunulmas) gncellenen her
dosya iin kt retilecektir, aksi takdirde, ktlama herhangi bir
yolla gncellenen her eye geniletilir (alc tarafn srm en azndan
2.6.4 ise). "%i" belirtiminin kts ile ilgili ayrntlar iin
--itemized-changes seeneinin aklamasna baknz.
--verbose seenei "%n%L" biiminin uygulanmasn salar. --log-format
seeneini isterseniz, -v (--verbose) seeneini belirtmeksizin
kullanabileceiniz gibi bu seenei de kullanarak her dosya iin bu
biimdeki bir ktnn retimesini de salayabilirsiniz.
Gnlklemenin aktarmn sonunda yaplmasn salayan aktarm istatistii
belirtimlerinden biri belirtilmedike rsync, gnlk biimi dizgesini
bir dosyann aktarmndan nce ktlayacaktr. Bu ge gnlkleme etkin
olduunda ve ayrca --progress belirtilmise rsync ayrca aktarlan
dosyann ismini ilem bilgisinden nce (phesiz, --log-format
ktsndan sonra) ktlayacaktr.
--stats
Bu seenek rsync'e, rsync algoritmasnn verileriniz iin ne kadar
verimli olduunu grmenizi salayacak dosya aktarm istatitiklerini
ayrntl olarak basmasn syler.
--partial
Aktarm kesintiye uramsa, ntanml olarak rsync, aktarm yarm kalm
dosyay silecektir. Baz durumlarda ksmen aktarlm dosyalar
silinmemesi istenebilir. Aktarmn bir sonraki balantda
tamamlanmasn hzlandrmak zere ksmen aktarlm dosyalarn silinmemesi
iin bu seenei kullanabilirsiniz.
--partial-dir=dizin
Aktarm yarm kalm dosyalarn silinmesini nlemenin daha iyi bir
yolu bu tr dosyalar iin ayr bir dizin belirtmektir. Sonraki
aktarmda, rsync bu dosyann aktarmn tamamlamak iin belirtilen
dizin iindeki dosyay kullanacak ve dosyann aktarm tamamlandktan
sonra bu dosyay silecektir. Yalnz, eer --whole-file belirtilmise
(ya da dolayl uygulanyorsa), rsync arttrml algoritmay
kullanmakszn dosyalar gndereceinden, dizin iinde tamamlanmay
bekleyen bir dosya bulunursa basite silinecektir.
Eer dizin mevcut deilse, rsync dizin'i oluturacaktr (sadece son
dizin, yolun tamam deil). Bu davrann sonucu olarak, hedef
dosyann bir dizin oluturmay gerektirdii durumlarda greli yol
belirtmek (--partial-dir=.rsync-partial gibi) daha iyidir, bu
takdirde eksik dosya ilem sonunda silindiinde bu dizin de
silinir.
Eer dizin ile mutlak bir yol belirtilmemise, mevcut dlamalarnzn
sonunda rsync ayrca --exclude deeri olarak bir dizin
ekleyecektir. Bylece dizin iindeki dosyalarn aktarm ve ayrca alc
tarafta bu dosyalarn zamanndan nce silinmesi engellenecektir.
Bir rnek: yukardaki --partial-dir seenei dier szme kurallarnn
sonuna bir "--exclude=.rsync-partial/" kural ekleyecektir. Eer
kendiniz bir takm szme kurallar kullanyorsanz, bu kuraln daha
yksek ncelik almas iin kendi kurallarnz iinde uygun bir yerde
belirtebilirsiniz (kurallarnzn sonunda bir --exclude='*' kural
varsa, zdevimli eklenen bir kural hibir zaman eriilebilir
olmayacaktr).
nemli: --partial-dir ile belirtilen dizine dier kullanclar
yazamamaldr, aksi takdirde bu bir gvenlik a oluturur.
Yani "/tmp" gibi bir dizin belirtmekten KAININ.
Ayrca dizin deerini RSYNC_PARTIAL_DIR ortam deikeninde
belirtebilirsiniz. Bu deikene bir deerin atanm olmas --partial
seeneinin etkin olmasn salamaz ama komut satrnda --partial
seeneini belirtmekle --partial-dir seeneine dizin belirtilmi
gibi ilem yaplmas salanr. rnein, --partial-dir=.rsync-tmp ile
--progress seeneini birlikte kullanmak yerine, kabukta
RSYNC_PARTIAL_DIR=.rsync-tmp eklinde bir atama yaptnz ve
.rsync-tmp dizinini eksik kalan aktarm tamamlamak iin komut
satrnda sadece -P seeneini belirterek kullandnz varsayalm.
--partial seeneinin bu ortam deikenine bakmad durumlar, (1)
--inplace seeneinin belirtilmi olmas (--inplace seenei
--partial-dir ile elitiinden), (2) --delay-updates seeneinin
belirtilmi olmasdr (aaya baknz).
Sunucu yaplandrmasnn refuse options ayar, amac gerei
--partial-dir seeneinin --partial seeneini uygulamamasna sebep
olur. Bu, yani, --partial seeneinin reddedilmesi, --partial-dir
tarafndan salanan daha gvenilir sluba hala izin veriyor olmakla,
aktarm yarm kalm hedef dosyalarn tekrar yazlmasna izin
vermemekte kullanlabilir.
--delay-updates
Bu seenek, gncellenen her dosyay aktarmn sonunda isimleri
deitirilmek suretiyle yerine tanmak zere bir dizin iinde geici
bir dosyaya koyar. Bu dosyalarn gncellenmesini daha atomik
yapmay amalar. ntanml olarak bu dosyalar her dosyann hedef
dizini iindeki ".~tmp~" isimli bir dizine konur, fakat bu davran
--partial-dir seeneini belirterek deitirebilirsiniz. Bu seenek
--inplace seenei ile eliir.
Bilgi: Bu seenee zel olarak, --partial-dir yerine
RSYNC_PARTIAL_DIR ile --partial belirtmek
RSYNC_PARTIAL_DIR deerinin kullanlmasn salamaz. Ayrca,
sunucu yaplandrmasnn refuse options ayar, amac gerei
--partial-dir seeneine zel uygulamalar da yaplmaz.
Bu seenek alc tarafta biraz daha fazla bellek kullanmna
(aktarlan dosya bana bir bit) ve gncellenen tm dosyalar tutacak
kadar bo disk alanna gereksinim duyar. Ayrca, yol mutlak
olduunda gncellenen dosyalarn hepsi tek bir dizine konulacandan,
aktarmda dosyalarn herhangi birinin ayn isimde olma olaslnn
olmamas durumu dnda, --partial-dir ile mutlak dosya yolu
belirtmemelisiniz.
Ayrca, ok daha atomik bir gncelleme algortimas ieren, rsync
paketinin "support" alt dizinindeki "atomic-rsync" perl betiine
de bakn (--link-dest seeneini ve dosyalar iin paralel bir
hiyerari kullanr).
--progress
Aktarmn geliimini gsteren kt retilmesini salar. Bu, bezgin
kullancya baz eyleri kollayabilme imkan verir. Aka
belirtilmemise, --verbose seeneini de uygulanr.
Bir dosya aktarlrken, retilen kt yle grnr:
782448 63% 110.64kB/s 0:00:04
Bu kt kullancya o anki dosya boyunu, aktarlm verinin yzdesini
(hattaki veri ile aktarlm verinin toplam olarak), aktarm hzn ve
aktarmn tamamlanmas iin gerekli kalan sreyi gsterir.
Bir dosya aktarldktan sonra, retilen kt yle grnr:
1238099 100% 146.38kB/s 0:00:08 (5, 57.1% of 396)
Bu kt kullancya aktarm biten dosyann son boyutunu, aktarmn %100
tamamlandn, dosyann son aktarm hzn, dosyann aktarm iin kullanlan
sreyi ve ek olarak toplam aktarmn boyut ve adet olarak ne
kadarnn tamamlandn parantez iinde gsterir.
-P --partial --progress seenkleri iin ksayoldur. Amac, kesintiye
uramas muhtemel uzun bir aktarm iin bu iki seenein birlikte
belirtilmesini kolaylatrmaktr.
--password-file=dosya
Uzak rsync sunucusuna eriim iin parola ieren bir dosya
belirtebilmeyi salar. Bu seenek, aktarm iin bir uzak kabuk
kullanldnda deil, sadece yerleik aktarm kullanarak bir rsync
sunucusuna eriirken yararldr. Dosya herkese okunabilir olmamal
ve iinde parolay ierek tek bir satr bulunmaldr.
--list-only
Bu seenek dosyalarn aktarlmasna deil, kaynak dosyalarn
listelenmesine sebep olur. Bu seenek, eer bir hedef
belirtilmezse alr, dolaysyla dorudan kullanmaya ihtiya
duymazsnz. Ancak, alt dizinlere inilmeyen bir liste retmek iin
tecrbeli bir kullancnn -r --exclude='/*/*' seeneklerini
kullanmaktan kanabilmesi iin bir kolaylk salar.
--bwlimit=kbps
Azami aktarm hznn kB/s cinsinden belirtilebilmesini salar.
rsync'i ok byk dosyalar (MB'larca) aktarmak iin kullanrken
olduka verimlidir. rsync aktarmlarnn doas gerei, veri bloklar
halinde gnderilir, eer rsync aktarmn olduka hzl olduunu
saptarsa, sonraki bloku gndermeden nce bekler. Sonuta, aktarm
hznn ortalamas belirtilen hza eit olur. Sfr deeri bir snrlama
olmad anlamna gelir.
--write-batch=dosya
Ayn hedefe yaplacak edeer bir ar iin --read-batch seenei ile
kullanlmak zere bir dosya oluturur. Ayrntlar iin BETK KP blmne
baknz.
--read-batch=dosya
Evvelce --write-batch ile oluturulan dosya iindekileri uygular.
Eer dosya olarak "-" belirtilirse betik verisi standart girdiden
okunur. Ayrntlar iin BETK KP blmne baknz.
-4, --ipv4, --6, --ipv6
rsync'e soketleri olutururken IPv4/IPv6 tercih etmesini syler.
Bu sadece rsync'in dorudan kendi denetimi altndaki soketleri
etkiler. Ayrca, bu seeneklerin SUNUCU SEENEKLER blmndeki
aklamasna da baknz.
--checksum-seed=tamsay
MD4 salama toplam tohumunun tamsay olarak belirtilebilmesini
salar. Bu 4 baytlk tohum her blok ve dosyann MD4 salama
hesaplamasnda kullanlr. ntanml olarak bu tohum o anki zaman
deeri olarak sunucu tarafndan retilir. Bu seenek, yinelenebilir
blok ve dosya salamalar isteyen uygulamalar iin ya da kullancnn
daha bir rasgele tohum kullanmak istedii yerlerde kullanldr.
tamsay olarak sfr deeri verilirse ntanml tohum kullanlacaktr.
Bir rsync sunucu balatlrken kullanlan seenekler:
--daemon
Bu seenek rsync'in artalanda alacan belirtir. Balattnz sunucuya
bir rsync istemcisi makine::modl veya rsync://makine/modl/
szdizimini kullanarak eriebilir.
Eer standart girdi bir soket ise, rsync, inetd zerinden altn
varsayacaktr, aksi takdirde, ubirimini brakp bir artalan sreci
haline gelecektir. rsync istemcileri tarafndan yaplan her balant
isteinde sre, yaplandrma dosyasn (rsyncd.conf) okuduktan sonra
istee yant verecektir. Daha fazla bilgi iin rsyncd.conf(5)
klavuz sayfasna baknz.
--address=adres
ntanml olarak rsync, --daemon seenei ile balatldnda ya da bir
rsync sunucuya balanrken bir ablon adres kullanr. Bu seenekle
kullanlacak adres olarak belli bir IP adresi (veya konakismi)
belirtebilirsiniz. Bu --config seenei ile birlikte kullanlarak
sanal adresleme yapabilmeyi mmkn klar. Ayrca, rsyncd.conf(5)
klavuz sayfasndaki address seeneinin aklamasna da baknz.
--bwlimit=kbps
Sunucu srecinin gnderdii veri iin kilobayt/s cinsinden azami
aktarm hzn belirtmek iin kullanlr. stemci bu durumda bile bir
--bwlimit deeri belirtebilir, ancak bu istemci taraftaki band
geniliini daraltmak iin yaplabilir. Eer sunucunun belirttii hz
bu yolla almak istenirse deer aaya, sunucunu hzna yuvarlanr.
Baz ek ayrntlar iin bu seenein istemci seeneklerindeki aklamasna
da baknz.
--config=dosya
ntanml yaplandrma dosyasnda farkl bir yaplandrma dosyas
belirtmek iin kullanlr. Sunucu sreci root dnda bir uzak kullanc
tarafndan, bir uzak kabuk uygulamas zerinden altrlyorsa ntanml
yaplandrma dosyas alma dizinindeki (genellikle $HOME)
rsyncd.conf dosyas, aksi takdirde /etc/rsyncd.conf'dur.
--no-detach
Bir sunucu olarak almada rsync'in ubirimini brakp bir artalan
sreci haline gelmesini engeller. Bu seenek, rsync, Cygwin
zerinde bir hizmet olarak altrlrken gereklidir. Ayrca,
daemontools ya da AIX'in Sistem zkaynak Denetisi gibi bir
uygulama tarafndan ynetildiinde yararldr. Seenein ayrca, rsync
bir hata ayklayc altnda altrlrken de kullanlmas tavsiye edilir.
Bu seenek, rsync, inetd veya sshd zerinden alyorsa etkisizdir.
--port=port
Sunucu tarafndan ntanml olarak kullanlan 873. port yerine baka
bir port belirtmek iin kullanlr. Ayrca rsyncd.conf(5) klavuz
sayfasndaki port seeneinin aklamasna da baknz.
-v, --verbose
Sunucu srecinin balatlmas srasnda gnlk bilgilerinin miktarn
arttrmak iin kullanlr. Sunucunun, istemci balandktan sonraki
ayrnt seviyesi istemci tarafndan kullanlan seeneklerle ve modln
yaplandrma blmndeki max verbosity deeriyle denetlenir.
-4, --ipv4, --6, --ipv6
rsync sunucusunun balantlar dinleyecei soketleri olutururken
IPv4/IPv6 tercih etmesini salarlar. ekirdekteki bir yazlm hatas
nedeniyle Linux'un eski srmlerinde bu seeneklerden biri gerekli
olabilir (port kullanlaca zaman bir "adres zaten kullanmda"
hatas alyorsanz, rsync sunucusunu balatrken --ipv6 veya --ipv4
belirtmeyi deneyin).
-h, --help
--daemon seeneinden sonra belirtilirse, rsync sunucusu
balatlrken kullanlabilecek seenekleri ksaca aklayan bir yardm
sayfas basar.
Szme kurallar hangi dosyalarn aktarlacan (ierileceini - include), hangi
dosyalarn atlanacan (dlanacan - exclude) semek iin esnek bir yntem
salar. Kurallar ya dorudan include/exclude seenekleri ile ya da daha
hassas ierme/dlama kalplar ile (bir dosyadan okuyarak) belirtilebilir.
rsync, aktarlacak dosya/dizinlerin listesindeki her isim iin ayr ayr
ierme/dlama kurallarn tarar ve ilk eleen kalb uygular: bir dlama
kalbyla eleen dosya atlanr; bir ierme kalb ile eleen dosya atlanmaz;
eleen bir kalp yoksa dosya atlanmaz.
rsync, komut satrnda belirtilen include/exclude seeneklerinden sral bir
szme kurallar listesi oluturur. Szme kurallarnn szdizimi yledir:
kural [kalp_veya_dosyaismi]
kural,belirte [kalp_veya_dosyaismi]
kural ismi olarak, aada aklanan ksa ya da uzun kural isimlerinden
birini kullanabilirsiniz. Eer ksa isimli bir kural kullanrsanz, istee
bal olan belirte'ten kural bir ',' ile ayrn. kalp veya dosyaismi'ni
(varsa) bir boluk veya altizgiden sonra yazmalsnz. Kullanlabilecek
kural nekleri:
uzun ksa aklama
--------------------------
exclude - dlama kalb belirtir
include + ierme kalb belirtir.
merge . ek kurallar okumak iin kattrlacak dosya,
dir-merge : bir dizin ii kattrma dosyas belirtir.
hide H aktarmdan gizlenecek dosyalar iin kalp.
show S aktarmdan gizlenmeyecek dosyalar iin kalp.
protect P silinmekten koruncak dosyalar iin kalp.
risk R silinmekten korunmayacacak dosyalar iin kalp.
clear ! o anki include/exclude listesini temizler (argmansz)
Kurallar bir dosyadan okunduunda, "#" ile balayan aklama satrlar ile bo
satrlar yoksaylr.
--include ve --exclude komut satr seenekleri yukardaki kural szdizimini
deil, sadece kalplarla ek olarak listeyi temizleyen nlem (!) imini (ve
kalplar bir dosyadan okunuyorsa bo ve aklama satrlarn) kabul ederler.
Bir include seenei iin, bir kalp "- " (tire ve boluk) veya "+ " (art ve
boluk) ile balamyorsa, kural bir "+ " olarak deerlendirilir. Bir
--exclude seenei iin bir kalp bir "- " ile balamaldr.
Bir --filter seenei ise kuraln balangcnda daima bir uzun ya da ksa
kural ismi iermelidir.
Ayrca, --filter, --include ve --exclude seenekleri tek bir kalp/kural
alabilir. ok sayda kalp/kural eklemek iin komut satrnda bu seenekleri
tekrarlayabilir veya --filter, --include-from ve --exclude-from
seeneklerinin dosya kattrma szdizimini kullanabilirsiniz.
erme/Dlama Kalplar
Yukarda SZME KURALLARI blmnde bahsedildii gibi dosyalar "+", "-" gibi
kalplar kullanarak aktarabilir ya da atlayabilirsiniz. erme ve dlama
kurallarnn herbirinde aktarlacak dosyalarn isimleriyle eleen kalplar
belirtilir. Bu kalplar eitli biimler alabilir:
o Eer kalp bir / ile balyorsa, dosya hiyerarisi iinde belli bir
noktaya demirlenir, aksi takdirde yol isminin sonuna elenir. Bu
dzenli ifadelerde kalb ^ ile balatmaya benzer. rnein, "/foo" kalb ya
"aktarmn kk"ndeki (genel bir kural iin) ya da kattrlan dosyann
dizinindeki (dir-merge kural iin) "foo" isimli bir dosya ile
eleirdi. Nitelenmemi bir "foo" ise, aacn herhangi bir yerindeki
"foo" isimli bir dosya veya dizin ismi ile eleirdi, nk algoritma
kkten uca doru alt dizinlere inilerek uygulanr; yani, her yol eleman
sonunda dosya ismi olacak bir srada ele alnr. "sub/foo" ise
hiyerarinin herhangi bir noktasndaki "sub" isimli bir dizin iindeki
bir "foo" ile eleirdi. Aktarmn kk ile eleen bir kalbn nasl
belirtileceinin ayrntl aklamas iin erme/Dlama Kalplarnn Kk Dizinle
liklendirilmesi blmne baknz..
o Eer kalp bir / ile bitiyorsa, sadece bir dizinle eleecektir, bir
dosya, ba ya da aygtla deil.
o Eer kalp *?[ dosyaismi kalp karakterlerinden birini ieriyorsa, ifade
kabuun dosyaismi eletirme kurallar kullanlarak eletirilir. Aksi
takdirde basit bir dizge eleme kullanlr.
o Tek yldzl bir kalp ("*") bl izgilerinde duracakken, ift yldzl kalp
("**") ok sayda bl izgisi ile eleecektir.
o Eer bir kalp bir / (sonda deil) ya da bir "*" ieriyorsa batan sona
tm dizinleri dahil tam dosya yolu ile eletirilir. Eer kalp bir / ya
da "**" iermiyorsa, sadece dosyaisminin son bileeni ile eletirilir
(algoritmann altdizinlere inilerek uygulandn hatrlayn, yani "tam
dosyaismi" balang dizininden balayarak son dizine kadar yolun
herhangi bir paras ile eleebilir).
una dikkat edin, --recursive (-r) seeneini (-a ile uygulanan)
kullandnzda, her yolun her alt bileeni yukardan aaya ziyaret edilir,
yani ierme/dlama kalplar altdizinlere inilerek her alt bileenin tam
ismine uygulanr (rn, "/foo/bar/baz" ierilirken "/foo" ve "/foo/bar"
dlanamaz). rsync gnderecei dosyalar ararken, dlama kalplar aslnda dizin
basamaklama aamasn ksadevre eder. Eer bir kalp belli bir st dizini
dlyorsa, bir daha derin ierme kalbn sonusuz brakabilir, nk rsync,
hiyerarinin dlanan bir blmnden daha derine inmez. Bu zellikle "*" ile
biten bir kural kullanrken nem kazanr. rnein, bu almayacaktr:
+ /bir/yol/bu-dosya-bulunmaz
+ /bu-dosya-bulunur
- *
Bu kural listesi, "bir" st dizini '*' kuralndan dolay dlayacandan
baarsz olur, yani rsync, "bir" ve "bir/yol" dizinleri iindeki hibir
dosyay ziyaret etmez. Hiyerarideki tm dizinleri ziyaret ettirmenin bir
yolu tek bir kuraln listeye dahil edilmesidir: "+ */" ("- *" kuralndan
nce herhangi bir yere yerletirebilirsiniz). Dier bir zm ise ziyaret
edilmesi gereken st dizinlerin hepsi iin belirli bir ierme kural
eklemektir. rnein, bu kural kmesi doru alr:
+ /bir/
+ /bir/yol/
+ /bir/yol/bu-dosya-bulunur
+ /bu-dosya-da-bulunur
- *
Dlama/ierme eletirme rnekleri:
o "- *.o" kalb *.o ile eleen tm dosya isimlerini dlar.
o "- /foo" kalb aktarmn kk dizinindeki "foo" isimli bir dosyay dlar.
o "- foo/" kalb "foo" isimli hehangi bir dizini dlar.
o "- /foo/*/bar" kalb aktarmn kk dizinindeki "foo" dizininden iki
seviye aadaki "bar" isimli dosyay dlar.
o "- /foo/**/bar" kalb aktarmn kk dizinindeki "foo" dizininden iki
veya daha alt seviyedeki "bar" isimli dosyay dlar.
o "+ */", "+ *.c" ve "- *" kalplarnn birleimi tm dizinler ve C kaynak
dosyalar dnda hereyi dlar.
o "+ foo/", "+ foo/bar.c" ve "- *" kalplarnn birleimi sadece "foo"
dizinini ve "foo/bar.c" dosyasn ierecektir ("foo" dizini aka
ierilmelidir yoksa "*" tarafndan dlanrd).
Kattrma Dosyas Szme Kurallar
Yukarda SZME KURALLARI blmnde bahsedildii gibi dosyalar bir merge (.)
ya da bir dir-merge (:) szme kural belirterek szme kurallarnza tm
dosyalar kattrablirsiniz.
ki eit kattrma dosyas vardr: tek dosyalk ('.') ve dizinii dosyalar
(':'). Tek dosyalk bir kattrma dosyas bir defa okunur ve "." kuralndaki
szme listesi ile birlikte ileme sokulur. Dizinii kattrma dosyas trnde
ise, rsync adm adm btn altdizinleri tarayarak ismi belirtilen dosyay
bulduka dosya ieriini o anki kural listesine ekler. Bu dizinii kural
dosyalar aktarm alt dizinlerinde aranmas gerektinden gnderen tarafta
oluturulmaldr. Ayrca, bu kural dosyalarnn silinmeyecek dosyalar
etkilemesi isteniyorsa, alc tarafa aktarlmalar gerekecektir (aada,
Dizinii Kattrma Kurallar ve Silme blmne baknz).
Baz rnekler:
merge /etc/rsync/default.rules
. /etc/rsync/default.rules
dir-merge .per-dir-filter
dir-merge,n- .non-inherited-per-dir-excludes
:n- .non-inherited-per-dir-excludes
Bir merge veya dir-merge kural u belirteleri kabul eder:
o Bir - belirteci, dosyaii aklamalar hari baka bir kural zmleme
olmakszn, sadece dlama kalplarndan oluan bir dosya belirtir.
o Bir + belirteci, dosyaii aklamalar hari baka bir kural zmleme
olmakszn, sadece ierme kalplarndan oluan bir dosya belirtir.
o Bir C belirteci, bir dosyann CVS uyumluluu anlamnda okunmas
gerektiini belirtir. Bu 'n', 'w', ve '-' belirtelerini etkin klar,
fakat ayrca, belirtilecek liste temizleme imine de (!) izin verir.
Bir dosyaismi belirtilmemise dosya isminin ".cvsignore" olduu
varsaylr.
o Bir e belirteci, kattrma dosyasn aktarmdan dlayacaktr; rnein,
"dir-merge,e .rules" kural "dir-merge .rules" ve "- .rules"
kurallar gibidir.
o Bir n belirteci, kurallarn altdizinlerde miras alnmayacan belirtir.
o Bir w belirteci, kurallar iin satrlara gre deil boluklara gre szck
ayrma uygulanacan belirtir. Bu ayrca aklamalara da izin
vermeyecektir.
Bilgi: Bir kuraln neki olan boluklar zel olarak ele alnr, yani "-
foo + bar" dizgesi iki kurala ayrlacaktr (ek olarak nek
zmlemesinin iptal edilmedii varsaymyla).
o Ayrca, "+" veya "-" kural iin aadaki belirtelerden herhangi birini
belirtebilirsiniz. rnein, "dir-merge,s .filt" ve ":sC" kurallarnn
herbiri sadece sunucu tarafnda uygulanacak dizinii kattrma kurallarn
olutururken, "merge,-/ .excl" kuralyla .excl dosyasnn ierii
mutlakyol dlamalar olarak ele alnr.
Bir "+" veya "-" kuralndan sonra kullanlabilecek belirteler:
o Bir "/" belirteci kuraln dosya sisteminin kkne gre bir mutlak yol
olarak ele alnacan belirtir. rnein, "-/ /etc/passwd" kural aktarm
srasnda "/etc" dizininden gnderilen dosyalardan passwd dosyasnn
dlanacan belirtir.
o Bir "!" belirteci kuraln, kalbn elemediinde etkili olacan belirtir.
rnein, "-! */" kural dizin olmayan hereyi dlayacaktr.
o Bir "C" belirteci, tm genel CVS dlama kurallarnn yerinde "-C"
dlamalar olarak yerletirileceini belirtmek iin kullanlr. Bir argman
almaz.
o Bir "s" belirteci, kuraln sadece gnderen tarafta uygulanacan
belirtir. Bir kural gnderen tarafta etkin olduunda, dosyalarn
aktarlmasn engeller. --delete-excluded belirtilmedike, bir kuraln
her iki taraf da etkilemesi ntanmldr, aksi takdirde kuraln sadece
gnderen taraf etkilemesi ntanmldr. Sunucu tarafnda etkili
ierme/dlama kurallar belirtmenin dier yollar iin hide (H) ve show
(S) kurallarna da baknz.
o Bir "C" belirteci, kuraln alc tarafa uygulanacan belirtir. Bir kural
alc tarafta etkili olduunda, dosyalarn silinmesini engeller. Daha
fazla bilgi iin stteki "s" belirtecine baknz. Ayrca, alc tarafta
etkili ierme/dlama kurallar belirtmenin dier yollar iin protect (P)
ve risk (R) kurallarna da baknz.
dir-merge kurallar n belirteci kullanlmadka kattrma dosyasnn bulunduu
her alt dizinde miras alnr. Her alt dizinin kurallar, miras alnan
kurallara gre daha yksek ncelik almak zere st dizindeki dir-merge
kurallarnn bana eklenir. Birleik kural kmesi kattrma dosyasnn bulunduu
noktalara gre gruplanr, bylece genel kurallar listesinde evvelce
belirtilmi bir kuraln dir-merge kurallar ile deitirilmesi mmkn olur.
Bir dizinii kattrma dosyasnda bir liste temizleme kuralna rastlandnda,
sadece o kattrma dosyasnn bulunduu noktaya kadar miras alnan kurallar
temizlenir.
Bir tek dosyalk kuraln bir dir-merge dosyasndan miras alnmasn
engellemenin dier bir yolu, dosyann bana bir / getirmektir. Bir dizinii
kattrma dosyasndaki bu tr kurallar kattrma dosyasnn bulunduu dizine
gre ele alnr, bylece bir "/foo" kalb dir-merge szme kural dosyasnn
bulunduu dizindeki "foo" dosyasyla eleir.
--filter=". dosya" zerinden belirteceiniz rnek szme dosyas:
merge /home/user/.global-filter
- *.gz
dir-merge .rules
+ *.[ch]
- *.o
Bu, bu listenin bana /home/user/.global-filter dosyasnn ieriini ve
ayrca, bunu da alt dizinde ".rules" dosyasnn sonuna ekleyecektir. Her
dizinin banda nce tm kurallar okunup st dizinden alnan genel kurallar
buna eklenir.
Eer bir dizinii kattrma dosyas, ilk aktarm dizininin st dizini olan bir
dosya yolu ile belirtilmise, rsync belirtilen dosya iin, aktarm
dizininin balangcndan itibaren tm st dizinleri tarayacaktr. rnein, byle
bir szge (-F seeneine baknz),
--filter=': /.rsync-filter'
rsync'e .rsync-filter dosyasn kkten aa doru, aktarmn bir paras olarak
gnderilen dizinlerde dosya normal taramaya balamadan nce aktarmn st
dizininden itibaren tm dizinlerde aramasn syler (Bilgi: bir rsync
sunucusu iin kk dizin daima modln dizinidir).
Dizinii kattrma dosyalar iin bu tr ntarama rnekleri:
rsync -avF /src/path/ /dest/dir
rsync -av --filter=': ../../.rsync-filter' /src/path/ /dest/dir
rsync -av --filter=': .rsync-filter' /src/path/ /dest/dir
lk iki komut ".rsync-filter" dosyasn "/src/path" iinde aramaya
balamadan nce "/" ve "/src" dizinlerinde arar. Son komut ise, st dizin
taramasndan kanr ve ".rsync-filter" dosyasn sadece aktarmn paras olan
dizinlerde arar.
Bir ".cvsignore" dosyasnn ieriini kalplarnza dahil etmek isterseniz,
":C" kuraln kullanmalsnz. Bu kural, .cvsignore dosyalarn dizinii
kattrma dosyalar haline getirir, fakat dosya CVS uyumluluu balamnda
ayrtrlr. --cvs-exclude (-C) seeneinin bulunduu yerde etkili olmasn
istiyorsanz kurallarnzn arasna bu noktada ":C" kuraln
yerletirebilirsiniz. Bu olmakszn, rsync .cvsignore dosyas iin
dir-merge kuraln dier kurallarnzn sonuna ekleyecektir (komut satr
seeneklerinizden daha dk 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
Yukardaki rsync komutlarnn ikisi de ayn ii yapar. Her ikisi de dizinii
.cvsignore kurallarn listenin sonuna deil, ortasna kattracaktr. Bu,
onlarn dizine zel kurallarnn sizin kurallarnzn tmnden daha dk nemde
olmas yerine :C'ye kadar olan kurallarn yerine gemesini mmkn klar. Dier
CVS dlama kurallarn etkilemek iin (rn, ntanml dlananlar listesi,
$HOME/.cvsignore dosyasnn ierii ve $CVSIGNORE deikeninin deeri), -C
komut satr seeneini belirtmemeli, onun yerine kurallarnza bir "-C"
kural yerletirmelisiniz; rn, "--filter=-C".
Liste Temizleyen Szme Kural
Yukarda SZME KURALLARI blmnde bahsedildii gibi mevcut ierme/dlama
listesini "!" szme kuraln kullanarak temizleyebilirsiniz. "Mevcut"
liste ya genel kural listesi (kural, szme seenekleri zmlenirken
saptanmsa) ya da dizinii kattrma dosyas kurallarndan (bunlar kendi alt
listelerinde miras alnrlar, dolaysyla st dizinin kurallarn bu kuralla
temizleyebilirsiniz) oluur.
erme/Dlama Kalplarnn Kk Dizinle liklendirilmesi
Evvelce de bahsedildii gibi, genel ierme/dlama kalplar aktarmn kk
dizini ile ilikilendirilebilir (kattrma dosyasnn dizini ile
iliklendirilen dizinii kalplarnn tersine). Aktarm, gndericiden alcya
bir isim altaacnn gnderilmesi olarak dnrseniz, aktarmn kk dizini hedef
dizinde yinelenecek olan aa balangcdr. Bu kk, bir / ile balayan
kalplarla ilikilendirilir.
Eleme aktarmn kkne gre yapldndan, kaynak yolun sonundaki bl izgisini
deitirmek ya da --relative seeneinin kullanmnda deiiklik yapmak
eletirmenizde kullanlmas gereken yolu etkiler. Aadaki rneklerde bu
davran modellenmitir.
Biri "/home/ben/foo/bar", dieri "/home/sen/bar/baz" olan iki dosyamz
olsun. Aada bu iki dosyann eitli komut kullanmlarnda nasl farkl
aktarldklar gsterilmitir.
rnek komut: rsync -a /home/ben /home/sen /hedef
+/- kalb: /ben/foo/bar
+/- kalb: /sen/bar/baz
Hedef dosya: /hedef/ben/foo/bar
Hedef dosya: /hedef/sen/bar/baz
rnek komut: rsync -a /home/ben/ /home/sen/ /hedef
+/- kalb: /foo/bar (dikkat: "ben" yok)
+/- kalb: /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
+/- kalb: /home/ben/foo/bar (dikkat: tam dosyayolu)
+/- kalb: /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
+/- kalb: /ben/foo/bar (belirtilen yolla balar)
+/- kalb: /sen/bar/baz (keza bu da)
Hedef dosya: /hedef/ben/foo/bar
Hedef dosya: /hedef/sen/bar/baz
Hangi ismi szdnz grmenin en kolay yolu, --verbose kullanarak ktya
bakmak ve ismin nne bir / koymaktr (herhangi bir dosya kopyalamaya hazr
deilseniz, --dry-run seeneini kullann).
Dizinii Kattrma Kurallar ve Silme
Bir silme seenei olmakszn, dizinii kattrma dosyas kurallar sadece
gnderen tarafta konuyla ilgilidir, dolaysyla aktarm etkilemeksizin
rahata kattrma dosyalarn dlayabilirsiniz. Bunu kolayca yapmann yolu,
rnekte grld gibi bu dlamaya 'e' belirtecini eklemektir:
rsync -av --filter=': .haric' --exclude=.haric mkn:kaynak/dizin /hedef
rsync -av --filter=':e .haric' mkn:kaynak/dizin /hedef
Buna ramen, alc tarafta bir silme yapmak VE baz dosyalarn da silinerek
dlanmasn isterseniz, alc tarafn dlanacak dosyalar bilmesini salamanz
gerekecektir. En kolay, aktarma dizinii kattrma dosyalarn dahil etmek
ve --delete-after kullanmaktr. Bu yolla, bireyleri silmeden nce alc
tarafta gnderen taraftaki dlama kurallar alnm olacaktr:
rsync -avF --delete-after mkn:kaynak/dizin /hedef
Yine de, kattrma dosyalar aktarmn bir paras deilse, ya baz genel dlama
kurallar belirtmeli (komut satrnda belirtilebilir) ya da alc tarafta
dizinii kattrma dosyalarnn bulunmasn kendiniz salamalsnz. lkine bir
rnek (uzak .kural dosyalarnn kendilerini dladklar varsaylyor):
rsync -av --filter=': .kural' --filter='. /benim/ek.kuralm'
--delete mkn:kaynak/dizin /hedef
Bu rnekte ek.kuralm dosyas aktarmn her iki tarafn da etkileyebilir,
fakat (gnderen tarafta) kurallar dizinii kattrma kuralndan sonra
belirtildiinden .kural dosyasndan kattrlan kurallardan daha dk ncelikli
olurlar
Son rnekte, uzak taraf .rsync-filter dosyalarn aktarmdan dlamaktadr,
ancak biz alc tarafta neyin silineceini denetim altna almak iin kendi
.rsync-filter dosyalarmz kullanmak istiyoruz. Bunu yapmak iin dizinii
kattrma dosyalarn zellikle dlamal (bylece silinmezler) ve neyin silinip
silinmeyeceini denetim altna almak iin kurallar yerel dosyalara
koymalyz. Bu komutlardan biri gibi:
rsync -av --filter=':e /.rsync-filter' --delete \
mkn:kaynak/dizin /hedef
rsync -avFF --delete mkn:kaynak/dizin /hedef
Betik kipi bir ok sistem iin ayn olan gncellemeleri uygularken
kullanlabilir. Bir dizin aacnn ok sayda makine zerinde kopyalarnn
bulunduunu varsayalm. imdi, kaynak aacnda baz deiiklikler olduunu ve
bunlarn dier makinelere de aktarlmas gerektiini varsayalm. Bu ilemi
betik kipini kullarak yapmak iin, rsync, kaynak aacndaki deiiklikleri
hedef aalardan birinde uygulayan --write-batch seenei ile altrlr.
--write-batch seenei, yaplan ilemlerin ayn dizin aacn ieren hedeflerde
uygulanmak zere bir "betik dosyas" iinde saklanmasn salar.
Kaydedilen deiiklikleri dier hedef aalara uygulamak iin rsync, bu
dosyann ismi seenee argman olarak belirtilerek --read-batch seenei ile
altrlr. rsync, betik dosyasnda saklanm bilgileri kullanarak hedef aac
gnceller.
Rahat olsun diye, --write-batch seenei kullanlrken ek bir dosya daha
oluturulur. Bu dosyann ismi, betik dosyasnn isminin sonuna ".sh"
eklenerek oluturulur. Bu .sh dosyas betik dosyasn kullanarak hedefi
gncelleyecek komut satrn ierir. Bir Bourne(-benzeri) kabuk kullanlarak
altrlabilir. stee bal olarak zgn yol yerine hedef aacn dosya yolu
aktarlabilir. Bu, hedef aacn kaynak aacnn yolundan farkl olduu
durumlarda yararldr.
Dosya durumu, salama toplam snanmas ve veri bloklarnn retimi ilemleri
betik dosyasna bir kere kaydedildi mi, hedef aalarda defalarca
kullanlabilir. Ayn verileri her konaa ayr ayr gndermek yerine ok sayda
kona ayn anda gncelleyecek ok grevli aktarm protolleri de
kullanlabilir.
rnekler:
$ rsync --write-batch=foo -a mkn:/kaynak/dzn/ /hedef1/dzn/
$ scp foo* uzak:
$ ssh uzak ./foo.sh /hedef2/dzn/
$ rsync --write-batch=foo -a /kaynak/dzn/ /hedef1/dzn/
$ ssh remote rsync --read-batch=- -a /hedef2/dzn/ <foo
Bu rneklerde, rsync /kaynak/dzn/'den /hedef1/dzn/'i gncellemekte
kullanlm ve bu ilemi yinelemek iin ilemler "foo" ve "foo.sh" dosyalarna
kaydedilmitir. "uzak" kona betie kaytl veri /hedef2/dzn/ dizinine
gnderilerek gncellenir. Bu iki rnek arasndaki farklar betik dosyalarnn
hangi esneklikte kullanlabileceini gstermek iindir:
o lk rnek ilk kopyann yerel olmayacan gsterir -- her iki ynde de
aktarm iin ister uzak kabuk szdizimini, ister rsync sunucu
szdizimini kullanabilirsiniz.
o lk rnek uzak makine zerinde --read-batch seenekli komutu altrrken
doru rsync seeneklerini oluturulan "foo.sh" dosyasndan alr.
o kinci rnek betik verisini standart girdiden okur, bylece betik
dosyasnn nce uzak makineye kopyalanmas gerekmez. Bu rnekte
deitirilmi bir --read-batch seenei kullanlmasn gerektirdiinden
"foo.sh" betii kullanlmamtr, fakat betii kullanmak iin dosyay
kendiniz dzenleyebilirsiniz. (Ancak, baka bir seenein
(--exclude-from=- gibi) standart girdiyi kullanmadndan emin
olmalsnz.)
Yetersizlikler
Betik okuma seenei, hedef aacn, betiin oluturulduu hedefteki aala ayn
olaca kabulne dayanr. Hedef aata bir fark saptandnda ilem ya bir hata
verilmeksizin iptal edilir (dosya gncel grnyorsa) ya da dosya
gncellemesi yaplmaya allr ve bundan sonra eer dosyann dorulanmas baarsz
olursa ilem bir hata retilerek iptal edilir. Bu, eer ilem kesintiye
uratlrsa bir betik okuma ileminin yeniden balatlmasnn gvenli olmas
gerektii anlamna gelir. Eer betikli gncellemenin dosyann boyutuna ve
tarihine baklmakszn daima yaplabilmesini isterseniz, -I seeneini
kullann (betik okunurken). Eer bir hata oluursa, hedef aa bir ihtimal,
ksmen gncellenmi durumda olacaktr. Bu durumda, rsync betikli gncelleme
ile deil, normal ilemle kullanlarak hedef aa dzeltilebilir.
Tm hedeflerde kullanlan rsync srm, betik dosyasn retmekte kullanlandan
en azndan biraz daha yeni olmaldr. Eer, betik dosyasnn protokol srm
onu okuyan rsync'in srmnden daha yeni ise rsync bir hata vererek
sonlanacaktr.
--dry-run (-n) seenei betik kipinde almaz ve bir alma an hatas ile
sonlanr.
Bir betik dosyas okunurken, siz belirtmemi olsanz bile, betik dosyas
retilirken kullanlan ve betik dosyasndaki veriler iin gerekli olan baz
seenekler zorunlu olarak kullanlacaktr. Dier seenekler deitirilebilir,
hatta deitirilmelidir de. rnein, --write-batch seenei --read-batch
seenei olarak deimeli, --files-from kullanlmamaldr, bunun yannda
--filter/--include/--exclude seenekleri ise --delete seeneklerinden
biri belirtilmedike gerekli olmaz.
betik.sh dosyasn oluturan kod, kabuk betiinin sonuna tek bir listeye
dntrerek --filter/--include/--exclude seeneklerini bir belge niteliinde
ekler. Tecrbeli bir kullanc bu bilgiyi --delete tarafndan silinmesi
istenenlerde bir deiiklik varsa, dlama listesini deitirmekte
kullanabilir. Normal bir kullanc ise, bu ayrntlar yoksayabilir ve
betikli veriyi uygun --read-batch komutuyla altran kabuk betiini
kullanabilir.
rsync'deki zgn betik kipi "rsync+" zerine ina edilmi olsa da en son
srmde yeni bir gereklenim kullanlmaktadr.
rsync kaynak dizini iinde bir sembolik ba saptadnda temel davran
szkonusudur:
ntanml olarak, sembolik balar olduklar gibi aktarlmazlar. Bir
sembolik ba varsa, "skipping non-regular file" (normal dosya
olmadndan atlanyor) iletisini alrsnz ve dosya atlanr.
Eer --links seenei belirtilmise, sembolik balar alc tarafta ayn
hedefle yeniden oluturulurlar. BLG: --archive seenei dolayl olarak
--links seeneini uygular.
Eer --copy-links seenei belirtilmise, alc tarafa sembolik ban
ismiyle hedefindeki dosya aktarlr.
rsync ayrca, "gvenilir" ve gvensiz" sembolik balar ayrmsayabilir. Bunun
kullanld yere bir rnek olarak, bir sanalyre yanslamas yaplrken, yrenin
genel blmndeki /etc/passwd sembolik bann aktarmda ierilmediinden emin
olunmak istenmesi gsterilebilir. --copy-unsafe-links seeneinin kullanm
sembolik balarn hedefindeki dosyalarn kopyalanmasna sebep olacaktr.
--safe-links seeneinin kullanm ise gvensiz balarn atlanmasna sebep
olacaktr.
Mutlak yol ieren (/ ile balayan) sembolik balarla, bulunulan dizinden
daha yukardaki dizinleri gsteren ".." bileenlerini ieren sembolik balar
gvensiz olarak kabul edilir.
rsync ara sra biraz ifreli gibi grnen hata iletileri retir. Bunlardan
biri en kafa kartc olan "protocol version mismatch -- is your shell
clean?" (protokol srm yanl -- kabuunuz temiz mi?) iletisidir.
Bu ileti genellikle, rsync'in aktarm iin kulland akm zerinde istenmeyen
veriler reten uzak kabul oluumlar ya da balatma betiklerinizden
kaynaklanr. Bu soruna tan koymann yolu, uzak kabuu yle altrmaktr:
ssh uzakmakine /bin/true > out.dat
Bundan sonra oluturulan out.dat dosyasna bakn. Herey yolunda gitmise
dosya sfr uzunlukta olacaktr. Eer yukardaki hatay alyorsanz, dosya baz
veriler ierecektir. Dosyann ieriine bakarak bunlar nelerin
retebileceini bulmaya aln. ok yaplan bir hata, etkileimsiz oturum amak
iin komutlar ieren yanl yaplandrlm kabuk betikleridir (.cshrc veya
.profile gibi).
Szme kalplarnda hata ayklamak istiyorsanz, -vv seeneini belirtmeyi
deneyin. rsync, bu ayrnt seviyesinde dosyalarn tek tek neden ierildiini
veya dlandn gsterecektir.
0 Baarl
1 Szdizimi ya da kullanm hatas
2 Protokol uyumsuzluu
3 girdi/kt dosyalarn, dizinlerini seerken oluan hatalar
4 stenen eylem desteklenmiyor; 64 bitlik dosyalar desteklemeyen
bir platformda bu tr dosyalarla allmak isteniyor; istemci
tarafndan desteklendii halde sunucu tarafndan desteklenmeyen bir
seenek kullanlm.
5 Sunucu/istmeci protokol balatlrken hata.
10 Soket G/ hatas
11 Dosya G/ hatas
12 rsync protokol veri akmnda hata
13 Uygulama tanlarnda hata
14 Sreleraras iletiim (IPC) kodunda hata
20 Bir SIGUSR1 veya SIGINT alnd
21 waitpid() baz hatalar dndrd
22 nve bellek tamponlar ayrlrken hata
23 Hatadan dolay ksm aktarm
24 Gzden kaan kaynak dosyalarndan dolay ksm aktarm
30 Veri aktarmnda zamanam
CVSIGNORE
.cvsignore dosyalarndaki gibi yoksaylacak kalplar belirtmek iin
kullanlr. Daha fazla bilgi iin --cvs-exclude seeneinin aklamasna
baknz.
RSYNC_RSH
rsync tarafndan kullanlan ntanml kabuun yerine kullanlacak kabuu
belirtmek iin kullanlr. Komut isminden sonra komut satr seenei
olarak sadece -e seenei kullanlabilir.
RSYNC_PROXY
rsync sunucusuna balanrken rsync istemcisi tarafndan kullanlacak
vekil sunucuyu belirtmek iin kullanlr. Deeri bir konakad:port
ifti olarak belirtmelisiniz.
RSYNC_PASSWORD
Kimlik kantlamas gerektiren bir rsync sunucusuna balanrken komut
satrnda parola belirtmek zorunda kalmamak iin parola bu deikene
atanabilir. Aktarm ssh gibi bir kabuk zerinden
gerekletiriliyorsa bu deikene baklmayacaktr.
USER veya LOGNAME
USER veya LOGNAME deikenleri bir rsync sunucusuna gnderilecek
kullanc ismini saptamak iin kullanlr. Byle bir tanm yaplmamsa,
ntanml kullanc ismi olarak "nobody" kullanlr.
HOME Kullancnn ntanml .cvsignore dosyasn bulmakta kullanlr.
/etc/rsyncd.conf veya rsyncd.conf
rsyncd.conf(5)
Zamanlar unix time_t trnden deerler olarak aktarlr.
Dosyalar FAT dosya sistemine aktarlrken, rsync dosyalarda deiiklik
yapmayabilir. --modify-window seeneinin aklamasna baknz.
Dosya izinleri, aygtlar, vs. temel saysal deerleriyle aktarlr.
Ayrca, --delete seeneinin aklamasna da baknz.
Ltfen hatalar raporlaynz! Hatalar raporlamak iin
http://rsync.samba.org/ adresine baknz.
rsync GNU kamu lisans altnda datlmaktadr. Ayrntlar iin COPYING dosyasna
baknz.
Sanalyremize http://rsync.samba.org/ adresinden eriebilirsiniz. Bu
klavuz sayfasnda yantlarn bulamadnz sorular iin sanalyremizde bir
FAQ-O-Matic bulunmaktadr.
rsync'in ana ftp'si: ftp://rsync.samba.org/pub/rsync.
Bu uygulamay istiyorsanz, sizden bunu duymak bizi mennun edecektir.
Bu uygulamada, Jean-loup Gailly ve Mark Adler tarafndan yazlm zlib
sktrma ktphanesi kullanlmaktadr.
rsync'in yamanmas, snanmas ve nerileri iin Richard Brent, Brendan
Mackay, Bill Waite, Stephen Rothwell ve David Bell'e teekkr ederiz.
Burada bahsetmeyi unuttuum kiiler kalmsa, affola.
Ayrca, David Dykstra, Jos Backus, Sebastian Krahmer, Martin Pool,
Wayne Davison ve J.W. Schultz'a zellikle teekkr ederiz.
rsync ilk olarak Andrew Tridgell ve Paul Mackerras tarafndan yazld.
Daha sonra bir ok kii tarafndan gelitirildi.
Destek ve gelitirme iin http://lists.samba.org adresindeki eposta
listelerine baknz.
Nilgn Belma Bugner <nilgun (at) belgelergentr>, Mart 2005
28 ubat 2005 rsync(1)