restic-backup-suite: Konfiguration
Konfigurationsreferenz für restic-backup-suite: alle Schlüssel der config.sh mit Standardwerten, Repository-Beispiele, Backup-Pfade, Excludes, Retention und Integritätsprüfung.
Konfiguration
Alle Einstellungen stehen in einer Datei, die die Scripts als Bash-Code einlesen (source). Die Vorlage ist config.example.sh. Nach dem Installer liegt die Datei unter /etc/restic/config.sh.
Die Scripts suchen die Datei in dieser Reihenfolge:
--config <Datei>, falls angegebenconfig.shim Verzeichnis des Scripts/etc/restic/config.sh
Fehlt die Datei, brechen die Scripts mit Config file not found ab.
Die Datei enthält Pfade und Zugangsdaten-Verweise und wird als Code ausgeführt. Rechte 600, Eigentümer root. Siehe Sicherheit.
Schlüssel
Die Spalte "Wert in der Vorlage" nennt den Beispielwert aus config.example.sh. "Fallback im Code" gilt, wenn der Schlüssel in config.sh fehlt.
Restic
| Schlüssel | Bedeutung | Wert in der Vorlage | Fallback im Code |
|---|---|---|---|
RESTIC_PASSWORD_FILE |
Datei mit dem Repository-Passwort | /etc/restic/password.txt |
keiner |
RESTIC_REPOSITORY |
Repository-Adresse | sftp:myhost:/backup/restic |
keiner |
RESTIC_CACHE_DIR |
Cache-Verzeichnis von restic | ${HOME}/.cache/restic |
keiner |
GOMAXPROCS |
Anzahl der CPU-Kerne für restic (0 = alle laut Vorlage) | 2 |
keiner |
backup.sh exportiert alle vier Variablen in die Umgebung von restic. restore.sh und inspect.sh exportieren nur die ersten drei, GOMAXPROCS wirkt dort nicht. Die Shell-Aliase exportieren alle vier.
SFTP und SSH
Nur relevant, wenn RESTIC_REPOSITORY mit sftp: beginnt.
| Schlüssel | Bedeutung | Wert in der Vorlage |
|---|---|---|
SSH_HOST |
Alias, den restic in der Repository-Adresse verwendet | myhost |
SSH_HOSTNAME |
Echter Hostname oder IP | storage.example.com |
SSH_PORT |
SSH-Port | 22 |
SSH_USER |
Benutzer auf dem Zielserver | myuser |
SSH_KEY_FILE |
Privater Schlüssel | ${HOME}/.ssh/id_ed25519 |
SSH_KNOWN_HOSTS_FILE |
Ohne Wirkung, kein Script liest diesen Wert | ${HOME}/.ssh/known_hosts_backup |
Logging
| Schlüssel | Bedeutung | Wert in der Vorlage |
|---|---|---|
LOG_DIR |
Verzeichnis der Log-Dateien, wird bei Bedarf angelegt | /var/log/restic |
Backup-Umfang
| Schlüssel | Bedeutung | Wert in der Vorlage | Fallback im Code |
|---|---|---|---|
BACKUP_PATHS |
Array der zu sichernden Pfade | /var/www, /etc, /home |
leer |
BACKUP_EXCLUDES |
Array von Ausschluss-Mustern, je Eintrag ein --exclude |
*.log, */tmp/*, */cache/*, */.git/*, */node_modules/*, */vendor/* |
leer |
BACKUP_EXCLUDE_IF_PRESENT |
Verzeichnisse mit einer Datei dieses Namens werden übersprungen | .backupignore |
.backupignore |
Aufbewahrung und Prüfung
| Schlüssel | Bedeutung | Wert in der Vorlage | Fallback im Code |
|---|---|---|---|
RETENTION_KEEP_DAILY |
Anzahl täglicher Snapshots | 7 |
7 |
RETENTION_KEEP_WEEKLY |
Anzahl wöchentlicher Snapshots | 4 |
4 |
RETENTION_KEEP_MONTHLY |
Anzahl monatlicher Snapshots | 6 |
6 |
REPO_CHECK_SUBSET |
Anteil der Pack-Dateien, die nach dem Backup gelesen und geprüft werden | 5% |
5% |
Datenbanken
Siehe Datenbank-Dumps.
| Schlüssel | Bedeutung | Wert in der Vorlage |
|---|---|---|
MYSQL_BACKUP_ENABLED |
Native MySQL/MariaDB-Dumps aktivieren (true) |
false |
MYSQL_EXCLUDE_DBS |
Leerzeichen-getrennte Datenbanken, die nicht gedumpt werden | information_schema performance_schema mysql sys |
DOCKER_MARIADB_CONTAINERS |
Array, Format container:db_user:db_name[:passwort_env_var] |
leer |
DOCKER_POSTGRES_CONTAINERS |
Array, Format container:db_user:db_name |
leer |
Services stoppen
Siehe Services stoppen.
| Schlüssel | Bedeutung | Wert in der Vorlage | Fallback im Code |
|---|---|---|---|
SERVICES_TO_STOP |
Array von systemd-Services | leer | leer |
SERVICE_STOP_WAIT |
Sekunden Wartezeit nach dem Stoppen | 2 |
2 |
SERVICE_START_WAIT |
Sekunden Wartezeit nach dem Starten | 3 |
3 |
DOCKER_SERVICES_TO_STOP |
Array, Einträge /pfad/docker-compose.yml:service oder container-name |
leer | leer |
DOCKER_STOP_WAIT |
Sekunden Wartezeit nach dem Stoppen | 2 |
2 |
DOCKER_START_WAIT |
Sekunden Wartezeit nach dem Starten | 3 |
3 |
Monitoring
| Schlüssel | Bedeutung | Wert in der Vorlage | Fallback im Code |
|---|---|---|---|
SUCCESS_MARKER_FILE |
Pfad der Marker-Datei, die nach einem erfolgreichen Backup geschrieben wird. Ein leerer Wert schaltet sie nicht ab, er fällt auf den Fallback zurück | /var/backup/.last_restic_success |
/var/backup/.last_restic_success |
Siehe Monitoring.
Repository und Backends
restic-backup-suite reicht RESTIC_REPOSITORY unverändert an restic weiter. Beispiele aus der Vorlage:
| Backend | Beispiel |
|---|---|
| SFTP | sftp:myhost:/path/to/repo |
| Lokal | /mnt/backup/restic-repo |
| Amazon S3 | s3:s3.amazonaws.com/bucket-name |
| Backblaze B2 | b2:bucket-name:/path |
| REST-Server | rest:http://localhost:8000/ |
Nur bei sftp: schreibt das Backup eine SSH-Konfiguration und testet die Verbindung. Bei allen anderen Backends übernimmt restic selbst die Verbindung.
Zugangsdaten für Backends wie S3 oder B2 (zum Beispiel
AWS_ACCESS_KEY_ID) stehen nicht in der Vorlage. Die Konfigurationsdatei wird als Bash-Code eingelesen, Du kannst solche Variablen dort mitexportsetzen. Mitrestic-snapshotsund den anderen Aliasen funktioniert das ebenso, weil sie dieselbe Datei einlesen.
Was beim Backup tatsächlich an restic geht
Jeder Lauf ruft restic mit folgenden festen Optionen auf: --compression max, --exclude-caches, --one-file-system, --exclude-if-present <BACKUP_EXCLUDE_IF_PRESENT>, --verbose, --tag automated sowie je ein --exclude pro Eintrag in BACKUP_EXCLUDES.
--one-file-system: Eingehängte Dateisysteme unterhalb eines Backup-Pfads werden nicht mitgesichert. Gib solche Mountpunkte als eigenen Eintrag inBACKUP_PATHSan.--exclude-caches: Verzeichnisse mit einerCACHEDIR.TAGwerden übersprungen.- Das Verzeichnis mit den Datenbank-Dumps wird zusätzlich zu
BACKUP_PATHSgesichert.