Compare commits
2
Commits
09cbb11e86
...
69d5dc162b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
69d5dc162b | ||
|
|
5a1320c22a |
+28
-4
@@ -3,8 +3,8 @@
|
|||||||
### Docker Stack Backup Script
|
### Docker Stack Backup Script
|
||||||
### Created by Charlie Silverman - ackitsme3@gmail.com
|
### Created by Charlie Silverman - ackitsme3@gmail.com
|
||||||
###############################################################################
|
###############################################################################
|
||||||
### Version: 1.1.0
|
### Version: 1.1.3
|
||||||
### Updated: 2017-07-26
|
### Updated: 2027-08-05
|
||||||
### Purpose: Backs up all docker stacks in a given directory to Restic bucket
|
### Purpose: Backs up all docker stacks in a given directory to Restic bucket
|
||||||
###############################################################################
|
###############################################################################
|
||||||
### Requirements:
|
### Requirements:
|
||||||
@@ -22,6 +22,9 @@
|
|||||||
# Version History:
|
# Version History:
|
||||||
# 1.0.0 - Initial build
|
# 1.0.0 - Initial build
|
||||||
# 1.1.0 - Added exception list via text file
|
# 1.1.0 - Added exception list via text file
|
||||||
|
# 1.1.1 - Added snapshot size to log
|
||||||
|
# 1.1.2 - Added aggregate backup size to end of log
|
||||||
|
# 1.1.3 - Added GiB to total backup size information
|
||||||
|
|
||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
|
|
||||||
@@ -128,6 +131,8 @@ fi
|
|||||||
# Process Each Compose Project
|
# Process Each Compose Project
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
total_size=0
|
||||||
|
|
||||||
for compose_file in "${COMPOSE_FILES[@]}"; do
|
for compose_file in "${COMPOSE_FILES[@]}"; do
|
||||||
|
|
||||||
compose_dir="$(dirname "$compose_file")"
|
compose_dir="$(dirname "$compose_file")"
|
||||||
@@ -277,15 +282,33 @@ for compose_file in "${COMPOSE_FILES[@]}"; do
|
|||||||
--tag "${project_name}" \
|
--tag "${project_name}" \
|
||||||
--tag "${HOSTNAME_SHORT}"
|
--tag "${HOSTNAME_SHORT}"
|
||||||
|
|
||||||
|
###################################################
|
||||||
|
# Get backup size
|
||||||
|
###################################################
|
||||||
|
lastsnap=`restic ls latest`
|
||||||
|
lastsnapid=$(echo "$lastsnap" | awk '{print $2}')
|
||||||
|
snapdata=`restic snapshots $lastsnapid`
|
||||||
|
snapnum=$(echo $snapdata | awk '{print $14}')
|
||||||
|
snapsu=$(echo $snapdata | awk '{print $15}')
|
||||||
|
case "$snapsu" in
|
||||||
|
"TiB")
|
||||||
|
snapnum=$(echo "scale=2;$snapnum * 1024" | bc)
|
||||||
|
;;
|
||||||
|
"MiB")
|
||||||
|
snapnum=$(echo "scale=2;$snapnum / 1024" | bc)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
snapnum=$(printf "%.2f\n" "$snapnum")
|
||||||
|
|
||||||
###################################################
|
###################################################
|
||||||
# Cleanup Local Backup
|
# Cleanup Local Backup
|
||||||
###################################################
|
###################################################
|
||||||
|
|
||||||
rm -rf "${STAGING_DIR}"
|
rm -rf "${STAGING_DIR}"
|
||||||
|
|
||||||
log "Project complete: ${project_name}"
|
log "Project complete: ${project_name} ${snapnum} GiB"
|
||||||
log ""
|
log ""
|
||||||
|
total_size=$(bc <<< "$total_size + $snapnum")
|
||||||
done
|
done
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -301,3 +324,4 @@ restic forget \
|
|||||||
--prune
|
--prune
|
||||||
|
|
||||||
log "All compose projects backed up successfully."
|
log "All compose projects backed up successfully."
|
||||||
|
log "Total Backup Size: $total_size GiB"
|
||||||
Reference in new issue
Block a user