Compare commits

...

12 Commits

Author SHA1 Message Date
alf
2a0b61ade7 logrotate.cfg gelöscht 2025-09-04 12:31:03 +00:00
alf
64cb694fb4 rotate.sh gelöscht 2025-09-04 12:30:58 +00:00
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
alf
d842c55f59 .gitignore aktualisiert 2025-07-23 08:13:40 +00:00
Alf
2979870916 Merge branch 'main' of http://100.87.87.6:3000/alf/rettedpv
Kleinere Änderungen bei rettedpv.sh. Änderungen bei rotate.sh: Packen der Archivdateien.
2025-07-23 10:11:01 +02:00
Alf
01b271ed98 Mi 23. Jul 10:11:00 CEST 2025 2025-07-23 10:11:00 +02:00
alf
a2ac9acf5d README.md aktualisiert 2025-07-14 11:13:36 +00:00
Alf
c44c752bc9 Mo 14. Jul 13:05:56 CEST 2025 2025-07-14 13:05:56 +02:00
Alf
969e1b1089 Neu: Logrotate 2025-07-11 10:55:30 +02:00
Alf
b0f799e2d6 Merge branch 'main' of http://100.87.87.6:3000/alf/rettedpv
Pullern vor Pushern
2025-07-10 14:35:01 +02:00
Alf
3d39a6c36b Aufhübschungen 2025-07-10 14:34:02 +02:00
5 changed files with 51 additions and 20 deletions

7
.gitignore vendored Normal file
View File

@ -0,0 +1,7 @@
Archiv/
Backup/
log.txt
logrotate.status
*.gz
*.7z

View File

@ -1,4 +0,0 @@
Archiv/
Backup/
log.txt

BIN
Archiv.7z Normal file

Binary file not shown.

View File

@ -7,18 +7,18 @@ Dieses Skript sichert regelmäßig Daten aus einer Nextcloud-Quelle in ein lokal
- Synchronisiert ein Verzeichnis (`ptv-nextcloud:/DPV`) mit einem lokalen Ordner `./Backup/` - 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 - 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>` - 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 - Entfernt leere Verzeichnisse im Archiv
## 🧱 Verzeichnisstruktur ## 🧱 Verzeichnisstruktur
``` ```
. .
├── Backup/ # Aktueller Stand der Daten ├── Backup/ # Aktueller Stand der Daten
├── Archiv/ ├── Archiv/
│ └── 2025-07-03-15-30/ # Frühere Versionen │ └── 2025-07-03-15-30/ # Frühere Versionen
── log.txt # Laufendes Logfile ── rettedpv.sh # Das Backup-Script
└── dein-script.sh
``` ```
## 🚀 Cronjob-Eintrag (Beispiel) ## 🚀 Cronjob-Eintrag (Beispiel)
@ -39,9 +39,11 @@ Dieses Skript sichert regelmäßig Daten aus einer Nextcloud-Quelle in ein lokal
## 🔍 Logging & Fehlerbehandlung ## 🔍 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 - Fehler von `rclone` erscheinen dort mit Zeitstempel
- Leere Verzeichnisse im Archiv werden automatisch gelöscht - Leere Verzeichnisse im Archiv werden automatisch gelöscht
- Das optionale Script "rotate.sh" rotiert log.txt und verhindert, dass die Datei zu groß wird.
## 🛠 Wiederherstellung ## 🛠 Wiederherstellung

View File

@ -1,13 +1,39 @@
AArchiv="./Archiv/$(date +%Y-%m-%d-%H-%M)" #!/bin/bash
mkdir -p $AArchiv
echo " " >>log.txt cd $GIT_PFAD/rettedpv
echo " " >>log.txt
echo "$(date) Starte Rettung… " >>log.txt
rclone sync ptv-nextcloud:/DPV ./Backup/ -P --backup-dir=./$AArchiv --log-file="log.txt" --log-level=INFO
echo " " >>log.txt # === Konfiguration ===
echo "$(date) Lösche leere Verzeichnisse… " >>log.txt REMOTE="ptv-nextcloud:/DPV"
find Archiv/* -type d -empty -delete BACKUP_DIR="./Backup"
ARCHIVE_BASE="./Archiv"
LOGFILE="$GIT_PFAD/logger/Logs/rettedpv.log"
echo "$(date) Rettung beendet " >>log.txt 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"
# === Beginn der Sicherung ===
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_info " ERR nach rclone: $?"
# === Aufräumen leerer Archivverzeichnisse ===
log_info "🧹 Entferne leere Verzeichnisse in $ARCHIVE_BASE"
find "$ARCHIVE_BASE" -type d -empty -delete
# === Ende der Sicherung ===
log_info "✅ Datensicherung abgeschlossen."
gum style --border normal --margin "1" --padding "1 2" --foreground 212 "✅ Backup abgeschlossen!"