#!/usr/bin/env bash set -euo pipefail # Incremental backup of data files to Google Drive using rclone. # Copies only new/changed files and never deletes remote files. # # Usage: # scripts/ops/netgescon-data-backup-incremental-gdrive.sh \ # --source /var/www/netgescon/storage/app/amministratori \ # --remote gdrive:NetGesconBackups/prod/data-incremental SOURCE_DIR="/var/www/netgescon/storage/app/amministratori" REMOTE_PATH="gdrive:NetGesconBackups/prod/data-incremental" while [[ $# -gt 0 ]]; do case "$1" in --source) SOURCE_DIR="$2" shift 2 ;; --remote) REMOTE_PATH="$2" shift 2 ;; *) echo "Unknown option: $1" echo "Usage: $0 [--source ] [--remote ]" exit 1 ;; esac done if ! command -v rclone >/dev/null 2>&1; then echo "Error: rclone not installed." exit 1 fi if [[ ! -d "$SOURCE_DIR" ]]; then echo "Error: source directory not found: $SOURCE_DIR" exit 1 fi rclone copy "$SOURCE_DIR" "$REMOTE_PATH" \ --update \ --checksum \ --create-empty-src-dirs \ --progress echo "Incremental data backup completed." echo "SOURCE=$SOURCE_DIR" echo "REMOTE=$REMOTE_PATH"