aboutsummaryrefslogtreecommitdiff
path: root/src/infrastructure/scripts/backup.sh
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-08-18 18:26:58 -0300
committerEuAndreh <eu@euandre.org>2024-08-18 18:26:58 -0300
commit5cabb11e012365096bea22bbb5014dd031537c42 (patch)
tree6b5b108fe996f6ae54f32b2fbcdc065b71baac55 /src/infrastructure/scripts/backup.sh
parentsystem.scm: Use configuration from syskeep and upstream "packages" repository (diff)
downloadtoph-5cabb11e012365096bea22bbb5014dd031537c42.tar.gz
toph-5cabb11e012365096bea22bbb5014dd031537c42.tar.xz
rm -rf src/infrastructure/{ci,config,scripts}/
Diffstat (limited to 'src/infrastructure/scripts/backup.sh')
-rwxr-xr-xsrc/infrastructure/scripts/backup.sh149
1 files changed, 0 insertions, 149 deletions
diff --git a/src/infrastructure/scripts/backup.sh b/src/infrastructure/scripts/backup.sh
deleted file mode 100755
index bea63b2..0000000
--- a/src/infrastructure/scripts/backup.sh
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/bin/sh
-set -eu
-
-usage() {
- cat <<-'EOF'
- Usage:
- backup [-q] [-C COMMENT] [-x] [ARCHIVE_TAG]
- backup -h
- EOF
-}
-
-help() {
- cat <<-'EOF'
-
-
- Options:
- -q disable verbose mode, useful for batch sessions
- -C COMMENT the comment text to be attached to the archive
- -x enable checking the repository after creating the backup
- -h, --help show this message
-
- ARCHIVE_TAG the tag used to create the new
- backup (default: "manual")
-
-
- The repository is expected to have been create with:
-
- $ borg init -e repokey-blake2
-
- The following environment variables are expected to be exported:
-
- $BORG_PASSCOMMAND
- $BORG_REPO
- $BORG_REMOTE_PATH
-
- Password-less SSH access is required, usually done via adding
- /root/.ssh/id_rsa.pub to the ssh remote's
- $THE_REMOTE:.ssh/authorized_keys
-
- Root permission is also required.
-
-
- Examples:
-
- Run backup from cronjob:
-
- $ backup
-
-
- Run backup from cronjob:
-
- $ backup -q cronjob
-
-
- Create backup with a comment, a tag, and verbose mode active, and do
- verify the repository afterwards:
-
- $ backup -xC 'The backup has a comment'
- EOF
-}
-
-
-for flag in "$@"; do
- case "$flag" in
- --)
- break
- ;;
- --help)
- usage
- help
- exit
- ;;
- *)
- ;;
- esac
-done
-
-VERBOSE_FLAGS='--verbose --progress'
-COMMENT=' '
-CHECK=false
-while getopts 'qC:xh' flag; do
- case "$flag" in
- q)
- VERBOSE_FLAGS=''
- ;;
- C)
- COMMENT="$OPTARG"
- ;;
- x)
- CHECK=true
- ;;
- h)
- usage
- help
- exit
- ;;
- *)
- usage >&2
- exit 2
- ;;
- esac
-done
-shift $((OPTIND - 1))
-
-ARCHIVE_TAG="${1:-manual}"
-
-
-if [ "$(id -un)" != 'root' ]; then
- printf 'This script must be run as root.\n\n' >&2
- usage >&2
- exit 2
-fi
-
-
-run() {
- STATUS=0
- set -x
- # shellcheck disable=2086
- sudo -i borg create \
- $VERBOSE_FLAGS \
- --comment "$COMMENT" \
- --stats \
- --compression lzma,9 \
- "$BORG_REPO::$(hostname)-{now}-$ARCHIVE_TAG" \
- /mnt/production/ \
- /root/ \
- /home/ \
- /etc/ \
- /var/ \
- /opt/ \
- /srv/ || STATUS=$?
- set +x
-
- if [ "$STATUS" = 0 ]; then
- return 0
- elif [ "$STATUS" = 1 ]; then
- printf 'WARNING, but no ERROR.\n' >&2
- return 0
- else
- return "$STATUS"
- fi
-}
-
-run
-
-if [ "$CHECK" = true ]; then
- # shellcheck disable=2086
- sudo -i borg check $VERBOSE_FLAGS --verify-data "$BORG_REPO"
-fi