Linux: copiare una cartella in un altro PC (rsync over ssh)

Esistono molti prodotti, anche commerciali, che consentono di copiare il contenuto di una cartella in un altro PC. Questo può essere utile per avere un backup remoto, ad esempio.

Rsync è un tool molto semplice che consente la copia di files tra due cartelle in modo che il contenuto sia sincronizzato. Le due cartelle devono però essere locali (magari anche NFS) ma comunque collegate allo stesso PC.

E’ possibile con un’opzione effettuare l’rsync tra due PC, a patto che si possa accedere al PC remoto tramite ssh e che rsync sia installato su entrambi.

Vediamo la procedura.
– creiamo la chiave ssh sul server nel caso ancora non sia stata creata:

ssh-keygen -o -a 100 -t ed25519 -C "indirizzo@email"

oppure, per sistemi più vecchi:
ssh-keygen -q -P ""

– si copia sul server remoto:

ssh-copy-id -i ~/.ssh/id_ed25519.pub utente@server_remoto

oppure, per sistemi più vecchi:
ssh-copy-id -i ~/.ssh/id_rsa.pub utente@server_remoto

– fatto questo, si possono sincronizzare i files (prende i files da /var/www e copia in utente@server_remoto:/var/www):
rsync -avz -e ssh /var/www utente@server_remoto:/var/

Nota: bisogna prestare attenzione al nome della cartella di origine e destinazione, perché quella di origine viene aggiunta a quella di destinazione, ovvero nel caso precedente come destinazione va indicato solo /var.

Per fare solo un check dei file coinvolti da rsync, senza copiare effettivamente, aggiungere l’opzione -n (ovvero –dry-run).

Per copiare solo i file non esistenti nel server remoto (senza sovrascrivere quelli esistenti anche se diversi), usare l’opzione –ignore-existing.

enjoy!

Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui

Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂



Commenta