`rsync` è un'utility a riga di comando per Linux incredibilmente potente e versatile per la sincronizzazione di file e directory. È lo strumento perfetto per creare script di backup, perché trasferisce solo le differenze tra la sorgente e la destinazione, rendendo i backup successivi al primo (incrementali) molto veloci.
Lo Script di Backup
Creiamo uno script che fa il backup di una cartella (`/home/utente/documenti`) su un disco esterno montato in `/mnt/backup`.
File: `backup.sh`
#!/bin/bash
# --- CONFIGURAZIONE ---
SORGENTE="/home/utente/documenti/"
DESTINAZIONE="/mnt/backup/documenti_backup/"
FILE_LOG="/var/log/backup.log"
# --- ESECUZIONE ---
echo "Backup iniziato il $(date)" >> "$FILE_LOG"
rsync -avh --delete "$SORGENTE" "$DESTINAZIONE" >> "$FILE_LOG" 2>&1
echo "Backup terminato con successo il $(date)" >> "$FILE_LOG"
echo "------------------------------------" >> "$FILE_LOG"
exit 0
Analisi dello Script
- `#!/bin/bash`: Lo shebang.
- `SORGENTE` e `DESTINAZIONE`: Usiamo delle variabili per rendere lo script facile da modificare. Nota la barra `/` alla fine di `SORGENTE`: dice a `rsync` di copiare il contenuto della cartella, non la cartella stessa.
- Comando `rsync`:
- `-a` (archive): È una scorciatoia per un insieme di opzioni che preservano permessi, proprietari e timestamp.
- `-v` (verbose): Mostra i file che vengono trasferiti.
- `-h` (human-readable): Mostra le dimensioni in un formato leggibile (KB, MB).
- `--delete`: Opzione potentissima. Se un file viene cancellato dalla sorgente, `rsync` lo cancellerà anche dalla destinazione, mantenendo le due cartelle perfettamente sincronizzate.
- `>> "$FILE_LOG" 2>&1`: Questa parte reindirizza sia l'output standard (`stdout`) che l'output di errore (`stderr`) e li accoda (`>>`) al nostro file di log.
Automatizzare con `cron`
Per eseguire questo backup automaticamente ogni notte, puoi aggiungere una riga al tuo `crontab`:
0 3 * * * /percorso/al/tuo/backup.sh
Questo script può essere facilmente adattato per fare backup su un server remoto, usando `rsync` su SSH.
Hai bisogno di una soluzione su misura?
Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.
Richiedi una consulenza