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"
fiExplicació 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"
fiExplicació 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"
fiSolució 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
