Tareas #15
Actualizado por Pablo de la Torre Jamardo hace 11 meses
``` shell
chmod +x backup.sh restore.sh
```
backup.sh
``` shell
#!/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
``` shell
#!/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
# Eliminar copias de seguridad antiguas (más de 7 días)
find $BACKUP_DIR -type f -mtime +7 -name '*.tar' -exec rm {} \;
echo "Copia de seguridad completada en $BACKUP_DIR."
```
Ejecución periódica todos los días a las 7 de la mañana:
``` shell
(crontab -l ; echo "0 7 * * * $HOME/docker/backup.sh") | crontab -
```