#!/bin/bash source TalkLib.sh # --- KONFIGURATION --- # Pfad zum lokalen Verzeichnis (Wichtig: Schrägstrich am Ende!) SOURCE_DIR_DATA="/mnt/data/" SOURCE_DIR_APP="/var/www/html" # Remote-Zugangsdaten REMOTE_USER="backupuser" REMOTE_HOST="alsdorf.spznord.de" REMOTE_PORT="1022" # Neuer Port für die Übertragung REMOTE_DIR_DATA="/mnt/disk0/backups/nextcloud/data/" REMOTE_DIR_APP="/mnt/disk0/backups/nextcloud/App/" #nextcloud-Zugangsdaten NC_URL="https://cloud.ptv-euregio.de" NC_USER="MittagsApp" NC_APP_PASSWORD="inter2563*" ROOM_TOKEN="b4gs3g9z" NEWLINE=$'\n' Mesg="*** Nextcloud Data Backup ***${NEWLINE}" # --- LOGIK --- echo "Starte Synchronisation von $SOURCE_DIR_DATA nach $REMOTE_HOST auf Port $REMOTE_PORT..." > $logfilename # Pfad zum SSH-Key SSH_KEY="/root/.ssh/id_ed25519" logfilename="/tmp/nextcloud-databkp_$(date +"%Y%m%d").log" logNCFilename="nextcloud-data-backup_$(date +"%Y%m%d%H%M")_log.txt" #copy data # rsync mit Ausschlussfiltern: # --exclude 'DATEINAME': Verhindert, dass diese Datei kopiert wird rsync -avzh \ -e "ssh -p $REMOTE_PORT -i $SSH_KEY" \ --exclude 'nextcloud.log' \ --exclude 'nextcloud.log.1' \$ --exclude 'audit.log' \ --exclude 'audit.log.1' \ --exclude 'updater.log' \ --exclude 'updater.log.1' \ --exclude 'flow.log' \ --exclude 'flow.log.1' \ --progress \ "$SOURCE_DIR_DATA" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR_DATA" >> $logfilename # Status prüfen if [ $? -eq 0 ]; then Mesg="${Mesg}Nextcloud Data rsync Ok.${NEWLINE}" else Mesg="${Mesg}Nextcloud Data rsync failed.${NEWLINE}" fi #todo Database backup #App backup echo "Starte Synchronisation von $SOURCE_DIR_APP nach $REMOTE_HOST auf Port $REMOTE_PORT..." >> $logfilename rsync -avzh \ -e "ssh -p $REMOTE_PORT -i $SSH_KEY" \ --progress \ "$SOURCE_DIR_APP" "$REMOTE_USER"@"$REMOTE_HOST:$REMOTE_DIR_APP" >> $logfilename # Status prüfen if [ $? -eq 0 ]; then Mesg="${Mesg}Nextcloud App rsync Ok.${NEWLINE}" else Mesg="${Mesg}Nextcloud App rsync failed.${NEWLINE}" fi MesgID=$(sendMessage2Room $NC_URL $NC_USER $NC_APP_PASSWORD $ROOM_TOKEN "$Mesg") sendFile2Room $NC_URL $NC_USER $NC_APP_PASSWORD $ROOM_TOKEN $logfilename $logNCFilename rm $logfilename