Guida Base a rsync per Linux¶
Introduzione¶
rsync (remote sync) è un potente strumento da riga di comando per Linux che permette di sincronizzare file e cartelle sia localmente che attraverso la rete. È particolarmente apprezzato per:
- Efficienza: copia solo le differenze tra i file, risparmiando tempo e larghezza di banda
- Affidabilità: verifica l'integrità dei file durante il trasferimento
- Versatilità: può essere usato sia localmente che su connessioni remote
- Sicurezza: supporta il trasferimento crittografato attraverso SSH
- Compressione: può comprimere i dati durante il trasferimento
Sintassi Base¶
rsync [OPZIONI]... ORIGINE DESTINAZIONE
Opzioni Più Comuni¶
-a
: modalità archivio (mantiene permessi, link simbolici, date, ecc.)-v
: mostra il progresso (verbose)-z
: comprime i dati durante il trasferimento-P
: mostra il progresso e permette di riprendere trasferimenti interrotti-r
: copia ricorsivamente (include sottocartelle)--delete
: rimuove i file nella destinazione che non esistono nell'origine
Esempi Base¶
1. Copiare una cartella localmente¶
rsync -av ~/Documenti/foto/ ~/Backup/foto/
Questo comando:
-a
mantiene tutti gli attributi dei file-v
mostra il progresso- Copia tutti i file da
~/Documenti/foto/
a~/Backup/foto/
2. Backup con Data¶
rsync -av ~/Documenti/ ~/Backup/$(date +%F)/
Questo comando:
- Crea un backup datato (esempio: ~/Backup/2024-10-01/)
- Utile per backup incrementali giornalieri
3. Sincronizzare con Compressione su Server Remoto¶
rsync -avz ~/Documenti/ utente@server.esempio.com:/home/utente/documenti/
Questo comando:
-z
comprime i dati durante il trasferimento- Ideale per connessioni lente
- Usa SSH per una connessione sicura
4. Riprendere un Trasferimento Interrotto¶
rsync -avP ~/Documenti/ ~/Backup/documenti/
Questo comando:
-P
combina --partial (riprende trasferimenti interrotti) e --progress- Utile per file grandi e connessioni instabili
5. Sincronizzare Escludendo File¶
rsync -av --exclude '*.mp4' --exclude '*.tmp' ~/Progetti/ ~/Backup/progetti/
Questo comando:
- Esclude file MP4 e temporanei
- Puoi specificare multiple esclusioni
6. Sincronizzare con Eliminazione dei File non più presenti¶
rsync -av --delete ~/Sito/contenuti/ /var/www/html/
Questo comando:
- Sincronizza il contenuto di ~/Sito/contenuti/ (SORGENTE) con /var/www/html/ (DESTINAZIONE)
- Se un file esiste nella DESTINAZIONE ma non nella SORGENTE, verrà eliminato dalla DESTINAZIONE
- L'opzione --delete agisce SOLO sulla cartella di destinazione
- La sorgente non viene mai modificata
- Utile per mantenere una copia esatta della sorgente nella destinazione
Esempio pratico di cosa fa --delete:
# Situazione iniziale:
SORGENTE DESTINAZIONE
~/Sito/contenuti/ /var/www/html/
├── index.html ├── index.html
├── style.css ├── style.css
└── nuovo.html ├── vecchio.html
└── temp.txt
# Dopo rsync -av --delete:
SORGENTE DESTINAZIONE
~/Sito/contenuti/ /var/www/html/
├── index.html ├── index.html
├── style.css ├── style.css
└── nuovo.html └── nuovo.html
# vecchio.html e temp.txt sono stati eliminati dalla DESTINAZIONE
# perché non esistono nella SORGENTE.
# La SORGENTE rimane invariata.
Cosa fa --delete:
- ✓ Elimina file nella DESTINAZIONE se non esistono nella SORGENTE
- ✓ Mantiene la DESTINAZIONE come copia esatta della SORGENTE
- ✗ NON modifica MAI i file nella SORGENTE
- ✗ NON è bidirezionale, opera solo sulla DESTINAZIONE
ATTENZIONE: Prima di usare --delete:
- Eseguire prima un test con --dry-run per vedere quali file verranno eliminati:
rsync -av --delete --dry-run ~/Sito/contenuti/ /var/www/html/
- Avere un backup della cartella di destinazione
- Verificare attentamente i percorsi di origine e destinazione
- Ricordare che i file eliminati nella destinazione non possono essere recuperati
Comandi Complementari Utili¶
Prima di utilizzare rsync, può essere utile usare questi comandi:
df -h
: controlla lo spazio disponibile sui dischidu -sh cartella
: verifica la dimensione di una cartellaiostat
: monitora le prestazioni del disco durante i trasferimenti
Suggerimenti per la Sicurezza¶
Usa sempre --dry-run per test
rsync -av --dry-run ~/Documenti/ ~/Backup/
Verifica sempre i percorsi
- Fai attenzione allo slash finale (/)
- Un percorso sbagliato potrebbe sovrascrivere file importanti
Attenzione con --delete
- Questa opzione può cancellare file
- Usala sempre prima con --dry-run
Casi d'Uso Comuni¶
Backup Giornalieri:
- Backup datati per mantenere versioni multiple
- Utile per recuperare versioni precedenti
Sincronizzazione Server:
- Mantenere aggiornarti siti web
- Sincronizzare configurazioni
Backup Incrementali:
- Risparmiare spazio e banda
- Velocizzare i backup successivi