Come copiare o trasferire file su 2 server Linux con RSync

Al giorno d’oggi gli amministratori di sistema Linux hanno molti strumenti e opzioni per facilitare il trasferimento di dati e file da e verso i server. SSH e FTP sono i protocolli più popolari per il trasferimento dati. FTP, da un lato, è popolare per la sua facilità d’uso ma, dall’altro lato, SSH è molto più sicuro e affidabile. Per il trasferimento dati basato su SSH, scp e sftp sono due strumenti specializzati utilizzati dagli amministratori di sistema da molti anni. Tuttavia, nessuno di questi offre tutte le funzionalità e le capacità fornite da rsync .

In questo tutorial spiegheremo come funziona Rsync e come puoi usarlo per trasferire file e cartelle da e verso server Linux. Alla fine di questo tutorial puoi anche trovare un Rsync Cheat Sheet con la spiegazione dei parametri del comando rsync.

Che cosa è RSync

rsync è un’utilità per trasferire e sincronizzare in modo efficiente file tra computer e server su reti locali e pubbliche. Rsync sta per “remote sync” e utilizza un algoritmo che riduce al minimo la quantità di dati copiati trasferendo solo i file che sono stati modificati.

Come installare Rsync su un server Linux

Per installare Rsync sul tuo server Linux, puoi utilizzare i seguenti comandi in base alla tua distribuzione Linux:

sudo apt-get install rsync // per Debian/Ubuntu
pacman -S rsync // per Arch Linux
sudo dnf install rsync // per Fedora/CentOS/RHEL e Rocky Linux/AlmaLinux

Esempio 1: Copia un’intera directory dal server locale a un server remoto

Supponendo che tu sia connesso a un server A e desideri trasferire un’intera directory denominata public_html che si trova in “/home” a un server B ( IP: 192.168.1.3 ), puoi utilizzare il seguente comando:

rsync -arvzh /home/public_html root@192.168.1.3:/home/

Esempio 2: Copia una directory dal server remoto a una macchina locale

Il seguente comando ti aiuterà a sincronizzare l’intera directory /var/backup da un server remoto ( IP: 192.168.1.3 ) a un server a cui sei attualmente connesso:

rsync -arvzh root@192.168.1.3:/var/backup /var/

Esempio 3: utilizzare RSync per il trasferimento di file tra server con porta SSH personalizzata

Se desideri trasferire file a un server che utilizza una porta SSH non standard, allora devi fornire il comando rsync con l’ argomento -e e specificare la porta SSH personalizzata utilizzata dal server di destinazione. Nel nostro esempio qui sotto assumiamo che la porta SSH sia 2222 e trasferiremo il file /home/public_html/index.html.

rsync -avzh -e 'ssh -p 2222' /home/public_html/index.html root@192.168.1.3:/home/public_html/

Esempio 4: Eliminazione automatica dei file sul server di origine dopo il trasferimento riuscito

Nei casi in cui si avvia un trasferimento di dati, ad esempio per scopi di backup, potrebbe essere necessario eliminare i file dal server di origine dopo che sono stati trasferiti al server di backup/destinazione.

rsync -avzh --remove-source-files /root/backup.tar.gz root@192.168.1.3:/root/

Esempio 5: testare il comando RSync con Dry Run

Se non hai ancora familiarità con rsync, potresti non voler eseguire comandi che potrebbero mandare in tilt i tuoi dati sui server di origine o di destinazione. In questo caso, rsync fornisce un parametro meraviglioso che non apporterà modifiche reali, ma mostrerà invece l’output di ciò che farebbe il tuo comando.

rsync -avzh --dry-run /root/backup.tar.gz root@192.168.1.3:/root/

Esempio di output:

[root@ubuntu-server:~]# rsync --dry-run --remove-source-files -zvh /root/backup.tar.gz root@192.168.1.3:/root/

root@192.168.1.3's password: 
backup.tar.gz

sent 50 bytes  received 94 bytes  95.15 bytes/sec
total size is 267.30K  speedup is 3,873.97 (DRY RUN)

Autore

Classe Novanta3, Fondatore di TrgtKLS. Appassionato in Sec IT & Tech. Expert per l'amministrazione web server e supporto in Back-&, ottimizzazione e manutenzione di esso. • Metà Free e Metà Freelancer • mail@trgtkls.org

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

close