56 lines
1.7 KiB
Markdown
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).
|