2026-04-02 10:40:55 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
source TalkLib.sh
|
|
|
|
|
|
|
|
|
|
# --- KONFIGURATION ---
|
|
|
|
|
# Pfad zum lokalen Verzeichnis (Wichtig: Schrägstrich am Ende!)
|
2026-04-07 13:47:56 +02:00
|
|
|
SOURCE_DIR_DATA="/mnt/data/"
|
|
|
|
|
SOURCE_DIR_APP="/var/www/html"
|
2026-04-02 10:40:55 +02:00
|
|
|
|
|
|
|
|
# Remote-Zugangsdaten
|
|
|
|
|
REMOTE_USER="backupuser"
|
|
|
|
|
REMOTE_HOST="alsdorf.spznord.de"
|
2026-04-02 10:47:08 +02:00
|
|
|
REMOTE_PORT="1022" # Neuer Port für die Übertragung
|
2026-04-07 13:47:56 +02:00
|
|
|
REMOTE_DIR_DATA="/mnt/disk0/backups/nextcloud/data/"
|
|
|
|
|
REMOTE_DIR_APP="/mnt/disk0/backups/nextcloud/App/"
|
2026-04-02 10:40:55 +02:00
|
|
|
|
2026-04-07 09:40:22 +02:00
|
|
|
#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}"
|
|
|
|
|
|
|
|
|
|
|
2026-04-02 10:40:55 +02:00
|
|
|
# --- LOGIK ---
|
2026-04-07 13:47:56 +02:00
|
|
|
echo "Starte Synchronisation von $SOURCE_DIR_DATA nach $REMOTE_HOST auf Port $REMOTE_PORT..." > $logfilename
|
2026-04-02 11:50:45 +02:00
|
|
|
# Pfad zum SSH-Key
|
2026-04-07 10:26:40 +02:00
|
|
|
SSH_KEY="/root/.ssh/id_ed25519"
|
|
|
|
|
|
|
|
|
|
logfilename="/tmp/nextcloud-databkp_$(date +"%Y%m%d").log"
|
2026-04-07 10:34:27 +02:00
|
|
|
logNCFilename="nextcloud-data-backup_$(date +"%Y%m%d%H%M")_log.txt"
|
2026-04-02 10:40:55 +02:00
|
|
|
|
2026-04-07 12:13:48 +02:00
|
|
|
#copy data
|
2026-04-02 11:50:45 +02:00
|
|
|
# rsync mit Ausschlussfiltern:
|
|
|
|
|
# --exclude 'DATEINAME': Verhindert, dass diese Datei kopiert wird
|
2026-04-07 13:22:49 +02:00
|
|
|
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 \
|
2026-04-07 13:47:56 +02:00
|
|
|
"$SOURCE_DIR_DATA" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR_DATA" >> $logfilename
|
2026-04-02 10:40:55 +02:00
|
|
|
|
|
|
|
|
# Status prüfen
|
|
|
|
|
if [ $? -eq 0 ]; then
|
2026-04-07 12:51:53 +02:00
|
|
|
Mesg="${Mesg}Nextcloud Data rsync Ok.${NEWLINE}"
|
2026-04-02 10:40:55 +02:00
|
|
|
else
|
2026-04-07 12:51:53 +02:00
|
|
|
Mesg="${Mesg}Nextcloud Data rsync failed.${NEWLINE}"
|
2026-04-02 10:40:55 +02:00
|
|
|
fi
|
2026-04-07 12:13:48 +02:00
|
|
|
|
|
|
|
|
#todo Database backup
|
2026-04-07 12:33:04 +02:00
|
|
|
#App backup
|
2026-04-07 13:47:56 +02:00
|
|
|
|
|
|
|
|
echo "Starte Synchronisation von $SOURCE_DIR_APP nach $REMOTE_HOST auf Port $REMOTE_PORT..." >> $logfilename
|
|
|
|
|
|
2026-04-07 12:45:35 +02:00
|
|
|
rsync -avzh \
|
2026-04-07 12:37:16 +02:00
|
|
|
-e "ssh -p $REMOTE_PORT -i $SSH_KEY" \
|
|
|
|
|
--progress \
|
2026-04-07 13:47:56 +02:00
|
|
|
"$SOURCE_DIR_APP" "$REMOTE_USER"@"$REMOTE_HOST:$REMOTE_DIR_APP" >> $logfilename
|
|
|
|
|
|
|
|
|
|
# Status prüfen
|
2026-04-07 12:37:16 +02:00
|
|
|
if [ $? -eq 0 ]; then
|
2026-04-07 12:51:53 +02:00
|
|
|
Mesg="${Mesg}Nextcloud App rsync Ok.${NEWLINE}"
|
2026-04-07 12:37:16 +02:00
|
|
|
else
|
2026-04-07 12:51:53 +02:00
|
|
|
Mesg="${Mesg}Nextcloud App rsync failed.${NEWLINE}"
|
2026-04-07 12:37:16 +02:00
|
|
|
fi
|
2026-04-07 12:13:48 +02:00
|
|
|
|
2026-04-07 10:26:40 +02:00
|
|
|
MesgID=$(sendMessage2Room $NC_URL $NC_USER $NC_APP_PASSWORD $ROOM_TOKEN "$Mesg")
|
2026-04-07 10:34:27 +02:00
|
|
|
sendFile2Room $NC_URL $NC_USER $NC_APP_PASSWORD $ROOM_TOKEN $logfilename $logNCFilename
|
2026-04-07 12:54:31 +02:00
|
|
|
rm $logfilename
|