RSync Server con CentOS
Abbiamo già usato in passato rsync, un software in ottica client/server che sincronizza file e cartelle tra due locazioni (in rete o meno) minimizzando e ottimizzando il trasferimento dei dati. Un’importante caratteristica di rsync che non trova riscontri in programmi/protocolli simili (ad esempio ftp) è che il mirroring avviene attraverso una sola trasmissione per ogni direzione di comunicazione. rsync può copiare o visualizzare il contenuto delle directory e copiare i files, utilizzando opzionalmente la compressione dei dati e la ricorsione. Per default, rsync effettua la copia attraverso una connessione TCP sulla porta 873, ma può essere incapsulato su ssh per una trasmissione sicura dei dati. Tralasciamo ssh e vediamo come utilizzare il suo protocollo nativo usando come server CentOS. Sulle altre distro cambia solo la parte relativa all’installazione, per il resto rsync è rsync …
Server
Installazione
Installiamo il necessario:
yum -y install rsync xinetd
Con CentOS rsync viene avviato con il demone xinetd, quindi aggiungiamolo alla lista dei servizi da attivare:
chkconfig –add xinetd
Se vogliamo essere sicuri controlliamo che xinetd sia avviato con i runlevel 3 (solo shell) e 5 (grafica):
chkconfig –list xinetd
Configurazione
Abilitiamo rsync con xinetd editando il file:
nano /etc/xinetd.d/rsync
e cambiando la riga da “disable = yes” a “disable = no”
creiamo un file che contiene utenti e password per l’accesso dei clients:
nano /etc/rsyncd.secrets
scrivendoci ad esempio:
utente:password
creiamo il file di configurazione e una condivisione, nella sintassi molto simile ad in file INI di Windows :
nano /etc/rsyncd.conf
ad esempio :
max connections = 2
log file = /var/log/rsync.log
timeout = 300[rsbackup]
comment = condivisione rsync di backup
path = /home/rsbackup
read only = false
list = yes
uid = nobody
gid = nobody
auth users = utente
secrets file = /etc/rsyncd.secrets
hosts allow = 172.16.105.0/24
Credo il file si commenti da solo.
Mettiamo ora al riparo da occhi indiscreti il nostro file delle password :
chown root.root /etc/rsyncd.*
chmod 600 /etc/rsyncd.*
e avviamo rsync attraverso xinetd
service xinetd restart
per sicurezza controlliamo che rsync sia attivo :
chkconfig –list
Facciamo attenzione al firewall (se presente) abilitando la porte 873 TCP e UDP altrimenti non riusciremo a connetterci al nostro server.
Client
Nel client non c’e’ molto da fare una volta che rsync è installato. Possiamo direttamente provare:
rsync utente@server::
Dopo aver digitato la password dovremmo ottenere la lista della condivisioni. Facciamo attenzione al doppio “::”, con il singolo “:” diciamo a rsync di utilizzare ssh per la comunicazione:
rsync utente@server:
in questo caso “utente” deve essere un utente valido per ssh non per rsync !
Se vogliamo realizzare degli script di salvataggio non possiamo certo
star lì a digitare la password. Per ovviare a questo problema creiamo
un file tipo quello del server:
nano /etc/rsync.secret
scrivendoci la password :
password
mettiamo in sicurezza il file come prima:
chown root.root /etc/rsync.secret
chmod 600 /etc/rsync.secret
ora possiamo utilizzare il comando così:
rsync –password-file=/etc/rsync.secrets utente@server::
ottenendo l’output senza dover digitare la password.
E per finire …. lanciamo un bel backup delle nostre homes sul server rsync :
rsync -av –delete –password-file=/etc/rsyncd.secrets /home utente@server::rsbackup
magari ottenendo anche informazioni sulla percentuale di completamento aggiungendo il parametro –progress.
Per chi vuole approfondire segnalo una interessante guida al backup con rsync e non solo, .