76 lines
4.6 KiB
Markdown
76 lines
4.6 KiB
Markdown
# Übersicht der Docker- und Gitea-Skripte
|
|
|
|
## Hauptskripte
|
|
- **backup_docker.sh**: Erstellt ein vollständiges Backup aller Docker-Images, Volumes, Media/Staticfiles, Konfigurationsdateien und MariaDB-Dumps. Das Backup wird in einem Zeitstempel-Ordner unter `/home/thomas/backup_images/` abgelegt.
|
|
- **restore_docker.sh**: Stellt ein Backup aus einem Zeitstempel-Ordner komplett wieder her (Images, Volumes, DB-Dumps, Konfigs).
|
|
- **restore_menu.sh**: Interaktives Menü für alle Backup- und Restore-Funktionen (siehe unten).
|
|
|
|
## Einzelne_Restore_Scripte
|
|
Alle Einzelskripte für gezielte Sicherung und Wiederherstellung liegen in `/home/thomas/scripte/Einzelne_Restore_Scripte/`:
|
|
- **backup_db.sh**: Sichert gezielt einen Dump einer einzelnen Datenbank (Container).
|
|
- **backup_media.sh**: Sichert gezielt die Media-Dateien eines Projekts (webshop|ssv).
|
|
- **backup_staticfiles.sh**: Sichert gezielt die Staticfiles eines Projekts (webshop|ssv).
|
|
- **backup_image.sh**: Sichert gezielt ein Docker-Image.
|
|
- **backup_config.sh**: Sichert gezielt docker-compose.yml oder nginx.conf.
|
|
- **restore_db.sh**: Stellt gezielt den Dump einer einzelnen Datenbank (Container) wieder her.
|
|
- **restore_media.sh**: Stellt nur die Media-Dateien eines Projekts (webshop|ssv) wieder her.
|
|
- **restore_staticfiles.sh**: Stellt nur die Staticfiles eines Projekts (webshop|ssv) wieder her.
|
|
- **restore_image.sh**: Importiert gezielt ein Docker-Image aus einem Backup.
|
|
- **restore_config.sh**: Stellt gezielt docker-compose.yml oder nginx.conf wieder her.
|
|
|
|
## Wartungsscripte
|
|
Alle Wartungs- und Hilfsskripte liegen in `/home/thomas/scripte/Wartungsscripte/`:
|
|
- **docker_cleanup.sh**: Entfernt nicht mehr verwendete Docker-Objekte (Container, Images, Volumes) nach Bestätigung.
|
|
- **cleanup_old_backups.sh**: Löscht alle Backup-Ordner in `/home/thomas/backup_images/`, die älter als 14 Tage sind.
|
|
- **db_dump_single.sh**: Erstellt einen SQL-Dump einer einzelnen MariaDB im laufenden Container.
|
|
- **docker_logs.sh**: Zeigt die letzten 100 Zeilen der Logs eines angegebenen Containers an.
|
|
- **docker_status.sh**: Zeigt alle laufenden und gestoppten Docker-Container an.
|
|
|
|
## Git & Gitea Menü
|
|
- **git_gitea_menu.sh**: Interaktives Menü für lokale Git-Operationen und Gitea-API-Operationen.
|
|
- **Funktionen:**
|
|
- Repository klonen: Klont ein bestehendes Repo von Gitea oder einer anderen Quelle.
|
|
- Status anzeigen: Zeigt den aktuellen Git-Status im aktuellen Verzeichnis.
|
|
- Pull: Holt die neuesten Änderungen vom Remote-Repo.
|
|
- Push: Überträgt lokale Commits ins Remote-Repo.
|
|
- Branch wechseln: Wechselt oder erstellt einen Branch.
|
|
- Commit: Fügt Änderungen hinzu und erstellt einen Commit.
|
|
- Gitea: Repo-Liste anzeigen: Zeigt alle Repos des Users auf Gitea.
|
|
- Gitea: Neues Repo anlegen: Legt ein neues Repository auf Gitea an (Repo-Name wird validiert, Leerzeichen werden ersetzt).
|
|
- Gitea: Issue anzeigen: Zeigt ein Issue eines Repos an.
|
|
- Gitea: Issue erstellen: Erstellt ein neues Issue in einem Repo.
|
|
- **Folgen der Aktionen:**
|
|
- Repo anlegen: Das neue Repo erscheint sofort auf Gitea, kann geklont und genutzt werden.
|
|
- Issue erstellen: Das Issue ist sofort im Gitea-Webinterface sichtbar.
|
|
- Alle Aktionen sind sofort wirksam und können nicht rückgängig gemacht werden.
|
|
- Die Validierung verhindert ungültige Repo-Namen und sorgt für Kompatibilität mit Gitea.
|
|
- Mit "z" kann man jederzeit zurück ins Hauptmenü.
|
|
|
|
## Nutzung des Backup & Restore Menüs
|
|
Starte das Menü mit:
|
|
```bash
|
|
/home/thomas/scripte/restore_menu.sh
|
|
```
|
|
Dort kannst du alle Backup- und Restore-Funktionen bequem auswählen und ausführen. Im Menü gibt es jetzt auch einen Bereich für gezielte Sicherung einzelner Bereiche (DB, Media, Static, Image, Config). Die Zurück-Funktion ("z") ist überall verfügbar.
|
|
|
|
## Erweiterte Best Practice (empfohlen)
|
|
- **Offsite-Backup:**
|
|
- Backups werden automatisch auf ein externes System (z.B. NAS, Cloud) kopiert. Beispiel: WD MyCloud EX2 Ultra unter 192.168.178.100.
|
|
- **Benachrichtigung:**
|
|
- Nach jedem Backup/Restore kann eine E-Mail oder Slack-Nachricht über Erfolg oder Fehler verschickt werden.
|
|
- **Regelmäßiger Restore-Test:**
|
|
- Ein Test-Restore-Skript prüft regelmäßig, ob Backups erfolgreich wiederhergestellt werden können.
|
|
- **Versionsverwaltung der Skripte:**
|
|
- Die Skripte selbst werden in einem Git-Repository versioniert (z.B. auf deinem Gitea-Server), um Änderungen nachverfolgen zu können.
|
|
|
|
git remote add origin "$GITURL"
|
|
|
|
echo "Füge Dateien zum Commit hinzu..."
|
|
git add .
|
|
git status
|
|
|
|
read -p "Commit-Message: " MSG
|
|
[[ "$MSG" =~ ^[zZ]$ ]] && exit 0
|
|
|
|
echo "Erstelle Commit..."
|
|
git commit -m "$MSG" |