Rsync: esempi reali di utilizzo di Rsync per backup e sincronizzazione
Rsync è uno strumento da riga di comando molto popolare in Linux per la sincronizzazione di file e directory tra due posizioni diverse. Rsync è comunemente usato per eseguire backup, trasferimenti di file, copie da una posizione a un’altra e mirroring.
Rsync utilizza un algoritmo di trasferimento delta, il che significa che trasferisce solo le parti dei file che sono state modificate, rendendolo molto efficiente per file di grandi dimensioni o con un numero elevato. Ha anche la capacità di riprendere i trasferimenti interrotti e può funzionare su SSH per una maggiore sicurezza.
Alcuni casi d’uso comuni per i comandi Rsync includono:
- Backup di file e directory su un server remoto
- Sincronizzazione di file e directory tra più computer
- Mirroring di un sito Web o di un altro repository di file remoto
- Trasferimento di file di grandi dimensioni su una rete
Il comando Rsync può essere utilizzato su vari sistemi operativi come Windows, Linux, macOS, ecc.
Sintassi di base del comando Rsync
rsync [OPTION]… SRC [SRC]… DEST
Varie opzioni utilizzate con il comando Rsync:
- –verbose, -v aumenta la verbosità
- –archive, -a modalità di archivio è -rlptgoD (no -A,-X,-U,-N,-H)
- –recursive, -r ricorsiva nelle directory
- –relative, -R utilizza nomi di percorso relativi
- –backup, -b effettua backup (vedi –suffix e –backup-dir)
- –update, -u salta i file più recenti sul ricevitore
- –dirs, -d trasferisce le directory senza ricorrere in modo ricorsivo
- –dry-run, -n esegue un’esecuzione di prova senza apportare modifiche
- –del un alias per –delete-during
- –progress mostra l’avanzamento durante il trasferimento
- –itemize-changes, -i genera un riepilogo delle modifiche per tutti gli aggiornamenti
- –aiuto, -h
Installa Rsync sul sistema Linux
sudo apt install rsync
Debian/Ubuntu
sudo yum install rsync
RHEL/CentOS/Fedora/Oracle/Rocky e AlmaLinux
pacman -S rsync
ArcoLinux
sudo zypper install rsync
openSUSE
Usi pratici del comando Rsync
Come accennato in precedenza, Rsync è un utile strumento di comando per la gestione dei file tramite riga di comando. Usando Rsync possiamo eseguire il backup, il mirroring e la copia dei file sul terminale.
rsync -avz -e ssh /path/to/local/directory/ [email protected]:/path/to/remote/directory/
1. Sincronizzazione di una directory locale su un server remoto tramite SSH:
Questo comando utilizza il flag -a per la modalità archivio, -v per l’output dettagliato, -z per la compressione e il flag -e seguito dal comando ssh per connettersi al server remoto.
rsync -avz -e ssh [email protected]:/path/to/remote/directory/ /path/to/local/directory/
2. Sincronizzazione di una directory remota su un computer locale tramite SSH:
Questo comando è simile al precedente, ma copia i file dal server remoto al computer locale.
rsync -av --progress /path/to/local/directory/ /path/to/remote/directory/
3. Sincronizzazione di una directory con avanzamento:
Questo comando utilizza il flag –progress per visualizzare l’avanzamento del trasferimento.
rsync -av --exclude='*.log' /path/to/local/directory/ /path/to/remote/directory/
4. Sincronizzare una directory ed escludere determinati file:
Questo comando utilizza il flag –exclude seguito da un pattern per escludere tutti i file con estensione .log dal trasferimento.
rsync -avL /path/to/local/directory/ /path/to/remote/directory/
5. Sincronizzazione di una directory e conservazione dei collegamenti simbolici:
Questo comando utilizza il flag -L per preservare i collegamenti simbolici durante il trasferimento.
rsync -avH /path/to/local/directory/ /path/to/remote/directory/
6. Sincronizzazione di una directory e conservazione dei collegamenti reali:
Questo comando utilizza il flag -H per preservare i collegamenti reali durante il trasferimento.
rsync -avp /path/to/local/directory/ /path/to/remote/directory/
7. Sincronizzazione di una directory e conservazione delle autorizzazioni:
Questo comando utilizza il flag -p per preservare le autorizzazioni durante il trasferimento.
rsync -avt /path/to/local/directory/ /path/to/remote/directory/
8. Sincronizzazione di una directory e conservazione dei timestamp:
Questo comando utilizza il flag -t per preservare i timestamp durante il trasferimento.
rsync -av --delete /path/to/local/directory/ /path/to/remote/directory/
9. Sincronizzazione di una directory ed eliminazione di file che non si trovano più nell’origine:
Questo comando utilizza il flag –delete per eliminare dalla directory di destinazione i file che non si trovano più nella directory di origine.
rsync -avb /path/to/local/directory/ /path/to/remote/directory/
10. Sincronizzazione di una directory e creazione di un backup dei file sovrascritti:
Questo comando utilizza il flag -b per creare un backup dei file che vengono sovrascritti durante il trasferimento. I file di backup avranno il suffisso ~.
Domande frequenti su Rsync
Rsync può essere utilizzato per sincronizzare file tra diversi sistemi operativi?
Sì, Rsync può essere utilizzato per sincronizzare file tra diversi sistemi operativi purché su entrambi sia installato il comando Rsync.
È possibile utilizzare Rsync per sincronizzare i file su Internet?
Sì, Rsync può essere utilizzato per sincronizzare file su Internet, utilizzando direttamente il protocollo rsync o tunneling della connessione tramite SSH.
Rsync può copiare i permessi e la proprietà dei file?
Sì, Rsync ha la possibilità di preservare i permessi e la proprietà dei file durante il loro trasferimento.
Rsync può copiare i collegamenti simbolici?
Sì, Rsync può copiare i collegamenti simbolici, ma ha anche la possibilità di copiare i file a cui puntano i collegamenti simbolici.
È possibile utilizzare Rsync per creare backup incrementali?
Sì, Rsync può essere utilizzato per creare backup incrementali utilizzando l’opzione “–link-dest”, che crea collegamenti fisici per i file che non sono cambiati dall’ultimo backup.
È possibile utilizzare Rsync per sincronizzare i file con un dispositivo mobile?
Sì, Rsync può essere utilizzato per sincronizzare file con un dispositivo mobile, a condizione che sul dispositivo sia installato un client Rsync o che il dispositivo possa connettersi al server tramite SSH.
È possibile utilizzare Rsync per sincronizzare i file con l’archiviazione cloud?
Sì, Rsync può essere utilizzato per sincronizzare file con servizi di archiviazione cloud, a condizione che il servizio disponga di un modo per connettersi a un server tramite SSH o disponga di un client Rsync in grado di connettersi al server.
È possibile utilizzare Rsync per trasferire file su un server remoto protetto da un firewall?
Sì, Rsync può essere utilizzato per trasferire file su un server remoto protetto da un firewall, a condizione che il firewall consenta connessioni in entrata alla porta Rsync (873) o alla porta SSH (22).
Rsync in un sistema Linux, può essere utilizzato per eseguire backup, trasferimenti di file, copia da una posizione a un’altra e mirroring e può essere eseguito su macchine locali o remote utilizzando una connessione SSH.