27.6. Úvod do rsync

Program rsync je užitečný, pokud je potřeba pravidelně přenášet velké množství dat, která se příliš nemění. To je často případ záloh nebo staging serverů. Tyto servery obsahují kompletní adresářové stromy webserverů, které jsou pravidelně zrcadleny na webserver v demilitarizované zóně.

27.6.1. Konfigurace a provoz

Program rsync lze provozovat ve dvou různých režimech. Může být používán k archivování nebo kopírování dat. K tomu je na cílovém systému potřeba pouze vzdálený interpret příkazů, např. ssh. Program rsync lze ale používat také jako démon, který poskytuje adresáře na síti.

Základní provozní režim rsync nevyžaduje žádné zvláštní nastavení. Program rsync umožňuje přímo zrcadlit celé adresáře na jiný systém. Následující příkaz například vytvoří zálohu domovského adresáře uživatele tux na záložním serveru sun:

rsync -baz -e ssh /home/tux/ tux@sun:backup

A tímto příkazem se adresář nahraje zpět:

rsync -az -e ssh tux@sun:backup /home/tux/

Použití se příliš neliší od běžného kopírovacího nástroje, jako např. scp.

Program rsync by ale měl být používán v režimu rsync, který umožňuje plně využívat všechny jeho funkce. Lze tak učinit spuštěním démona rsyncd na jednom ze systémů. Démon se konfiguruje v souboru /etc/rsyncd.conf. Pokud například chcete aby byl adresář /srv/ftp dostupný přes rsync, použijte následující konfiguraci:

gid = nobody
uid = nobody
read only = true
use chroot = no
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log

[FTP]
        path = /srv/ftp
        comment = An Example

Po provedení konfigurace spusťte rsyncd příkazem rcrsyncd start. Program rsyncd může být spouštěn i automaticky během startu systému. To nastavíte v editoru úrovní běhu pomocí nástroje YaST nebo ručně příkazem insserv rsyncd. Program rsyncd může být také spuštěn pomocí xinetd, je to však doporučeno jen na serverech, které rsyncd používají jen výjimečně.

Konfigurace v použitém příkladu rovněž vytváří protokolový soubor /var/log/rsyncd.log, ve kterém jsou zaznamenávána všechna spojení.

Přenos z klientského systému lze otestovat příkazem:

rsync -avz sun::FTP

Tento příkaz vypíše všechny soubory v adresáři /srv/ftp na serveru. Požadavek je zaznamenán v souboru /var/log/rsyncd.log. Pro zahájení skutečného přenosu specifikujte cílový adresář. Aktuální adresář zapište jako .. Například:

rsync -avz sun::FTP .

Implicitně se při synchronizaci pomocí rsync nemažou žádné soubory. Pokud si chcete smazání souborů vynutit, musíte použít parametr --delete. Pokud si chcete být jistí, že nebudou smazány žádné novější soubory, použijte parametr --update. Veškeré konflikty je nutné řešit manuálně.

27.6.2. Další informace

Důležité informace o rsync naleznete v manuálových stránkách (man rsync a man rsyncd.conf). Technický popis funkce rsync naleznete v souboru /usr/share/doc/packages/rsync/tech_report.ps. Novinky o rsync najdete na webové stránce projektu na adrese http://rsync.samba.org/.