Compare commits

..

2 Commits

Author SHA1 Message Date
Alf
e6ce7a2727 Merge branch 'main' of http://100.87.87.6:3000/alf/rettedpv 2025-09-04 14:29:53 +02:00
Alf
7a0097d0c7 Auf neues Logging umgestellt 2025-09-04 14:29:12 +02:00
3 changed files with 15 additions and 24 deletions

BIN
Archiv.7z

Binary file not shown.

View File

@ -7,7 +7,7 @@ Dieses Skript sichert regelmäßig Daten aus einer Nextcloud-Quelle in ein lokal
- Synchronisiert ein Verzeichnis (`ptv-nextcloud:/DPV`) mit einem lokalen Ordner `./Backup/`
- Verwendet `rclone --backup-dir`, um **ältere, geänderte oder gelöschte Dateien** in ein Archiv zu verschieben
- Erstellt pro Lauf ein neues Archivverzeichnis unter `./Archiv/<Datum-Zeit>`
- Protokolliert alle Vorgänge in `log.txt`
- Protokolliert alle Vorgänge in rettedpv.log
- Entfernt leere Verzeichnisse im Archiv
## 🧱 Verzeichnisstruktur
@ -17,10 +17,6 @@ Dieses Skript sichert regelmäßig Daten aus einer Nextcloud-Quelle in ein lokal
├── Backup/ # Aktueller Stand der Daten
├── Archiv/
│ └── 2025-07-03-15-30/ # Frühere Versionen
├── log.txt # Laufendes Logfile
├── rotate.sh # optional: log.txt rotieren (gegen zu große Dateigrößen)
└── rettedpv.sh # Das Backup-Script
```
@ -43,7 +39,8 @@ Dieses Skript sichert regelmäßig Daten aus einer Nextcloud-Quelle in ein lokal
## 🔍 Logging & Fehlerbehandlung
- Alle Logeinträge landen in `log.txt`
- Alle Logeinträge landen in `rettedpv.log`
- Die Log-Datei liegt im örtlichen Gitea/logger/Logs-Verzeichnis
- Fehler von `rclone` erscheinen dort mit Zeitstempel
- Leere Verzeichnisse im Archiv werden automatisch gelöscht
- Das optionale Script "rotate.sh" rotiert log.txt und verhindert, dass die Datei zu groß wird.

View File

@ -1,45 +1,39 @@
#!/bin/bash
cd /home/oberkoetter/Dokumente/Git/rettedpv
cd $GIT_PFAD/rettedpv
# === Konfiguration ===
REMOTE="ptv-nextcloud:/DPV"
BACKUP_DIR="./Backup"
ARCHIVE_BASE="./Archiv"
LOGFILE="log.txt"
LOGFILE="$GIT_PFAD/logger/Logs/rettedpv.log"
source $GIT_PFAD/logger/logger.sh
log_init $LOGFILE
log_start
# === Zeitstempel & Archivverzeichnis ===
TIMESTAMP=$(date +%Y-%m-%d-%H-%M)
ARCHIVE_DIR="${ARCHIVE_BASE}/${TIMESTAMP}"
mkdir -p "$ARCHIVE_DIR"
# === Logging-Funktion ===
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') $1" >> "$LOGFILE"
echo "-> $1"
}
# === Beginn der Sicherung ===
log ""
log ""
log "🔁 Starte Datensicherung…"
# Log rotieren?
log " log.txt rotieren?"
/bin/bash ./rotate.sh
log_info ""
log_info ""
log_info "🔁 Starte Datensicherung…"
# === Synchronisierung mit rclone ===
gum spin --title "rclone läuft..." -- rclone sync "$REMOTE" "$BACKUP_DIR" \
--backup-dir="$ARCHIVE_DIR" \
--log-file="$LOGFILE" \
--log-level=INFO
log " ERR nach rclone: $?"
log_info " ERR nach rclone: $?"
# === Aufräumen leerer Archivverzeichnisse ===
log "🧹 Entferne leere Verzeichnisse in $ARCHIVE_BASE"
log_info "🧹 Entferne leere Verzeichnisse in $ARCHIVE_BASE"
find "$ARCHIVE_BASE" -type d -empty -delete
# === Ende der Sicherung ===
log "✅ Datensicherung abgeschlossen."
log_info "✅ Datensicherung abgeschlossen."
gum style --border normal --margin "1" --padding "1 2" --foreground 212 "✅ Backup abgeschlossen!"