BorgBackup (Debian)

Aus MattWiki

Dieser Artikel beschäftigt sich damit, wie man in Debian mit BorgBackup Backups erstellt und was es zu beachten gibt.

Quellen:

Der Artikel bezieht sich auf Debian 12.10 mit BorgBackup 1.2.4 Client- und Serverseitig.

Installation

# apt-get install borgbackup

Sudo und Superuser (Debian) nicht vergessen

Backup Repository lokal initiieren

Zunächst muss ein Repository initiiert werden, z. B. auf der lokalen Maschine:

borg init --encryption=none|repokey|keyfile /path/to/repo

Defaultmäßig wird --encryption=repokey verwendet. Dabei wird das Keyfile mit einem Passwort versehen und im Repository gespeichert. Dadurch ist für eine Wiederherstellung nur das Passwort für das Keyfile notwendig.

Mit --encryption=keyfile wird das Keyfile auf der lokalen Maschine im Verzeichnis ~/.config/borg/keys/ gespeichert und ebensho mit einem Passwort gesichert wird.

Die Verschlüsselung kann mit --encryption=none deaktiviert werden.

Initiierung eines Repository auf einer entfernten Maschine:

Backup Repository Remote initiieren

Können auf zwei Arten angelegt werden:

sshfs

oder mit Borg auf dem Remote-Repository installiert.

Beispiel für absoluten Pfad auf der Remote-Maschine:

borg init ssh://server.domain.tld:port/absolute_path/to/repo
borg init ssh://user@server.domain.tld:port/absolute_path/to/repo

Beispiel für relativen Pfad auf der Remote-Maschine:

borg init ssh://server.domain.tld:port/./relative_path/to/repo

Backup erstellen

Beim erstellen eines Backups wird ein neues Archiv in einem Repository erstellt. Der Archivname und die zu archivierenden Daten müssen angegeben werden:

borg create -s -v --list /path/to/repo::my-files \
     ~/Documents                                 \
     ~/src                                       \
     --exclude '*.pyc'
borg create -s --progress /path/to/repo::my-files \
     ~/Documents                                  \
     ~/src                                        \
     --exclude /path1                             \
     --exclude '*.pyc'

-s Stats

--progress Aktuellen Fortschritt mit anzeigen

--list Liste der Dateien ausgeben

Sinnvoll bei großen Uploads:

To limit upload (i.e. borg create) bandwidth, use the --upload-ratelimit

Informationen über Backupinhalte

borg list REPOSITORY                           # List archives in REPOSITORY
borg list REPO::ARCHIVE                        # List contents of ARCHIVE in REPO
borg list ssh://user@server:port/PATHTOREPO    # List contents of remote REPOSITORY via SSH
borg info REPO::ARCHIVE                        # Show details for ARCHIVE such as time and size
borg info ssh://user@server:port/REPO::ARCH    # Show details for ARCHIVE such as time and size                      
                                               # from remote REPOSITORY accessed via SSH

Backup wiederherstellen

borg extract --info REPO::ARCHIVE              # extract ARCHIVE to current directory with debug level info / verbose (-v) 
borg extract --list REPO::ARCHIVE              # extract ARCHIVE to current directory with verbose list
borg extract --list -n REPO::ARCHIVE           # dry-run ARCHIVE to current directory with verbose list 
borg extract --list --dry-run REPO::ARCHIVE    # dry-run with verbose list 

Archiv mounten

Ein Archiv kann ins Dateisystem gemountet werden.

Verzeichnis erstellen und gesamtes Repository mounten:

mkdir ~/borgmount
borg mount REPO ~/borgmount

Alternativ kann auch ein einzelnes Archiv gemountet werden:

borg mount REPO::ARCHIVE

Unmounten:

borg umount ~/borgmount

Key export und import

Export auf Papier:

borg key export --paper /path/to/repo /export/to/path

Import von Papier:

borg key import --paper /path/to/repo /import/from/path

.