Effettuare backup regolari dei propri dati è una pratica essenziale per garantire la sicurezza e l'integrità delle informazioni. In questo articolo, vedremo come creare uno script Bash che esegue il backup di una directory specifica e gestisce la rotazione dei vecchi backup, mantenendo un numero definito di backup recenti e rimuovendo quelli più vecchi.
Apri il tuo editor di testo preferito e crea un nuovo file chiamato backup.sh
. Inizia lo script aggiungendo la shebang e alcuni commenti per descrivere il funzionamento dello script:
#!/bin/bash
# Script di Backup con Rotazione dei Vecchi Backup
# Questo script effettua il backup di una directory specifica e gestisce la rotazione dei backup vecchi.
Definisci le variabili principali che verranno utilizzate nello script, come la directory di origine, la directory di destinazione per i backup e il numero massimo di backup da mantenere:
# Directory di origine da eseguire il backup
SOURCE_DIR="/path/to/source_directory"
# Directory di destinazione per i backup
BACKUP_DIR="/path/to/backup_directory"
# Numero massimo di backup da mantenere
MAX_BACKUPS=5
Aggiungi il codice per creare un nuovo backup. Utilizzeremo il comando tar
per comprimere la directory di origine e generare un file di backup con un timestamp univoco:
# Creazione del timestamp per il nome del backup
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
# Nome del file di backup
BACKUP_FILE="$BACKUP_DIR/backup-$TIMESTAMP.tar.gz"
# Creazione del backup
tar -czf "$BACKUP_FILE" "$SOURCE_DIR"
echo "Backup creato: $BACKUP_FILE"
Salva il file e chiudilo. Rendi eseguibile lo script con il comando Ora puoi eseguire lo script manualmente o programmarne l'esecuzione automatica utilizzando Per eseguire lo script automaticamente a intervalli regolari, aggiungilo al crontab. Ad esempio, per eseguire il backup ogni giorno alle 2 del mattino, modifica il crontab con il comando Abbiamo visto come creare uno script Bash per effettuare il backup di una directory e gestire la rotazione dei vecchi backup. Questo script può essere personalizzato ulteriormente per adattarsi alle tue esigenze specifiche, ad esempio aggiungendo notifiche via email o supporto per il backup di più directory. La gestione dei backup è un aspetto cruciale della sicurezza dei dati e automazione come questa può fare una grande differenza nella prevenzione della perdita di dati.
# Controllo del numero di backup esistenti
BACKUP_COUNT=$(ls -1 $BACKUP_DIR/backup-*.tar.gz 2>/dev/null | wc -l)
# Rimozione dei backup più vecchi se il numero massimo è superato
if [ $BACKUP_COUNT -gt $MAX_BACKUPS ]; then
DELETE_COUNT=$(expr $BACKUP_COUNT - $MAX_BACKUPS)
echo "Rimuovendo i $DELETE_COUNT backup più vecchi..."
# Ordinamento e rimozione dei backup più vecchi
ls -1tr $BACKUP_DIR/backup-*.tar.gz | head -n $DELETE_COUNT | xargs rm -f
echo "Backup vecchi rimossi."
fi
chmod
:
chmod +x backup.sh
cron
. Per eseguire lo script manualmente, utilizza il seguente comando:
./backup.sh
crontab -e
e aggiungi la seguente riga:
0 2 * * * /path/to/backup.sh
Conclusione