Proyecto

General

Perfil

Acciones

Tareas #15

abierta

Security Copies

Añadido por Alex Muiños hace alrededor de 1 año. Actualizado hace 11 meses.

Estado:
En curso
Prioridad:
Normal
Fecha de inicio:
2024-10-07
Fecha fin:
% Realizado:

50%

Tiempo estimado:
Tiempo dedicado:

Descripción

chmod +x backup.sh restore.sh

backup.sh

#!/bin/bash

# Directorio de backup
BACKUP_DIR="$HOME/docker-backup"
mkdir -p $BACKUP_DIR

# Copia de seguridad de imágenes
for container in $(docker ps -q); do
  image_name=$(docker commit $container backup_image_$(date +%Y%m%d%H%M%S))
  docker save -o $BACKUP_DIR/${image_name}.tar $image_name
done

# Copia de seguridad de volúmenes
for volume in $(docker volume ls -q); do
  docker run --rm -v $volume:/volume -v $BACKUP_DIR:/backup ubuntu tar cvf /backup/${volume}_backup_$(date +%Y%m%d%H%M%S).tar /volume
done

echo "Copia de seguridad completada en $BACKUP_DIR."

restore.sh

#!/bin/bash

# Directorio de backup
BACKUP_DIR="$HOME/docker-backup"

# Restaurar imágenes de contenedores
for image in $BACKUP_DIR/*.tar; do
  echo "Restaurando imagen desde $image..."
  docker load -i $image
done

# Restaurar volúmenes
for volume_backup in $BACKUP_DIR/*_backup.tar; do
  volume_name=$(basename $volume_backup _backup.tar)
  echo "Restaurando volumen $volume_name desde $volume_backup..."
  docker volume create $volume_name
  docker run --rm -v $volume_name:/volume -v $BACKUP_DIR:/backup ubuntu tar xvf /backup/$(basename $volume_backup) -C /volume
done

echo "Restauración completada."

Ejecución periódica todos los días a las 7 de la mañana:

(crontab -l ; echo "0 7 * * * $HOME/docker/backup.sh") | crontab -
Acciones

Exportar a: Atom PDF