Il software è come il sesso, è meglio quando è libero. (Software is like sex, it's better when it's free).

— Linus Torvalds

Reply to comment

rsync server con CentOS

http://www.stenoweb.it/files/blog/centos.png 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, a questo indirizzo.

Byez :)

Reply

The content of this field is kept private and will not be shown publicly.