1. Perché il backup è importante?
Oggi parliamo di uno dei compiti più importanti per chi lavora nel mondo dell'IT e della programmazione: fare il backup dei dati. Se hai mai perso dati importanti a causa di un guasto al disco o errori, sai quanto può essere critico. E se non ti è mai successo — siamo qui per evitarlo!
Immagina: hai lavorato su un progetto per mesi e poi, un bel giorno, il tuo disco rigido decide di scioperare. Sì, è frustrante quanto dimenticare un punto e virgola alla fine di una query SQL, ma mille volte peggio. I sistemi possono essere instabili, le persone fanno errori e i file possono perdersi. Avere un backup ti permette di essere pronto per affrontare questi imprevisti.
Su Linux ci sono diversi strumenti potenti per il backup. Oggi ci concentreremo su due di questi: rsync e scp.
2. Comando rsync: strumento veloce e intelligente per copiare i dati
rsync è uno dei tool più popolari per copiare e sincronizzare i dati. La sua forza principale sta nella velocità e nell'efficienza. Invece di copiare tutto, rsync copia solo i file modificati. Questo lo rende perfetto per backup regolari di grandi volumi di dati.
Sintassi di rsync
Ecco il formato base del comando:
rsync [opzioni] sorgente destinazione
Dove:
sorgente— il percorso del file o della cartella che vuoi copiare.destinazione— dove vuoi trasferire questi dati.
Principali opzioni e le loro funzioni
Ecco alcune delle opzioni più utilizzate:
-a(archive): include la copia di tutti i metadata (permessi, timestamp, ecc.).-v(verbose): mostra output dettagliato per vedere cosa sta succedendo.--progress: mostra il progresso della copia (super utile quando trasferisci file grandi).--delete: elimina i file dal lato di destinazione che non esistono più sul lato sorgente. Utile per una sincronizzazione completa.-z(compress): comprime i dati prima del trasferimento, accelerando il processo (particolarmente importante per operazioni di rete).
Esempio: copia di dati locali
Creiamo una directory /backup per memorizzare i backup.
mkdir /backup
Copiamo tutto il contenuto della directory /home in /backup:
rsync -av /home /backup
Analizziamo questo esempio:
-aconserva la struttura e i permessi dei file.-vfornisce informazioni sul progresso del processo.
Se esegui nuovamente il comando, copierà solo i file modificati o nuovi.
Esempio: backup remoto
Ora supponiamo che tu voglia inviare un backup a un server remoto. Per questo, rsync supporta l'uso di SSH.
rsync -av /backup user@remote_server:/remote_backup
Dove:
user— il nome utente sul server remoto.remote_server— l'indirizzo del server remoto (ad esempio, l'indirizzo IP o il nome del dominio)./remote_backup— percorso sul server dove vuoi memorizzare i dati.
Se hai una chiave SSH per l'autenticazione, il trasferimento sarà ancora più semplice (e sicuro).
3. Comando scp: semplice ed efficace
scp (Secure Copy Protocol) — è uno strumento per copiare file tra macchine locali e remote. È un po’ più semplice di rsync ed è adatto nei casi in cui non è necessaria una sincronizzazione completa.
Sintassi di scp
Ecco il formato base del comando:
scp [opzioni] origine destinazione
Dove:
origine— il percorso al file che vuoi copiare.destinazione— l'indirizzo dove consegnarlo.
Principali opzioni e le loro funzioni
Alcune opzioni utili:
-r: copia ricorsiva per le cartelle.-C: comprime i file prima della trasmissione.-P: specifica la porta SSH se è diversa da quella standard (22).
Esempio: copia di un file su una macchina remota
Vuoi trasferire file dal tuo computer locale a un server. Supponiamo che il file si chiami document.txt.
scp document.txt user@remote_server:/remote_folder
Se il file si trova nella cartella /home/user/documents, il comando sarà il seguente:
scp /home/user/documents/document.txt user@remote_server:/remote_folder
Ora il file sarà disponibile sulla macchina remota nella cartella /remote_folder.
Esempio: copia di file dal server alla macchina locale
Il processo funziona in senso opposto:
scp user@remote_server:/remote_folder/document.txt /home/user/documents
In questo caso, il file document.txt verrà trasferito nella tua cartella locale.
4. Differenze tra rsync e scp
Anche se entrambi i comandi permettono di copiare i file, hanno le loro particolarità.
| Caratteristica | rsync | scp |
|---|---|---|
| Velocità | Solo dati modificati, più veloce per grandi volumi | Copia tutto, anche se il file non è cambiato |
| Sincronizzazione | Supporto completo per la sincronizzazione | Non supporta la sincronizzazione |
| Compressione dati | Disponibile con -z |
Disponibile con -C |
| Semplicità d'uso | Più complesso da configurare | Interfaccia semplice |
Quindi, se hai solo bisogno di trasferire velocemente un file — usa scp. Se si tratta di sincronizzazioni regolari e grandi volumi di dati — decisamente rsync.
5. Esempio pratico: configurazione del backup
Ecco un compito pratico: vuoi configurare l'intero processo di backup del tuo progetto su un server remoto.
Supponiamo che i file del tuo progetto siano memorizzati nella cartella
/home/user/project. Vuoi che siano salvati sul serverbackup.server.comnella cartella/backups/project.Per rendere la copia più veloce, utilizzeremo
rsync.
Configurazione dello script per il backup
Crea un file backup.sh:
#!/bin/bash
SOURCE="/home/user/project"
DESTINATION="user@backup.server.com:/backups/project"
# Eseguiamo il backup utilizzando rsync
rsync -av --delete "$SOURCE" "$DESTINATION"
# Mostriamo un messaggio alla fine
echo "Backup completato!"
Rendi il file eseguibile:
chmod +x backup.sh
Ora puoi eseguire manualmente questo script:
./backup.sh
Oppure aggiungerlo a cron per eseguirlo automaticamente (parleremo di cron più avanti nel corso).
6. Errori comuni e come evitarli
Percorsi errati nella linea di comando. Se indichi un percorso sbagliato ai file,
rsyncoscpnon copieranno nulla. Usa i comandilsopwdper verificare che i percorsi siano corretti.Mancanza della chiave di autorizzazione. Se stai usando SSH e non hai impostato una chiave, ti sarà continuamente richiesto di inserire la password. Configura le chiavi SSH per semplificare il processo.
Interruzione del backup. Se la rete è instabile,
rsynccompleterà comunque il trasferimento al prossimo avvio. Tuttavia, conscp, dovrai ricominciare da capo.
Con rsync e scp potrai copiare e sincronizzare i tuoi dati in modo sicuro sia sul computer locale che su server remoti. Questi strumenti sono i tuoi compagni affidabili quando si tratta di proteggere file importanti.
GO TO FULL VERSION