From 63ac5b74d188817af6d7ba9a652b690c458c9a8f Mon Sep 17 00:00:00 2001 From: Alf Date: Tue, 29 Jul 2025 15:53:11 +0200 Subject: [PATCH] Abgleich 2025-07-29 --- log/log.txt | 0 log/rotate.sh | 21 ------- login.sh | 5 ++ rclonecloner.sh | 158 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 163 insertions(+), 21 deletions(-) delete mode 100644 log/log.txt delete mode 100644 log/rotate.sh mode change 100644 => 100755 login.sh create mode 100644 rclonecloner.sh diff --git a/log/log.txt b/log/log.txt deleted file mode 100644 index e69de29..0000000 diff --git a/log/rotate.sh b/log/rotate.sh deleted file mode 100644 index 716208d..0000000 --- a/log/rotate.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -# Setze Arbeitsverzeichnis -# cd /home/oberkoetter/Dokumente/Git/rettedpv || exit 1 - -# Pfade definieren -CONFIG="./logrotate.cfg" -STATUS="./logrotate.status" -LOGFILE="./log.txt" - -# Prüfe, ob Konfigurationsdatei existiert -if [[ ! -f "$CONFIG" ]]; then - echo "$(date) - Fehler: Konfigurationsdatei '$CONFIG' nicht gefunden." >> "$LOGFILE" - exit 2 -fi - -# Logrotate ausführen (forcierter Lauf) -logrotate -s "$STATUS" -f "$CONFIG" - -# Erfolgs-Log schreiben -echo "$(date) - Logrotate wurde erfolgreich ausgeführt." >> "$LOGFILE" \ No newline at end of file diff --git a/login.sh b/login.sh old mode 100644 new mode 100755 index 43cdcf6..3596b4b --- a/login.sh +++ b/login.sh @@ -48,6 +48,11 @@ declare -A HOSTS=( ["ABS"]="100.87.87.102" ["OMVPi"]="100.87.87.80" ["OMV2000"]="100.87.87.81" + ["CA"]="100.87.87.5" + ["PHOSCON"]="100.87.87.90" + ["DIETPI"]="100.87.87.4" + ["PROXI"]="100.87.87.100" + ["PC77"]="100.87.87.77" ) TARGET_LABEL=$(gum choose --header "Zielsystem wählen" "${!HOSTS[@]}") diff --git a/rclonecloner.sh b/rclonecloner.sh new file mode 100644 index 0000000..e687bca --- /dev/null +++ b/rclonecloner.sh @@ -0,0 +1,158 @@ +########## 0 Einstellungen und Funktionen ############### +jjahr=$(date +%Y) +AArchiv=$(date +%Y-%m-%d-%H-%M) +testlauf="ja" # bei "ja" wird übersprungen: Hörbücher A-Z, Bilder Alf und Louisa +logbuch="root/log.txt" + +source /root/logger.sh + +function eingehaengt () { + DECRYPTED_DIR="/srv/dev-disk-by-uuid-cdd3de56-0b4f-48cf-aec0-abf441a759b5/" + + if mountpoint -q "$DECRYPTED_DIR"; then + return 0 + else + return 1 + fi +} + + +################## Hauptschleife ##################### + +neu_log +info_log "RCLCLO Archiv-Ordner gesetzt auf: $AArchiv" +info_log "RCLCLO Starte grosses Cloning..." + +if [ $testlauf = "ja" ] +then + err_log "RCLCLO TESTLAUF!" +else + err_log "RCLCLO Kein Testlauf." +fi + +info_log "RCLCLO Teste Laufwerk..." + +eingehaengt +if [ $? -eq 0 ] # Prüfe auf 0 für Erfolg, nicht auf 1 +then + info_log "RCLCLO Laufwerk OK!" +else + err_log "RCLCLO Laufwerk nicht freigegeben." + err_log "RCLCLO EXIT!" + exit 2 +fi + +######## 1 OMV-Config sichern... ######### +info_log "OMV-Config sichern" +if [ $testlauf = "nein" ] +then + rclone sync /etc/openmediavault/config.xml jottasecret:/BackupHomelab/OMV80/ --log-file=$logbuch --backup-dir=jottasecret:/BackupHomelab/Archiv/OMV80/$AArchiv/ -P +else + info_log "OMV-Config-Sicherung übersprungen" +fi + +######## 2 Phonostar-Cloning ############ +info_log "RCLCLO Starte PhonoStar-Download" +if [ $testlauf = "nein" ] +then + rclone move magentawralto:/phonostar_radio_cloud/ /srv/MEDIEN/Audio/Radio-Archiv/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 \; >>/root/log.txt + err_log "RCLCLO Phonostar Downlod ERR: $?" +else + info_log "Phonostar-Download übersprungen" +fi + +######### 3 Radio-Cloning ################ +info_log 'RCLCLO Starte Radio-Cloning...' +info_log "Jahr: $jjahr" +if [ $testlauf = "nein" ] +then + rclone sync -P /srv/MEDIEN/Audio/Radio-Archiv/$jjahr jotta:/Audio/Radio/$jjahr/ --exclude=gPodder/ --log-file=$logbuch --backup-dir=jotta:/Archiv/Audio/$AArchiv/Radio/$jjahr/ + err_log "RCLCLO ERR: $?" +else + info_log "RCLCLO Radio-Cloning übersprungen (Testlauf)" +fi + +########### 4 Hörbücher ############# +info_log 'RCLCLO Hörbücher...' +if [ $testlauf = "ja" ] +then + buchverz="A" + info_log "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" + info_log "RCLCLO Radio-Cloning Hörbücher-Verzeichnisse: $buchverz" +fi + +for bbuch in $buchverz; do + info_log "RCLCLO Buchstabe: $bbuch" + rclone sync -P /srv/MEDIEN/Audio/Hörbücher/A-Z/$bbuch/ jotta:/Audio/Hörbücher/A-Z/$bbuch/ --log-file=$logbuch --backup-dir=jotta:/Archiv/Audio/$AArchiv/Hörbücher/$bbuch/ + err_log "RCLCLO ERR: $?" + echo " " +done + +echo " " +echo " " + + +######### 5 Musik ############## + +if [ $testlauf = "nein" ] +then + info_log "RCLCLO Musik" + rclone sync -P /srv/MEDIEN/Audio/Musik/ jottasecret:/Audio/Musik/ --log-file=$logbuch --backup-dir jottasecret:/Archiv/Audio/$AArchiv/Musik/ +else + info_log "RCLCLO Musik-Cloning übersprungen (Testlauf)" +fi + +echo " " +echo " " + + +############ 6 Bilder ############### + +if [ $testlauf = "ja" ] +then + info_log "RCLCLO Testlauf: Bilder Alf übersprungen" +else + info_log "RCLCLO Alfs Bilder... Jahrgang: $jjahr" + 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 + err_log "RCLCLO ERR: $?" + echo " " + echo " " + /bin/bash /root/louisabackup.sh + +fi + +info_log 'RCLCLO Fertig!' + +############### 7 OMV-Sync 2000 ####################### + +info_log "R2000 OMV-Sychronisierung..." +info_log "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 +info_log "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 \"$REMOTE_DECRYPTED_DIR\"" + +# Überprüfe den Exit-Status des Remote-Befehls +if [ $? -eq 0 ]; then + info_log "R2000 Erfolg: Das Verzeichnis '$REMOTE_DECRYPTED_DIR' auf $SSH_HOST ist entschlüsselt (gemountet)." +else + err_log "R2000 Fehler: Das Verzeichnis '$REMOTE_DECRYPTED_DIR' auf $SSH_HOST ist NICHT entschlüsselt (nicht gemountet)." + err_log "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 +