From 858a966c946fa20485920f862417ea49c7ed3ba5 Mon Sep 17 00:00:00 2001 From: RealStickman Date: Fri, 21 May 2021 11:45:34 +0200 Subject: [PATCH] Add backup and restore script for evolution --- .../scripts/pieces/evolution-backup.sh | 36 ++++++++++++++++++ .../scripts/pieces/evolution-restore.sh | 38 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 arch-config/scripts/pieces/evolution-backup.sh create mode 100644 arch-config/scripts/pieces/evolution-restore.sh diff --git a/arch-config/scripts/pieces/evolution-backup.sh b/arch-config/scripts/pieces/evolution-backup.sh new file mode 100644 index 00000000..faed3588 --- /dev/null +++ b/arch-config/scripts/pieces/evolution-backup.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +set -euo pipefail + +# give password as argument +if [ $# -eq 1 ]; then + pass=$1 +elif [ $# -eq 0 ]; then + echo "Please provide a passphrase" + $(exit 1); echo "$?" +else + echo "Please only insert one argument" + $(exit 1); echo "$?" +fi + +# go to home dir +cd "$HOME" + +# get current date +currdate="$(date +%Y-%m-%d)" + +mkdir -p "$HOME/evolution-mail-backup" +mkdir -p "$HOME/evolution-mail-backup/.config" +mkdir -p "$HOME/evolution-mail-backup/.local" + +cp -r "$HOME/.config/evolution/" "$HOME/evolution-mail-backup/.config/" +cp -r "$HOME/.local/share/evolution/" "$HOME/evolution-mail-backup/.local/" + +tar -cv -I"zstd -19 -T0" -f evolution-mail-backup-${currdate}.tar.zst evolution-mail-backup/ + +rm -rf "$HOME/evolution-mail-backup" + +echo '$pass' | gpg -c --batch --yes --passphrase-fd 0 evolution-mail-backup-${currdate}.tar.zst + +rm evolution-mail-backup-${currdate}.tar.zst + +mv evolution-mail-backup-${currdate}.tar.zst.gpg "$HOME/Nextcloud/backups/" diff --git a/arch-config/scripts/pieces/evolution-restore.sh b/arch-config/scripts/pieces/evolution-restore.sh new file mode 100644 index 00000000..c27535ec --- /dev/null +++ b/arch-config/scripts/pieces/evolution-restore.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +set -euo pipefail + +# give password as argument +if [ $# -eq 1 ]; then + pass=$1 +elif [ $# -eq 0 ]; then + echo "Please provide a passphrase" + $(exit 1); echo "$?" +else + echo "Please only insert one argument" + $(exit 1); echo "$?" +fi + +# go to home dir +cd "$HOME" + +# find latest backup version +latestbackup="$(find "$HOME/Nextcloud/backups/" -name "evolution-mail-backup-*\.tar.zst.gpg" | sort | tail -1)" + +# decrypt backup +echo '$pass' | gpg --decrypt-file --batch --yes --passphrase-fd 0 "$latestbackup" + +# name of decrypted file +latestdecrypted="${latestbackup%.gpg}" + +# expand archive +tar -xvf "$latestdecrypted" + +# remove unencrypted archive +rm "$latestdecrypted" + +# copy configuration +cp -r "$HOME/evolution-mail-backup/.config/" "$HOME/" +cp -r "$HOME/evolution-mail-backup/.local/" "$HOME/" + +# remove folder +rm -rf "$HOME/evolution-mail-backup"