rsync si propone ogni qualvolta si debbano trasmettere grandi volumi di dati con cadenze più o meno regolari. Cosa che si ha spesso quando si esegue un back-up, ovvero una copia di sicurezza. Un ulteriore campo di applicazione è rappresentato dai cosiddetti staging server, ovvero server su cui risiede l'intero albero directory di un server Web che viene specchiato con cadenze regolari sull'effettivo server Web in una «DMZ».
rsync può essere utilizzato in due modi diversi.
rsync può essere utilizzato per archiviare e
copiare dei file, a tal fine è richiesta solo una shell remota, come ad
esempio ssh, sull'host meta. rsync può però fungere anche da
daemon e mettere a disposizione
delle directory nella rete.
Per utilizzare rsync non è richiesta una configurazione particolare. rsync permette di specchiare direttamente delle intere directory su di un altro host. Ad esempio con il seguente comando è possibile avere un back-up della directory home di tux sul server di back-up sun:
rsync -baz -e ssh /home/tux/ tux@sun:backup
Per il processo inverso si immette:
rsync -az -e ssh tux@sun:backup /home/tux/
Fin qui il funzionamento non si distingue particolarmente da una comune applicazione per effettuare delle copie, come scp.
Per sfruttarne a fondo le potenzialità, rsync
dovrebbe girare nel modo «rsync». A tal fine va
avviato su un host il daemon rsyncd. In questo caso
rsync si configura tramite il file
/etc/rsyncd.conf. Se ad esempio intendete
rendere accessibile la directory /srv/ftp
tramite rsync potete utilizzare il file di configurazione riportato:
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 = Un esempio
In seguito si dovrà lanciare rsyncd con
rcrsyncd start
rsyncd può essere lanciato anche
automaticamente durante il processo di boot, basta abilitare il
servizio nell' editor dei runlevel di YaST oppure immettere
manualmente il comando insserv rsyncd.
Come alternativa rsyncd può essere lanciato anche
da xinetd. Ciò si consiglia solo nel caso di server su cui non si utilizza
spesso rsyncd.
Nell'esempio di sopra viene creato anche
un file di log che protocolla tutte le connessioni, lo ritroverete sotto
/var/log/rsyncd.log.
A questo punto si potrà seguire il transfer da un client, tramite il comando:
rsync -avz sun::FTP
Questo comando elenca tutti i file che si trovano sul server nella directory
/srv/ftp. Questa richiesta riemerge anche nel file di log
sotto /var/log/syncd.log. Per avviare il transfer
va indicata una directory meta. Per indicare la directory attuale potete anche
utilizzare un ., quindi:
rsync -avz sun::FTP .
Di default durante il processo di sincronizzazione eseguito tramite
rsync non vengono eliminati dei file.
Se si vuole forzare tale operazione, basta indicare in aggiunta l'opzione
--delete.
Per garantire che non vengano sovrascritti dei file aggiornati
potete indicare l'opzione --update. Se dovessero
verificarsi dei conflitti, questi dovranno essere risolti manualmente.
Le indicazioni di maggior rilevanza su rsync sono
contenute nelle pagine di manuale che potete visualizzare con
man rsync e
man rsyncd.conf.
Per delle indicazioni di natura tecnica su rsync
rimandiamo a /usr/share/doc/packages/rsync/tech_report.ps.
Per delle informazioni aggiornate su rsync visitate
il sito Web del progetto che trovate sotto http://rsync.samba.org.