Inhaltsverzeichnis

Features, die mir in Borg fehlen:

Backup Server

Voraussetzung:

Pakete:

Benutzer anlegen

useradd -rmd /srv/borg -s /bin/sh -p '*' borg
mkdir -m 700 /srv/borg/.ssh
touch /srv/borg/.ssh/authorized_keys
chmod 600 /srv/borg/.ssh/authorized_keys
chown -R borg:borg /srv/borg

Backup Client

Pakete:

SSH Schlüsselpaar

SSH Schlüsselpaar erzeugen:

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_borgbackup -C 'borgbackup client1'

Public-Key auf dem Backup Server in der Datei /srv/borg/.ssh/authorized_keys hinterlegen.

Backup Repository anlegen

als Benutzer root:

export BORG_REPO='borg@backupserver.example.org:/srv/borg/client1.example.org'
export BORG_RSH='ssh -i ~/.ssh/id_ed25519_borgbackup'
borg init --encryption none

Archiv anzeigen

borg list

(ist jetzt noch leer)

ssh Zugang einschränken

/srv/borg/.ssh/authorized_keys
command="borg serve --restrict-to-path /srv/borg",restrict ssh-ed25519 AAAA…

Backup erzeugen

borg create -x --compression zstd --numeric-ids ::client1-{now:%Y-%m-%d} /

als Cronjob

/etc/cron.d/borgbackup
BORG_REPO='borg@backupserver.example.org:/srv/borg/client1.example.org'
BORG_RSH='ssh -i ~/.ssh/id_ed25519_borgbackup'
 
13 23 * * * root borg create -x --compression zstd --numeric-ids ::client1-{now:\%Y-\%m-\%d} /

Restore

Backup auf einem anderen Rechner wiederherstellen.

Zugriff auf den Borg-Server mit dem aktuellen Benutzer:

export BORG_REPO='backupserver.example.org:/srv/borg/client1.example.org'

borg auf dem Server als Benutzer borg ausführen:

export BORG_REMOTE_PATH='sudo -u borg borg'

Backups anzeigen:

borg list
borg list ::client1-2024-08-08

Daten aus Backup wiederherstellen:

mkdir /tmp/restore
cd /tmp/restore
borg extract --progress ::client1-2022-12-03

Wie gehts weiter?

Wenn das alles geklappt hat, dann gleich noch mal von vorne ohne –encryption none. Schlüssel gut aufbewahren!

Und den cronjob durch borgmatic ersetzen.