Rsync

Rsync je..

.. software pro Unixové systémy. Umí synchronizovat data mezi dvěma body. Používá delta kódování pro optimalizaci přenosu dat.

Rsync se hodí když..

  • Potřebujeme vytvořit zrcadlení nějakého adresáře na aktuálním nebo vzdáleném stroji
  • Potřebujeme (pravidelně) zálohovat
  • Potřebujeme přenášet data po síti přerušovaně nebo jsme na síti s vyšší chybovostí přenosu
  • Potřebujeme "dopřenést" jen malé změny něčeho velkého
  • Klonujeme nebo přenášíme systém na jiný disk nebo dikový oddíl
  • atd..

Nejčastější parametry

  --verbose : upovídaný mód
  --progress : ukazuje přenos v procentech pro každý soubor
  --recursive, -r : kopíruje celý strom
  --archive, -a : archivní mód (rekurzivní, zachovává práva, vlastníka, ...)

Lokální synchronizování

Na localhostu je práce s rsync velice jednoduchá. Viz příklad

bash$ rsync --progress --recursive /home/dum8d0g/tmp/tf /tmp/x
sending incremental file list
tf/
tf/12878732
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=4/6)
tf/dioda.tex
        7599 100%    0.00kB/s    0:00:00 (xfer#2, to-check=3/6)
tf/gen.c
        2164 100%  264.16kB/s    0:00:00 (xfer#3, to-check=2/6)
tf/main.c
        7847 100%  696.64kB/s    0:00:00 (xfer#4, to-check=1/6)
tf/tags
        2174 100%   88.46kB/s    0:00:00 (xfer#5, to-check=0/6)

sent 20114 bytes  received 111 bytes  13483.33 bytes/sec
total size is 19784  speedup is 0.98

Synchronizace se vzdáleným bodem

Vzdáleným bodem může být počítač v lokální síti nebo internetu či libovolné zařízení mající rsyncd a místo pro data. Předpokládáme, že rsyncd běží na vzdáleném bodu (jinak by to nemělo moc smysl) a na localu chceme naplnit nějaký adresář všemi daty, které vzdálený bod poskytuje. Příklad

aerovax > rsync --verbose --progress --recursive rsync://10.0.0.2/dum8d0g/ /tmp/x/
receiving incremental file list
12878732
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=4/6)
dioda.tex
        7599 100%    7.25MB/s    0:00:00 (xfer#2, to-check=3/6)
gen.c
        2164 100%    1.03MB/s    0:00:00 (xfer#3, to-check=2/6)
main.c
        7847 100%    1.50MB/s    0:00:00 (xfer#4, to-check=1/6)
tags
        2174 100%  353.84kB/s    0:00:00 (xfer#5, to-check=0/6)

sent 124 bytes  received 20107 bytes  40462.00 bytes/sec
total size is 19784  speedup is 0.98
aerovax > 

Pro upload místo downloadu stačí jenom prohodit source a destination.

Konfigurace rsyncd

Soubor /etc/rsyncd.conf

uid = dum8d0g
gid = users
use chroot = no
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid

[dum8d0g]
        path = /home/dum8d0g/rsync
        comment = "home"
        read only = false

Jak je vidět tak na mojem notebooku je povolený jen 'pool' s názvem 'dum8d0g', který směřuje do adresáře '/home/dum8d0g/rsync'. Všechny ostatní volby jsou celkem jasné. Pro další informace – dokumentace.

Spuštění rsyncd: '# /etc/rc.d/rsyncd start' popřípadě '# /etc/init.d/rsyncd start'

Rsync + SSH

Rsync sám o sobě nepoužívá šifrování. Při provozu na lokální síti se to dá překousnout, ale pro vnější provoz je vhodné rsync kombinovat s ssh. Viz příklad

bash$ rsync -avr dum8d0g@localhost:~/rsync /tmp/x
receiving incremental file list
rsync/
rsync/12878732
rsync/dioda.tex
rsync/gen.c
rsync/main.c
rsync/tags

sent 110 bytes  received 20127 bytes  40474.00 bytes/sec
total size is 19784  speedup is 0.98
bash$ 
/home/dum8d0g/www/martin.kopta.eu/trash/wiki/data/pages/software/rsync.txt · Poslední úprava: 2010/05/01 10:26 autor: martin
CC Attribution 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0