116 lines
3.5 KiB
Bash
116 lines
3.5 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"
|
|
|
|
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 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
|
|
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"
|
|
|