Files
rclonecloner/rclonecloner2000.sh
2026-03-09 08:53:58 +00:00

172 lines
5.2 KiB
Bash

########## 0 Einstellungen und Funktionen ###############
GIT_PFAD="$HOME/Gitea"
source $GIT_PFAD/logger/logger.sh
jjahr=$(date +%Y)
ARCHIV_PFAD="Archiv"
ARCHIV_VERZ=$(date +%Y-%m-%d-%H-%M)
ZIEL_REPO="jotta"
ZIEL_REPO_SECRET="jottasecret"
QUELLE="/srv/dev-disk-by-uuid-13cadd43-4179-427d-a0bd-3bc17596b05f"
AUDIO="$QUELLE/Audio"
RADIO="$AUDIO/Radio-Archiv"
RADIO_ZIEL="$ZIEL_REPO:/Audio/Radio-Archiv/$jjahr"
ZIEL_OMV="BackupHomelab/OMV2000"
OMV_CONFIG="/etc/openmediavault"
PHONOSTAR_QUELLE="magentawralto:/phonostar_radio_cloud/"
testlauf="nein" # bei "ja" wird übersprungen: Hörbücher A-Z, Bilder Alf und Louisa
logbuch="$GIT_PFAD/logger/Logs/cloner2000.log"
log_init "$logbuch"
function eingehaengt () {
DECRYPTED_DIR=$QUELLE
if mountpoint -q "$DECRYPTED_DIR"; then
return 0
else
return 1
fi
}
################## Hauptschleife #####################
log_start
log_info "RCLCLO rclonecloner 2000"
log_info "RCLCLO Archiv-Ordner gesetzt auf: $ARCHIV_PFAD/$ARCHIV_VERZ"
log_info "RCLCLO Starte grosses Cloning..."
if [ $testlauf = "ja" ]
then
log_warn "RCLCLO TESTLAUF!"
else
log_info "RCLCLO Kein Testlauf."
fi
log_info "RCLCLO Teste Laufwerk..."
eingehaengt
if [ $? -eq 0 ] # Prüfe auf 0 für Erfolg, nicht auf 1
then
log_info "RCLCLO Laufwerk OK!"
else
log_error "RCLCLO Laufwerk nicht freigegeben."
log_error "RCLCLO EXIT!"
exit 2
fi
######## 1 OMV-Config sichern... #########
log_info "OMV-Config sichern"
if [ $testlauf = "nein" ]
then
rclone sync "$OMV_CONFIG" "$ZIEL_REPO_SECRET:/$ZIEL_OMV" --log-file=$logbuch --backup-dir="$ZIEL_REPO_SECRET:/$ARCHIV_PFAD/$ARCHIV_VERZ/OMV2000" -P
else
log_info "OMV-Config-Sicherung übersprungen"
fi
######## 2 Phonostar-Cloning ############
log_info "RCLCLO Starte PhonoStar-Download"
if [ $testlauf = "nein" ]
then
rclone move "$PHONOSTAR_QUELLE" $RADIO/Phonostar/ --create-empty-src-dirs --log-file=$logbuch -P
log_error "RCLCLO Phonostar Downlod ERR: $?"
/bin/bash $RADIO/Phonostar/Phonostarverteilen.sh
log_error "RCLCLO Phonostar verteilen ERR: $?"
else
log_info "Phonostar-Download übersprungen"
fi
######### 3 Radio-Cloning ################
log_info 'RCLCLO Starte Radio-Cloning...'
log_info "Jahr: $jjahr"
if [ $testlauf = "nein" ]
then
rclone sync -P $RADIO/$jjahr "$ZIEL_REPO:/$RADIO_ZIEL/" --exclude=gPodder/ --ignore-existing --log-file=$logbuch --backup-dir="$ZIEL_REPO/$ARCHIV_PFAD/$ARCHIV_VERZ/Radio/"
log_error "RCLCLO ERR: $?"
else
log_info "RCLCLO Radio-Cloning übersprungen (Testlauf)"
fi
########### 4 Hörbücher #############
log_info 'RCLCLO Hörbücher...'
if [ $testlauf = "ja" ]
then
buchverz="A"
log_info "RCLCLO Radio-Cloning Hörbücher-Verzeichnisse: $buchverz (Testlauf)"
else
buchverz="A B C D E F G H I J K L M N O P Q R S SCH T U"
log_info "RCLCLO Radio-Cloning Hörbücher-Verzeichnisse: $buchverz"
for bbuch in $buchverz; do
log_info "RCLCLO Buchstabe: $bbuch"
rclone sync -P $AUDIO/Hörbücher/A-Z/$bbuch/ "$ZIEL_REPO:/Audio/Hörbücher/A-Z/$bbuch/"" --ignore-existing --log-file=$logbuch --backup-dir="$ZIEL_REPO:/$ARCHIV_PFAD/$ARCHIV_VERZ/Hörbücher/$bbuch/"
log_error "RCLCLO ERR: $?"
echo " "
done
fi
echo " "
echo " "
######### 5 Musik ##############
if [ $testlauf = "nein" ]
then
log_info "RCLCLO Musik"
rclone sync -P $AUDIO/Musik/ "$ZIEL_REPO_SECRET:/Audio/Musik/"" --ignore-existing --log-file=$logbuch --backup-dir="$ZIEL_REPO:/$ARCHIV_PFAD/$ARCHIV_VERZ/Musik/"
else
log_info "RCLCLO Musik-Cloning übersprungen (Testlauf)"
fi
echo " "
echo " "
############ 6 Bilder ###############
if [ $testlauf = "ja" ]
then
log_info "RCLCLO Testlauf: Bilder übersprungen"
else
log_info "RCLCLO Starte Script bilderbackup.sh"
# rclone sync -P /srv/MEDIEN/Bilder/Alf/$jjahr/ jottasecret:/Bilder/Alf/$jjahr/ --log-file=$logbuch --backup-dir jottasecret:/Archiv/Bilder/$AArchiv/Alf/$jjahr/ --ignore-existing
# log_error "RCLCLO ERR: $?"
echo " "
echo " "
/bin/bash /root/bilderbackup.sh
fi
#################### 7 Archiv komprimieren #################
if [ $testlauf = "ja" ]
then
log_info "RCLCLO Testlauf: Kein Archiv-Packing."
else
log_info "RCLCLO Starte Packen des Archivs..."
log_info "RCLCLO 1: Repo $ZIEL_REPO"
rclone archive create "$ZIEL_REPO:/$ARCHIV_PFAD/$ARCHIV_VERZ" "$ZIEL_REPO:/$ARCHIV_PFAD/$ARCHIV_VERZ.zip"
if [ $? = 0 ]
then
log_info "RCLCLO 1: erfolgreich."
log_info "RCLCLO 1: Archiv-Verzeichnis löschen..."
rclone purge --dry-run "$ZIEL_REPO:/$ARCHIV_PFAD/$ARCHIV_VERZ/"
if [ $? = 0]
then
log_info "RCLCLO 1: löschen erfolgreich."
else
log_error "RCLCLO 1: FEHLER beim Löschen!"
fi
else
log_error "RCLCLO 1: Fehler beim Packen!"
fi
fi
log_info 'RCLCLO Fertig!'
log_info " "
log_info "----------------- fertig ! ----------------"
log_end