#!/bin/bash # ============================================================================== # SCRIPT DI MIRRORING DELLA FLOTTA AUTONOMA SU PCLOUD # Versione: 1.3 - Robusta con Esclusioni Standard # ============================================================================== # Ferma lo script se un comando fallisce set -euo pipefail # --- CONFIGURAZIONE --- # Nome del remote configurato in rclone REMOTE_NAME="pcloud_backup" # Cartella di destinazione su pCloud (dove verrĂ  creato il mirror) REMOTE_PATH="Flotta-Mirror/ssd" # Cartella sorgente da sincronizzare (l'intero SSD) SOURCE_PATH="/mnt/ssd/" # File di log SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" LOG_FILE="$SCRIPT_DIR/logs/pcloud_mirror.log" # -------------------- # Assicura che la cartella dei log esista mkdir -p "$(dirname "$LOG_FILE")" # --- FUNZIONI --- log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE" } # ---------------- # --- ESECUZIONE --- log "--- Inizio del processo di mirroring su pCloud ---" log "Sorgente: $SOURCE_PATH" log "Destinazione: $REMOTE_NAME:$REMOTE_PATH" log "Escludendo percorsi: /.Trash-1000/, /lost+found/, /config/nextcloud/, /config/jellyfin/, /config/paperless/" # Il comando rclone per il mirroring puro, con esclusioni e opzioni di robustezza: rclone sync "$SOURCE_PATH" "$REMOTE_NAME:$REMOTE_PATH" \ --exclude "/.Trash-1000/**" \ --exclude "/lost+found/**" \ --exclude "/config/nextcloud/**" \ --exclude "/config/jellyfin/**" \ --exclude "/config/paperless/**" \ --copy-links \ --checkers=4 \ --transfers=2 \ --low-level-retries=10 \ --retries=10 \ --log-file="$LOG_FILE" \ --progress log "--- Processo di mirroring completato con successo ---"