Files
rclone/rclone_Audio_sync.sh
2026-09-16 06:21:41 +00:00

125 lines
4.0 KiB
Bash

LOGBUCH="/media/Jotta.log"
QUELLE="/media/USB1/Bibliothek1"
# LOGGER="/bin/bash /root/logger.sh -f $LOGBUCH -l INFO -m "
LOGLEVEL="INFO"
MODUS="sync" # sync oder copy ACHTUNG: sync nur mit Backupdir!
DRY_LOG="sync.log"
JOTTAARCHIVDIR="jotta:/Archiv/ABS/$(date +%Y-%m-%d-%H)"
speichern() {
local quelle="$1"
local ziel="$2"
local logbuch="$3"
local archiv="$4"
local logger="/bin/bash /root/logger.sh -f $logbuch -l INFO -m"
$logger "Starte RCLONE-Sitzung SYNC"
$logger "$quelle -> $ziel"
echo "Prüfe Änderungen für $quelle..."
rm -f "$DRY_LOG"
# Dry-Run: Wir loggen im Detail-Modus (-v), um die genauen Dateiaktionen zu sehen
rclone sync "$quelle" "$ziel" --ignore-existing --size-only --log-file="$DRY_LOG" -v --dry-run
# Filtert nach dem exakten Dry-Run-Text für Löschungen von rclone
local loeschungen=$(grep -E "Skipped delete as --dry-run is set|Would delete" "$DRY_LOG")
if [ -n "$loeschungen" ]; then
echo "========================================================"
echo "⚠️ GLACIER-WARNUNG: Dateien würden im Ziel gelöscht werden!"
echo "========================================================"
echo "$loeschungen" | sed 's/.*NOTICE://' # Verschönert die Ausgabe im Terminal
echo "========================================================"
read -p "Möchten Sie diese Löschungen auf Scaleway/Jotta durchführen? (w = Weiter, Enter = Abbrechen): " weiter
if [ "$weiter" != "w" ]; then
echo "❌ Synchronisation abgebrochen. Keine Daten gelöscht."
$logger "Abgebrochen durch Nutzer wegen Löschwarnung."
echo
return 1
fi
else
echo "✅ Keine Löschungen notwendig. Führe Synchronisation aus..."
fi
# Tatsächlicher Sync-Lauf
if [ $archiv = "NEIN" ]
then
$logger "SYNC ohne Archivverzeichnis"
rclone sync -P "$quelle" "$ziel" --ignore-existing --size-only --log-file="$logbuch" --log-level=$LOGLEVEL
else
$logger "Archivverzeichnis: $archiv"
rclone sync -P "$quelle" "$ziel" --ignore-existing --size-only --log-file="$logbuch" --log-level=$LOGLEVEL --backup-dir="$archiv"
fi
$logger "Fertig mit $quelle"
$logger "------------------------------------------------------------------"
echo "🎉 Fertig!"
echo
}
# Bibliothek1 # # # # # # # # # # # # # # # # # # # # # # # #
############### Scaleway ##############
QUELLE="/media/USB1/Bibliothek1"
ZIEL="ScalewayGlacierSecret:/Audio/ABS/Books"
LOGBUCH="/media/Scaleway.log"
LOGGER="/bin/bash /root/logger.sh -f $LOGBUCH -l INFO -m "
speichern "$QUELLE" "$ZIEL" "$LOGBUCH" "NEIN"
############## Jottacloud #################
ZIEL="jotta:/Audio/ABS/Bibliothek1"
LOGBUCH="/media/Jotta.log"
LOGGER="/bin/bash /root/logger.sh -f $LOGBUCH -l INFO -m "
speichern "$QUELLE" "$ZIEL" "$LOGBUCH" "$JOTTAARCHIVDIR"
# Helena # # # # # # # # # # # # # # # # # # # # # # # #
############### Scaleway ##############
QUELLE="/media/audiobookshelf/Helena"
ZIEL="ScalewayGlacierSecret:/Audio/ABS/Helena"
LOGBUCH="/media/Scaleway.log"
LOGGER="/bin/bash /root/logger.sh -f $LOGBUCH -l INFO -m "
speichern "$QUELLE" "$ZIEL" "$LOGBUCH" "NEIN"
############## Jottacloud #################
ZIEL="jotta:/Audio/ABS/Helena"
LOGBUCH="/media/Jotta.log"
LOGGER="/bin/bash /root/logger.sh -f $LOGBUCH -l INFO -m "
speichern "$QUELLE" "$ZIEL" "$LOGBUCH" "$JOTTAARCHIVDIR"
# Podcast-Archiv # # # # # # # # # # # # # # # # # # # # # # # #
############### Scaleway ##############
QUELLE="/media/audiobookshelf/Podcasts/Archiv/"
ZIEL="ScalewayGlacierSecret:/Audio/ABS/Podcasts"
LOGBUCH="/media/Scaleway.log"
LOGGER="/bin/bash /root/logger.sh -f $LOGBUCH -l INFO -m "
speichern "$QUELLE" "$ZIEL" "$LOGBUCH" "NEIN"
############## Jottacloud #################
ZIEL="jotta:/Audio/gPodder/"
LOGBUCH="/media/Jotta.log"
LOGGER="/bin/bash /root/logger.sh -f $LOGBUCH -l INFO -m "
speichern "$QUELLE" "$ZIEL" "$LOGBUCH" "$JOTTAARCHIVDIR"