Files
zorruno-backupdockerscript/methods/20-rclone.sh
T

25 lines
988 B
Bash
Executable File

#!/usr/bin/env bash
# Copy the local backup tree to an rclone destination.
set -Eeuo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"
. "$SCRIPT_DIR/../lib/common.sh"
DRY_RUN=0; FORCE=0
while [[ $# -gt 0 ]]; do
case "$1" in
--dry-run) DRY_RUN=1 ;; --force) FORCE=1 ;;
-h|--help) echo "Usage: ${0##*/} [--dry-run] [--force]"; exit 0 ;;
*) die "Unknown option: $1" 2 ;;
esac
shift
done
if ! is_true "$RCLONE_ENABLED" && (( FORCE == 0 )); then log SKIP "rclone method is disabled"; exit 0; fi
[[ -n "$RCLONE_REMOTE" ]] || die "RCLONE_REMOTE is not configured"
require_command rclone
[[ -d "$BACKUP_ROOT" ]] || die "Backup root not found: $BACKUP_ROOT"
read -r -a extra_args <<<"$RCLONE_EXTRA_ARGS"
args=(copy "$BACKUP_ROOT" "${RCLONE_REMOTE%/}/$BACKUP_HOSTNAME" "${extra_args[@]}")
(( DRY_RUN )) && args+=(--dry-run)
log INFO "Copying backups to ${RCLONE_REMOTE%/}/$BACKUP_HOSTNAME"
rclone "${args[@]}"
log DONE "rclone backup method completed"