From be564cfb95c28f50e7f21edc95081768ff667805 Mon Sep 17 00:00:00 2001 From: Jurius Date: Sun, 10 Mar 2024 01:16:00 +0000 Subject: [PATCH] Add backup scripts --- backup.sh | 11 +++ restore.sh | 17 +++++ vackup | 191 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 219 insertions(+) create mode 100755 backup.sh create mode 100755 restore.sh create mode 100755 vackup diff --git a/backup.sh b/backup.sh new file mode 100755 index 0000000..3fdf93c --- /dev/null +++ b/backup.sh @@ -0,0 +1,11 @@ +#!/bin/bash +_now=$(date +"%Y-%m-%d") + +compose_project="mailuwuemail" +compose_volumes=( "mail_data" "mail_state" "roundcube_sqlite" ) + +for volume in "${compose_volumes[@]}" +do + volume_name="${compose_project}_${volume}" + ./vackup export "${volume_name}" "backup_${_now}.${volume_name}.tar.gz" +done diff --git a/restore.sh b/restore.sh new file mode 100755 index 0000000..24f8c96 --- /dev/null +++ b/restore.sh @@ -0,0 +1,17 @@ +#!/bin/bash +_date="$1" + +if [ -z "$_date" ] +then + echo "Error: no date given." + exit 1 +fi + +compose_project="mailuwuemail" +compose_volumes=( "mail_data" "mail_state" "roundcube_sqlite" ) + +for volume in "${compose_volumes[@]}" +do + volume_name="${compose_project}_${volume}" + ./vackup import "backup_${_date}.${volume_name}.tar.gz" "${volume_name}" +done diff --git a/vackup b/vackup new file mode 100755 index 0000000..34f4616 --- /dev/null +++ b/vackup @@ -0,0 +1,191 @@ +#!/bin/bash +## FROM: https://github.com/BretFisher/docker-vackup +## UNLICENSED BY: BretFisher +# Docker Volume File Backup and Restore Tool +# Easily tar up a volume on a local (or remote) engine +# Inspired by CLIP from Lukasz Lach + +set -Eeo pipefail + +handle_error() { + exit_code=$? + if [ -n "${VACKUP_FAILURE_SCRIPT}" ]; then + /bin/bash "${VACKUP_FAILURE_SCRIPT}" "$1" $exit_code + fi + exit $exit_code +} + +trap 'handle_error $LINENO' ERR + +usage() { +cat <