Aggiunto script del backup nel file volumebk.md
This commit is contained in:
parent
b03e8984d0
commit
be9e705ef0
|
@ -102,6 +102,72 @@ Permissions Size User Date Modified Name
|
||||||
.rw-r--r-- 259 root 25 Feb 15:42 snikket-data_bk_2024-02-25.tar.gz
|
.rw-r--r-- 259 root 25 Feb 15:42 snikket-data_bk_2024-02-25.tar.gz
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Script di esempio
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
TOPIC="nomedeltopic"
|
||||||
|
SERVER="ntfy.server.net"
|
||||||
|
BACKUP_DIR="/etc/snikket/backup"
|
||||||
|
CONTAINER_LIST=$(docker container ls -q)
|
||||||
|
# Lista di immagini con il tag 'stable'
|
||||||
|
IMAGE_LIST=$(docker images --filter "reference=snikket/*:stable" -q)
|
||||||
|
VOLUME_LIST=$(docker volume ls --format '{{.Name}}')
|
||||||
|
|
||||||
|
# Funzioni per inviare notifiche
|
||||||
|
send_success_notification() {
|
||||||
|
curl -H "X-Tags: tada" -H "Attach: https://yanbin.blog/wp-content/uploads/2020/03/docker-2.png" -d "Backup volume $VOLUME_NAME OK! :)" $SERVER/$TOPIC
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funzione per inviare notifica di errore
|
||||||
|
send_error_notification() {
|
||||||
|
curl -H "X-Tags: skull" -d "Backup volume $VOLUME_NAME ERROR!" $SERVER/$TOPIC
|
||||||
|
}
|
||||||
|
|
||||||
|
notify_backup_removed() {
|
||||||
|
curl -H "X-Tags: warning" -d "Some backups have been deleted" $SERVER/$TOPIC
|
||||||
|
}
|
||||||
|
|
||||||
|
# Rimozione dei backup piu' vecchi di 7 giorni
|
||||||
|
remove_old_backups() {
|
||||||
|
if [ find $BACKUP_DIR -type f -name "*.tar.gz" -mtime +7 -exec rm {} \; ]; then
|
||||||
|
notify_backup_removed
|
||||||
|
else
|
||||||
|
echo "Nessun backup eliminato!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
### BACKUP ####
|
||||||
|
|
||||||
|
cd $BACKUP_DIR
|
||||||
|
|
||||||
|
# Commit per ogni container nella lista
|
||||||
|
for CONTAINER_ID in $CONTAINER_LIST; do
|
||||||
|
docker container commit $CONTAINER_ID || send_error_notification
|
||||||
|
done
|
||||||
|
|
||||||
|
# tr (translate or delete characters):
|
||||||
|
# tr: un comando che serve per tradurre o eliminare caratteri in un flusso di dati.
|
||||||
|
# tr '/' '-' traduce ogni carattere '/' in '-'
|
||||||
|
|
||||||
|
# Backup delle immagini
|
||||||
|
for IMAGE_ID in $IMAGE_LIST; do
|
||||||
|
# Ottieni il nome dell'immagine con il tag
|
||||||
|
IMAGE_NAME_WITH_TAG=$(docker inspect --format='{{.RepoTags}}' $IMAGE_ID | tr -d '[] ')
|
||||||
|
|
||||||
|
docker image save -o $(echo $IMAGE_NAME_WITH_TAG | cut -d '/' -f 2 | tr ':' '-')_$(date +%F)_IMAGE.tar.gz $IMAGE_NAME_WITH_TAG || send_error_notification
|
||||||
|
done
|
||||||
|
|
||||||
|
# Backup dei volumi
|
||||||
|
for VOLUME_NAME in $VOLUME_LIST; do
|
||||||
|
docker run --rm --mount source=$VOLUME_NAME,target=/$VOLUME_NAME -v $(pwd):/backup busybox tar -czvf /backup/$VOLUME_NAME\_bk_$(date +%F)_VOLUME.tar.gz /$VOLUME_NAME && send_success_notification || send_error_notification
|
||||||
|
done
|
||||||
|
|
||||||
|
# Rimozione dei backup piu' vecchi di 7 giorni
|
||||||
|
remove_old_backups
|
||||||
|
```
|
||||||
|
|
||||||
## Collegamenti
|
## Collegamenti
|
||||||
|
|
||||||
- [https://docs.docker.com/desktop/backup-and-restore/](https://docs.docker.com/desktop/backup-and-restore/)
|
- [https://docs.docker.com/desktop/backup-and-restore/](https://docs.docker.com/desktop/backup-and-restore/)
|
||||||
|
|
Loading…
Reference in New Issue