Internet è il postino dei nostri tempi che nessun cane azzannerà.
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 ...
Installiamo il necessario:
yum -y install rsync xinetd
chkconfig --add xinetd
chkconfig --list xinetd
Abilitiamo rsync con xinetd editando il file:
nano /etc/xinetd.d/rsync
creiamo un file che contiene utenti e password per l'accesso dei clients:
nano /etc/rsyncd.secrets
utente:password
creiamo il file di configurazione e una condivisione, nella sintassi molto simile ad in file INI di Windows :
nano /etc/rsyncd.conf
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
Mettiamo ora al riparo da occhi indiscreti il nostro file delle password :
chown root.root /etc/rsyncd.*
chmod 600 /etc/rsyncd.*
service xinetd restart
chkconfig --list
Facciamo attenzione al firewall (se presente) abilitando la porte 873 TCP e UDP altrimenti non riusciremo a connetterci al nostro server.
Nel client non c'e' molto da fare una volta che rsync è installato. Possiamo direttamente provare:
rsync utente@server::
rsync utente@server:
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
password
chown root.root /etc/rsync.secret
chmod 600 /etc/rsync.secret
rsync --password-file=/etc/rsync.secrets utente@server::
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
Per chi vuole approfondire segnalo una interessante guida al backup con rsync e non solo, a questo indirizzo.
Byez :)
A mio parere è sempre meglio incapsulare rsync con ssh, il tempo macchina non è così tanto e l'overhead sulla rete trascurabile.
Se si usa rsync pulito è meglio avere un utente dedicato con una passphrase abbastanza lunga per scoraggiare gli script, sapendo però che una persona smaliziata potrebbe bucare il tutto.
Concordo. Tuttavia siccome avevo già spiegato in un precedente post come farlo con SSH, mi faceva piacere qui cambiare metodo giusto per far notare le due possibilità.
Certo. Poi, ovviamente, ci sono usi ottimi di rsync.
Soprattutto se la confidenzialità non è necessaria.