This repository has been archived on 2023-02-05. You can view files and clone it, but cannot push or open issues or pull requests.
loki/b2-backup.sh

71 lines
2.3 KiB
Bash
Raw Normal View History

#!/bin/bash
set -ue
2019-12-14 16:51:01 +01:00
2019-12-14 23:15:20 +01:00
CYAN='\033[01;36m'
NC='\033[00m'
2019-12-16 08:30:36 +01:00
if [ ! -t 1 ]; then
2019-12-14 23:15:20 +01:00
CYAN=''
NC=''
fi
SCRIPT=$(readlink -f $0)
DIRNAME=$(dirname $SCRIPT)
# -----------------------------------------------------------------------------
# Import all account and GPG variables.
# -----------------------------------------------------------------------------
2019-12-14 16:51:01 +01:00
source ./b2.cred
export PASSPHRASE=${GPG_PASSPHRASE}
2019-12-14 16:51:01 +01:00
2019-12-14 23:15:20 +01:00
# -----------------------------------------------------------------------------
# Local directory to backup.
# -----------------------------------------------------------------------------
2019-12-14 16:51:01 +01:00
LOCAL_DIR="/media/usb0/backup"
2019-12-14 23:15:20 +01:00
# -----------------------------------------------------------------------------
# Remove files older than 30 days.
# -----------------------------------------------------------------------------
echo -e "${CYAN}[${SCRIPT}] Remove files older than 30 days ${NC}"
2019-12-14 23:04:28 +01:00
duplicity remove-older-than 30D --force \
--encrypt-sign-key $GPG_KEY \
b2://${B2_ACCOUNT}:${B2_KEY}@${B2_BUCKET}
2019-12-14 23:15:20 +01:00
# -----------------------------------------------------------------------------
# Perform a full backup.
# -----------------------------------------------------------------------------
echo -e "${CYAN}[${SCRIPT}] Perform a full backup ${NC}"
2019-12-14 16:51:01 +01:00
duplicity full \
--encrypt-sign-key $GPG_KEY \
${LOCAL_DIR} b2://${B2_ACCOUNT}:${B2_KEY}@${B2_BUCKET}
2019-12-14 23:15:20 +01:00
# -----------------------------------------------------------------------------
# Clean up failures.
# -----------------------------------------------------------------------------
echo -e "${CYAN}[${SCRIPT}] Clean up failures ${NC}"
2019-12-14 16:51:01 +01:00
duplicity cleanup --force \
--encrypt-sign-key $GPG_KEY \
b2://${B2_ACCOUNT}:${B2_KEY}@${B2_BUCKET}
2019-12-14 23:15:20 +01:00
# -----------------------------------------------------------------------------
# Show collection status.
# -----------------------------------------------------------------------------
echo -e "${CYAN}[${SCRIPT}] Show collection status ${NC}"
2019-12-14 16:51:01 +01:00
duplicity collection-status \
--encrypt-sign-key $GPG_KEY \
b2://${B2_ACCOUNT}:${B2_KEY}@${B2_BUCKET}
2019-12-14 23:15:20 +01:00
# -----------------------------------------------------------------------------
# Unset the GPG passphrase.
# -----------------------------------------------------------------------------
unset PASSPHRASE