Proyecto

General

Perfil

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 - 
 ``` 

Atrás