scripte/SKRIPTE_INFO.md

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"