Acciones
Tareas #15
abiertaSecurity Copies
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