From 13fd999eb8f02fdffa80c37d2665b89feebcb87a Mon Sep 17 00:00:00 2001 From: alf Date: Thu, 10 Sep 2026 13:40:37 +0000 Subject: [PATCH] =?UTF-8?q?rclone=5FAudio=5Fsync.sh=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rclone_Audio_sync.sh | 114 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 rclone_Audio_sync.sh diff --git a/rclone_Audio_sync.sh b/rclone_Audio_sync.sh new file mode 100644 index 0000000..3014bd1 --- /dev/null +++ b/rclone_Audio_sync.sh @@ -0,0 +1,114 @@ +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" + +speichern() { + local quelle="$1" + local ziel="$2" + local logbuch="$3" + local logger="/bin/bash /root/logger.sh -f $logbuch -l INFO -m" + + $logger "Starte RCLONE-Sitzung" + $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 + rclone sync -P "$quelle" "$ziel" --ignore-existing --size-only --log-file="$logbuch" --log-level=$LOGLEVEL + + $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" + + +############## 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" + + +# 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" + + +############## 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" + + +# 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" + + +############## Jottacloud ################# +ZIEL="jotta:/Audio/gPodder/" + +LOGBUCH="/media/Jotta.log" +LOGGER="/bin/bash /root/logger.sh -f $LOGBUCH -l INFO -m " + +speichern "$QUELLE" "$ZIEL" "$LOGBUCH"