Files
universalrclone/rcloning.sh
2026-03-25 11:32:07 +00:00

56 lines
1.6 KiB
Bash

# Voraussetzungen: rclone installiert
# und GIT_PFAD wurde in .bashrc gesetzt.
source $GIT_PFAD/logger/logger.sh
LOGBUCH="$GIT_PFAD/logger/Logs/rcloning.log"
log_init $LOGBUCH
log_start
# Einstellungen #
IST_TEST="nein" # ja: es wird nichts übertragen
REPO="jotta:/"
QUELLE="/srv/MEDIEN/Audio"
ZIEL="$REPO/Audio"
ARCHIV="$REPO/Archiv/Audio/$(date +%Y-%m-%d-%H-%M)"
MODUS="sync" # Modus kann sync oder copy sein
LOGLVL="INFO" # Möglich: DEBUG, INFO, ERROR, NOTICE
IGNORE="" # leeren, wenn nicht ignoriert werden soll, sonst --ignore-existing (dann werden aber keine Änderungen archiviert)
EXCLUDE=".git/" # Auszuschließende Dateien und Verzeichnisse z. B. ".git/ .Trash1000/"
# Programm #
log_info "Starte Cloning..."
if [ $IST_TEST = "ja"]
then
DRYRUN="--dry-run"
else
DRYRUN=""
fi
log_info "Quelle: $QUELLE --> Ziel: $ZIEL"
log_info "Archiv: $ARCHIV"
log_info "Modus: $MODUS"
log_info "Log-Level: $LOGLVL"
log_info "Ignoriert: $EXCLUDE"
log_info "Bestehende Dateien überspringen: $IGNORE"
log_info "Testlauf: $IST_TEST"
log_info "Starte..."
rclone -P $MODUS $QUELLE $ZIEL --backup-dir=$ARCHIV --log-file=$LOGBUCH --log-level=$LOGLVL $IGNORE $DRYRUN
log_error "ERR: $?"
log_info "Archiv packen..."
rclone archive create $ARCHIV/ $ARCHIV.zip -P --log-level=$LOGLVL --log-file=$LOGBUCH
ERR="$?"
log_info "Fertig. ERR: $ERR"
if [ $ERR = 0 ]
then
log_info "Archiv-Verzeichnis löschen..."
rclone purge $ARCHIV/ -P --log-file=$LOGBUCH --log-level=DEBUG
log_info "Fertig. ERR: $?"
else
log_error "Beim Erstellen des Archivs kam es zu einem Problem."
fi
log_end