En aquest tema, aprendrem a crear scripts en Bash per automatitzar les tasques de còpia de seguretat i restauració de dades. Aquestes tasques són essencials per garantir la seguretat i la integritat de la informació en sistemes informàtics.
Objectius
- Entendre la importància de les còpies de seguretat.
- Aprendre a crear scripts per fer còpies de seguretat de fitxers i directoris.
- Aprendre a restaurar dades des de còpies de seguretat.
- Implementar estratègies de còpia de seguretat eficients.
Conceptes Clau
- Còpia de Seguretat (Backup): Procés de copiar dades per protegir-les en cas de pèrdua o dany.
- Restauració (Restore): Procés de recuperar dades des d'una còpia de seguretat.
- Incremental Backup: Còpia de seguretat que només inclou els fitxers que han canviat des de l'última còpia de seguretat.
- Full Backup: Còpia de seguretat completa de tots els fitxers i directoris especificats.
Estructura del Tema
- Introducció a les Còpies de Seguretat
- Creació d'un Script de Còpia de Seguretat
- Creació d'un Script de Restauració
- Estratègies de Còpia de Seguretat
- Exercicis Pràctics
- Introducció a les Còpies de Seguretat
Les còpies de seguretat són essencials per protegir les dades contra pèrdues accidentals, errors humans, fallades de maquinari o atacs maliciosos. Hi ha diverses estratègies de còpia de seguretat, com ara còpies completes, incrementals i diferencials.
- Creació d'un Script de Còpia de Seguretat
A continuació, crearem un script bàsic per fer una còpia de seguretat d'un directori especificat.
Exemple de Script de Còpia de Seguretat
#!/bin/bash # Directori a fer la còpia de seguretat SOURCE_DIR="/path/to/source" # Directori on es guardarà la còpia de seguretat BACKUP_DIR="/path/to/backup" # Nom del fitxer de còpia de seguretat amb data i hora BACKUP_FILE="$BACKUP_DIR/backup_$(date +%Y%m%d_%H%M%S).tar.gz" # Crear la còpia de seguretat tar -czf $BACKUP_FILE $SOURCE_DIR # Verificar si la còpia de seguretat s'ha creat correctament if [ $? -eq 0 ]; then echo "Còpia de seguretat creada correctament: $BACKUP_FILE" else echo "Error en crear la còpia de seguretat" fi
Explicació del Codi
SOURCE_DIR
: Directori que volem fer la còpia de seguretat.BACKUP_DIR
: Directori on es guardarà la còpia de seguretat.BACKUP_FILE
: Nom del fitxer de còpia de seguretat, incloent la data i l'hora per identificar-lo fàcilment.tar -czf
: Comanda per crear un arxiu comprimit en format tar.gz.if [ $? -eq 0 ]; then ... fi
: Verifica si la comanda anterior s'ha executat correctament.
- Creació d'un Script de Restauració
Ara crearem un script per restaurar les dades des d'una còpia de seguretat.
Exemple de Script de Restauració
#!/bin/bash # Fitxer de còpia de seguretat a restaurar BACKUP_FILE="/path/to/backup/backup_YYYYMMDD_HHMMSS.tar.gz" # Directori de destinació per restaurar les dades DEST_DIR="/path/to/destination" # Restaurar la còpia de seguretat tar -xzf $BACKUP_FILE -C $DEST_DIR # Verificar si la restauració s'ha completat correctament if [ $? -eq 0 ]; then echo "Restauració completada correctament a: $DEST_DIR" else echo "Error en restaurar la còpia de seguretat" fi
Explicació del Codi
BACKUP_FILE
: Fitxer de còpia de seguretat que volem restaurar.DEST_DIR
: Directori on es restauraran les dades.tar -xzf
: Comanda per extreure un arxiu comprimit en format tar.gz.if [ $? -eq 0 ]; then ... fi
: Verifica si la comanda anterior s'ha executat correctament.
- Estratègies de Còpia de Seguretat
Còpia de Seguretat Completa
- Avantatges: Senzilla i fàcil de restaurar.
- Desavantatges: Requereix més espai d'emmagatzematge i temps.
Còpia de Seguretat Incremental
- Avantatges: Estalvia espai i temps.
- Desavantatges: La restauració pot ser més complexa, ja que requereix múltiples còpies de seguretat.
Còpia de Seguretat Diferencial
- Avantatges: Compromís entre còpia completa i incremental.
- Desavantatges: Requereix més espai que la incremental però menys que la completa.
- Exercicis Pràctics
Exercici 1: Crear un Script de Còpia de Seguretat Incremental
Crea un script que faci còpies de seguretat incrementals dels fitxers modificats en les últimes 24 hores.
Exercici 2: Automatitzar la Còpia de Seguretat amb Cron
Configura una tasca cron per executar el teu script de còpia de seguretat cada dia a les 2:00 AM.
Solucions
Solució a l'Exercici 1
#!/bin/bash # Directori a fer la còpia de seguretat SOURCE_DIR="/path/to/source" # Directori on es guardarà la còpia de seguretat BACKUP_DIR="/path/to/backup" # Nom del fitxer de còpia de seguretat amb data i hora BACKUP_FILE="$BACKUP_DIR/backup_incremental_$(date +%Y%m%d_%H%M%S).tar.gz" # Crear la còpia de seguretat incremental find $SOURCE_DIR -type f -mtime -1 | tar -czf $BACKUP_FILE -T - # Verificar si la còpia de seguretat s'ha creat correctament if [ $? -eq 0 ]; then echo "Còpia de seguretat incremental creada correctament: $BACKUP_FILE" else echo "Error en crear la còpia de seguretat incremental" fi
Solució a l'Exercici 2
Edita el fitxer crontab amb crontab -e
i afegeix la següent línia:
Conclusió
En aquest tema, hem après a crear scripts de còpia de seguretat i restauració en Bash, així com a implementar estratègies de còpia de seguretat eficients. Aquestes habilitats són fonamentals per garantir la seguretat i la integritat de les dades en qualsevol sistema informàtic.
Curs de Programació en Bash
Mòdul 1: Introducció a Bash
- Què és Bash?
- Configuració del teu Entorn
- Navegació Bàsica per la Línia de Comandes
- Entenent la Shell
Mòdul 2: Comandes Bàsiques de Bash
- Operacions amb Fitxers i Directoris
- Comandes de Processament de Text
- Permisos i Propietat de Fitxers
- Redirecció i Piping
Mòdul 3: Conceptes Bàsics de Scripting
Mòdul 4: Scripting Intermedi
Mòdul 5: Tècniques Avançades de Scripting
- Operacions Avançades amb Fitxers
- Gestió de Processos
- Gestió d'Errors i Depuració
- Expressions Regulars
Mòdul 6: Treballant amb Eines Externes
Mòdul 7: Automatització i Programació
- Treballs Cron
- Automatització de Tasques
- Scripts de Còpia de Seguretat i Restauració
- Monitorització i Registre
Mòdul 8: Millors Pràctiques i Optimització
- Escriure Codi Llegible
- Optimització de Scripts en Bash
- Consideracions de Seguretat
- Control de Versions amb Git