Files
2026-06-07 20:02:33 +02:00

56 lines
1.7 KiB
Markdown

# Docker Backup SFTP Uploader
Dieses Repository enthält ein Bash-Script, das ein Docker-Compose-Projekt kurz stoppt, das Projektverzeichnis als `tar.gz` archiviert, das Archiv per SFTP hochlädt und optional eine Status-Mail verschickt.
## Nutzung
Voraussetzungen auf dem Server:
- `docker` mit Compose-Plugin
- `tar` und `gzip`
- `sshpass` und `sftp`
- optional `mail` für Status-Mails
```bash
chmod +x docker-backup-sftp-uploader.sh
./docker-backup-sftp-uploader.sh
```
Die Konfiguration liegt in `docker-backup-sftp-uploader.conf` neben dem Script:
```bash
SFTP_HOST="backup.example.com"
SFTP_PORT="22"
SFTP_USER="backup-user"
SFTP_PASS="secret"
SFTP_REMOTE_DIR="/uploads"
MAIL_TO="admin@example.com"
MAIL_FROM="backup@example.com"
BACKUP_DIR="/srv/backups/docker-backup-sftp-uploader"
LOG_DIR="/srv/backups/docker-backup-sftp-uploader/logs"
KEEP_LOCAL_BACKUP="false"
MIN_FREE_MB="1024"
```
Danach reicht:
```bash
./docker-backup-sftp-uploader.sh
```
Falls eine andere Konfigurationsdatei genutzt werden soll:
```bash
CONFIG_FILE="/etc/docker-backup-sftp-uploader.conf" ./docker-backup-sftp-uploader.sh
```
## Wichtige Hinweise
- Archive und Logs werden nicht mehr in `/tmp` geschrieben. Standard ist ein Backup-Ordner neben dem Projektverzeichnis.
- Vor dem Stoppen von Docker prüft das Script, ob am Backup-Ziel genug Speicher frei ist.
- Bei Fehlern versucht das Script, Docker wieder zu starten.
- Der Upload erfolgt zuerst als `.part`-Datei und wird nach erfolgreichem Transfer auf den finalen Namen umbenannt.
- Mailversand ist nur aktiv, wenn `MAIL_TO` gesetzt ist und das System ein funktionierendes `mail`-Kommando besitzt.
Weitere Details stehen in [docs/README.md](docs/README.md).