En aquest projecte, crearem un sistema de còpia de seguretat automatitzat utilitzant Bash. Aquest sistema permetrà fer còpies de seguretat de fitxers i directoris importants de manera regular i automàtica, assegurant que les dades estiguin protegides contra pèrdues.

Objectius del Projecte

  1. Entendre la importància de les còpies de seguretat.
  2. Aprendre a utilitzar comandes de Bash per copiar fitxers i directoris.
  3. Configurar un script per executar-se automàticament amb cron.
  4. Implementar notificacions per assegurar que les còpies de seguretat s'han realitzat correctament.

Passos del Projecte

  1. Planificació de la Còpia de Seguretat

Abans de començar a escriure el script, és important planificar què es vol copiar i on es vol emmagatzemar la còpia de seguretat.

  • Directoris a copiar: /home/usuari/documents, /home/usuari/pictures
  • Destinació de la còpia de seguretat: /mnt/backup

  1. Crear l'Script de Còpia de Seguretat

2.1. Estructura Bàsica de l'Script

#!/bin/bash

# Directori de destinació de la còpia de seguretat
DESTINATION="/mnt/backup"

# Data actual
DATE=$(date +%Y-%m-%d)

# Crear un directori amb la data actual
BACKUP_DIR="$DESTINATION/backup-$DATE"
mkdir -p "$BACKUP_DIR"

# Directoris a copiar
DIRECTORIES=(
    "/home/usuari/documents"
    "/home/usuari/pictures"
)

# Funció per copiar els directoris
backup() {
    for DIR in "${DIRECTORIES[@]}"; do
        cp -r "$DIR" "$BACKUP_DIR"
    done
}

# Executar la funció de còpia de seguretat
backup

# Notificació de finalització
echo "Còpia de seguretat completada el $DATE" | mail -s "Còpia de Seguretat" [email protected]

2.2. Explicació del Codi

  • DESTINATION: Defineix el directori on es guardaran les còpies de seguretat.
  • DATE: Obté la data actual en format YYYY-MM-DD.
  • BACKUP_DIR: Crea un directori nou dins de DESTINATION amb la data actual.
  • DIRECTORIES: Llista dels directoris que es copiaran.
  • backup(): Funció que recorre la llista de directoris i els copia al directori de còpia de seguretat.
  • mail: Envia un correu electrònic de notificació quan la còpia de seguretat s'ha completat.

  1. Automatitzar l'Script amb cron

3.1. Editar el Crontab

Per automatitzar l'execució de l'script, utilitzarem cron. Editem el crontab amb la comanda:

crontab -e

3.2. Afegir una Entrada al Crontab

Afegim una entrada per executar l'script cada dia a les 2:00 AM:

0 2 * * * /path/to/backup-script.sh

  1. Provar l'Script

És important provar l'script manualment abans de confiar en l'automatització per assegurar-se que funciona correctament.

bash /path/to/backup-script.sh

  1. Millores i Optimitzacions

5.1. Comprimir les Còpies de Seguretat

Per estalviar espai, podem comprimir les còpies de seguretat utilitzant tar:

tar -czf "$BACKUP_DIR.tar.gz" -C "$BACKUP_DIR" .
rm -rf "$BACKUP_DIR"

5.2. Gestió d'Errors

Afegir gestió d'errors per assegurar que l'script no falla silenciosament:

backup() {
    for DIR in "${DIRECTORIES[@]}"; do
        if cp -r "$DIR" "$BACKUP_DIR"; then
            echo "Còpia de $DIR completada."
        else
            echo "Error copiant $DIR." | mail -s "Error de Còpia de Seguretat" [email protected]
        fi
    done
}

  1. Resum

En aquest projecte, hem creat un sistema de còpia de seguretat automatitzat utilitzant Bash. Hem après a planificar la còpia de seguretat, escriure un script bàsic, automatitzar-lo amb cron, i implementar millores com la compressió i la gestió d'errors. Aquest sistema assegura que les dades importants estiguin protegides de manera regular i automàtica.

© Copyright 2024. Tots els drets reservats