Linux – Sincronizzazione del server remoto con rsync e ssh

Creato il 13 maggio 2011 da Blogrammazione

fonte: web

Chi utilizza Linux come sistema desktop dispone di uno strumento potente, veloce, sicuro e semplice da usare per sincronizzare file/cartelle locali con file/cartelle memorizzate in un server remoto: il nome di questo strumento è rsync.

rsync è una utility che una volta imparata ad usare non ne potrete più fare a meno. Potendo essere utilizzata in contemporanea con il protocollo SSH è uno degli strumenti più sicuri e performanti per l’aggiornamento delle risorse in remoto.

Oltre alla sincronizzazione dei file e delle cartelle in remoto, rsync è un ottimo strumento per eseguire il backup dei file e delle cartelle del nostro server, perchè anche in questo caso risulta decisamente veloce e chiaramente sicuro.

Vediamo come si utilizza.

Se volessimo sincronizzare/caricare tutti i file di una cartella in locale con quelli di una cartella sul server in remoto dovremmo utilizzare rsync in questo modo:

rsync -rvC --rsh="ssh -l SSH_USERNAME"  * HOST:REMOTE_DIRECTORY/

dove “*” rappresenta tutte le risorse contenute nella directory locale corrente (quella cioè in cui ci troviamo quando lanciamo il comando), “SSH_USERNAME” è il nome utente per il protocollo SSH, “HOST” è il nome di dominio o l’indirizzo IP del server e “REMOTE_DIRECTORY” e la cartella remota del server in cui vogliamo aggiornare/sincronizzare i file o le cartelle.

L’opzione “-r” attiva la modalità ricorsiva, quella “-v” incrementa la verbosità e la “-C” attiva l’esclusione CVS.  Chiaramente al posto di “*” possiamo specificare una particolare directory, un particolare file, un insieme di directory, ecc. per l’aggiornamento/caricamento in remoto, mentre invertendo l’origine con la destinazione in questo modo:

rsync -rvC --rsh="ssh -l SSH_USERNAME"  HOST:REMOTE_DIRECTORY/ /home/utente/Desktop/ 

potremmo eseguire il backup della directory remota “REMOTE_DIRECTORY” del server in locale (nella directory “/home/utente/Desktop/”). Facile no?