diff --git a/rclonecloner2000.sh b/rclonecloner2000.sh new file mode 100644 index 0000000..f84e560 --- /dev/null +++ b/rclonecloner2000.sh @@ -0,0 +1,178 @@ +########## 0 Einstellungen und Funktionen ############### +GIT_PFAD="$HOME/Gitea" +source $GIT_PFAD/logger/logger.sh + +jjahr=$(date +%Y) +AArchiv=$(date +%Y-%m-%d-%H-%M) +QUELLE="/srv/dev-disk-by-uuid-13cadd43-4179-427d-a0bd-3bc17596b05f" +AUDIO="$QUELLE/Audio" +RADIO="$AUDIO/Radio-Archiv" +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: $AArchiv" +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 /etc/openmediavault jottasecret:/BackupHomelab/OMV81/ --log-file=$logbuch --backup-dir=jottasecret:/BackupHomelab/Archiv/OMV81/$AArchiv/ -P +else + log_info "OMV-Config-Sicherung übersprungen" +fi + +######## 2 Phonostar-Cloning ############ +log_info "RCLCLO Starte PhonoStar-Download" +if [ $testlauf = "nein" ] +then + rclone move magentawralto:/phonostar_radio_cloud/ $RADIO/Phonostar/ --create-empty-src-dirs --log-file=$logbuch -P + # mmonat=$(date +%m-%Y) + # find /srv/MEDIEN/Audio/Radio-Archiv/Phonostar -iname "*$mmonat*" -exec mv {} /srv/MEDIEN/Audio/Radio-Archiv/2025/$(date +%m)/ -v \; >>$logbuch + 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 jotta:/Audio/Radio-Archiv/$jjahr/ --exclude=gPodder/ --ignore-existing --log-file=$logbuch --backup-dir=jotta:/Archiv/Audio/$AArchiv/Radio/$jjahr/ + 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" + 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/ jotta:/Audio/Hörbücher/A-Z/$bbuch/ --ignore-existing --log-file=$logbuch --backup-dir=jotta:/Archiv/Audio/$AArchiv/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/ jottasecret:/Audio/Musik/ --ignore-existing --log-file=$logbuch --backup-dir jottasecret:/Archiv/Audio/$AArchiv/Musik/ +else + log_info "RCLCLO Musik-Cloning übersprungen (Testlauf)" +fi + +echo " " +echo " " + + +############ 6 Bilder ############### + +if [ $testlauf = "ja" ] +then + log_info "RCLCLO Testlauf: Bilder Alf übersprungen" +else + log_info "RCLCLO Starte Script louisabackup.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/louisabackup.sh + +fi + +log_info 'RCLCLO Fertig!' + +############### 7 OMV-Sync 2000 ####################### + +log_info "R2000 OMV-Sychronisierung..." +log_info "R2000 Disk auf OMV2000 eingehängt?" + +# SSH-Verbindungsinformationen +SSH_USER="root" # Dein Benutzername auf dem Remote-Server +SSH_HOST="100.87.87.81" # Die IP-Adresse oder der Hostname des Remote-Servers + +# Das Verzeichnis auf dem Remote-Server, das der Entschlüsselungs-Mount-Point ist +REMOTE_DECRYPTED_DIR="/srv/dev-disk-by-uuid-13cadd43-4179-427d-a0bd-3bc17596b05f" # z.B. /mnt/mydata_decrypted +log_info "R2000 Prüfe, ob '$REMOTE_DECRYPTED_DIR' auf $SSH_HOST entschlüsselt ist..." + +# Führe 'mountpoint -q' auf dem Remote-Server aus +ssh -p2222 -i "/root/Schluessel/id_rclone" "$SSH_USER@$SSH_HOST" "mountpoint -q /srv/dev-disk-by-uuid-13cadd43-4179-427d-a0bd-3bc17596b05f/" + +# Überprüfe den Exit-Status des Remote-Befehls +if [ $? -eq 0 ]; then + log_info "R2000 Erfolg: Das Verzeichnis $REMOTE_DECRYPTED_DIR auf $SSH_HOST ist entschlüsselt (gemountet)." +else + log_error "R2000 Fehler: Das Verzeichnis '$REMOTE_DECRYPTED_DIR' auf $SSH_HOST ist NICHT entschlüsselt (nicht gemountet)." + log_error "R2000 Bitte entschlüsseln Sie es auf dem Server." + exit 1 # Das Skript mit einem Fehlercode beenden +fi + +# rsync -r -u -P --delete -e "ssh -p2222 -i /root/id_OMV81" /srv/dev-disk-by-uuid-cdd3de56-0b4f-48cf-aec0-abf441a759b5/ root@100.87.87.81:/srv/dev-disk-by-uuid-13cadd43-4179-427d-a0bd-3bc17596b05f/ --exclude=.Trash-1000/ +# rsync -r -u -P -e "ssh -p2222 -i /root/Schluessel/id_rclone" /srv/dev-disk-by-uuid-cdd3de56-0b4f-48cf-aec0-abf441a759b5/ root@100.87.87.81:/srv/dev-disk-by-uuid-13cadd43-4179-427d-a0bd-3bc17596b05f/ --exclude=.Trash-1000/ --log-file=$logfile + +log_info "Initialisiere SSH-Verbindung für rclone..." +eval "$(ssh-agent -s)" +ssh-add /root/id_OMV81 + +log_info "Synchronisieren OMV80 und OMV81..." +log_info "… Festplatte zu Festplatte. Archiv: OMV81:/Archiv/$AArchiv/ …" +log_info "… Audio …" +cd /srv/MEDIEN/ +# /bin/bash omv2000sync.sh +log_error "ERR: $?" +log_info " " +log_info "----------------- fertig ! ----------------" +log_end