Markus Michalski FAQ

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.

English Version

Zurück zur Übersicht


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:

  1. --config <Datei>, falls angegeben
  2. config.sh im Verzeichnis des Scripts
  3. /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 mit export setzen. Mit restic-snapshots und 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.