Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
admin_grundlagen:borgbackup [2022/12/03 07:54] ingo_wichmann angelegt |
admin_grundlagen:borgbackup [2024/08/08 15:29] (aktuell) ingo_wichmann [Restore] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | Features, die mir in Borg fehlen: | ||
+ | * Client kann Backups löschen, der append-only Mode auf dem Server löst das Problem nicht. [[https://packages.debian.org/bullseye/restic|restic]] kann das. | ||
+ | * der tar-export beim Wiederherstellen kann nicht mit ACLs, XATTRS und BSD-Flags umgehen. | ||
+ | |||
====== Backup Server ====== | ====== Backup Server ====== | ||
Voraussetzung: | Voraussetzung: | ||
Zeile 11: | Zeile 15: | ||
touch /srv/borg/.ssh/authorized_keys | touch /srv/borg/.ssh/authorized_keys | ||
chmod 600 /srv/borg/.ssh/authorized_keys | chmod 600 /srv/borg/.ssh/authorized_keys | ||
- | + | chown -R borg:borg /srv/borg | |
- | ====== Backup Node ====== | + | ====== Backup Client ====== |
Pakete: | Pakete: | ||
* Debian (11): ''borgbackup'' | * Debian (11): ''borgbackup'' | ||
Zeile 18: | Zeile 22: | ||
===== SSH Schlüsselpaar ===== | ===== SSH Schlüsselpaar ===== | ||
SSH Schlüsselpaar erzeugen: | SSH Schlüsselpaar erzeugen: | ||
- | ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_borgbackup -C 'borgbackup node1' | + | 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. | Public-Key auf dem Backup Server in der Datei ''/srv/borg/.ssh/authorized_keys'' hinterlegen. | ||
- | ===== Archiv anlegen ====== | + | ===== Backup Repository anlegen ====== |
als Benutzer root: | als Benutzer root: | ||
- | borg --rsh='ssh -i ~/.ssh/id_ed25519_borgbackup' init --encryption none borg@backupserver.example.org:/srv/borg/node1.example.org | + | 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 ===== | ==== Archiv anzeigen ===== | ||
- | borg --rsh='ssh -i ~/.ssh/id_ed25519_borgbackup' list borg@backupserver.example.org:/srv/borg/node1.example.org | + | borg list |
+ | (ist jetzt noch leer) | ||
===== ssh Zugang einschränken ===== | ===== ssh Zugang einschränken ===== | ||
Zeile 35: | Zeile 42: | ||
===== Backup erzeugen ===== | ===== Backup erzeugen ===== | ||
- | borg --rsh='ssh -i ~/.ssh/id_ed25519_borgbackup' create -x --compression zstd --numeric-owner borg@backup-brahma.lxht.de:/srv/borg/brahma.kramskrims.de::brahma-{now:%Y-%m-%d} / | + | borg create -x --compression zstd --numeric-ids ::client1-{now:%Y-%m-%d} / |
+ | |||
+ | ==== als Cronjob ==== | ||
+ | <file crontab /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} / | ||
+ | </file> | ||
+ | |||
+ | ===== 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 [[https://packages.debian.org/bullseye/borgmatic|borgmatic]] ersetzen. | ||
+ | |||