Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
de:backup:server [2022/03/04 20:11] – created dodi | de:backup:server [2022/10/24 08:24] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Server & Desktop | + | ====== Server & Desktop |
Die ersten Sicherungen werden eine Weile dauern. Die folgenden sind viel schneller, aber das hängt davon ab, wie viel geändert wurde. Es werden nur die Änderungen gespeichert. | Die ersten Sicherungen werden eine Weile dauern. Die folgenden sind viel schneller, aber das hängt davon ab, wie viel geändert wurde. Es werden nur die Änderungen gespeichert. | ||
Line 13: | Line 13: | ||
==== Abhängigkeiten ==== | ==== Abhängigkeiten ==== | ||
- | Das Skript | + | Das Skript |
< | < | ||
Line 27: | Line 27: | ||
</ | </ | ||
- | ==== Script | + | ==== Skript |
Füge deine Daten zu '' | Füge deine Daten zu '' | ||
Line 87: | Line 87: | ||
=== Ordner und Dateien ausschließen === | === Ordner und Dateien ausschließen === | ||
- | Dies ist ein Beispiel. Füge alles hinzu, was du nicht sichern möchtest. Und ändere den Wohnort | + | Dies ist ein Beispiel. Füge alles hinzu, was du nicht sichern möchtest. Und ändere den home '' |
< | < | ||
Line 111: | Line 111: | ||
===== borg ===== | ===== borg ===== | ||
- | <alert type=" | + | Folge zunächst |
- | + | ||
- | Folge zubächst | + | |
Die Snapshots werden über SSH gespeichert. | Die Snapshots werden über SSH gespeichert. | ||
+ | ==== Skript ==== | ||
+ | Vergiss nicht, zuerst das Borg Repo zu erstellen und dem Skript die Anmeldedaten hinzuzufügen. | ||
+ | < | ||
+ | borg init --encryption=keyfile-blake2 --make-parent-dirs ssh:// | ||
+ | </ | ||
+ | |||
+ | Füge deine ausgeschlossenen Ordner/ | ||
+ | |||
+ | < | ||
+ | #!/bin/sh | ||
+ | |||
+ | # Setting this, so the repo does not need to be given on the commandline: | ||
+ | export BORG_REPO=ssh:// | ||
+ | |||
+ | # See the section " | ||
+ | export BORG_PASSPHRASE=' | ||
+ | |||
+ | # some helpers and error handling: | ||
+ | info() { printf "\n%s %s\n\n" | ||
+ | trap 'echo $( date ) Backup interrupted >&2; exit 2' INT TERM | ||
+ | |||
+ | info " | ||
+ | |||
+ | # Backup the most important directories into an archive named after | ||
+ | # the machine this script is currently running on: | ||
+ | |||
+ | borg create | ||
+ | --verbose | ||
+ | --filter AMEhsx | ||
+ | --list | ||
+ | --stats | ||
+ | --progress | ||
+ | --verbose | ||
+ | --show-version | ||
+ | --show-rc | ||
+ | --compression zstd, | ||
+ | --exclude-caches | ||
+ | --exclude '/ | ||
+ | --exclude '/ | ||
+ | \ | ||
+ | ::' | ||
+ | /etc \ | ||
+ | /home \ | ||
+ | /root \ | ||
+ | /var \ | ||
+ | |||
+ | backup_exit=$? | ||
+ | |||
+ | info " | ||
+ | |||
+ | # Use the `prune` subcommand to maintain 7 daily, 4 weekly and 6 monthly | ||
+ | # archives of THIS machine. The ' | ||
+ | # limit prune' | ||
+ | # other machines' | ||
+ | |||
+ | borg prune \ | ||
+ | --list | ||
+ | --prefix ' | ||
+ | --show-rc | ||
+ | --keep-daily | ||
+ | --keep-weekly | ||
+ | --keep-monthly | ||
+ | --keep-yearly | ||
+ | |||
+ | prune_exit=$? | ||
+ | |||
+ | # use highest exit code as global exit code | ||
+ | global_exit=$(( backup_exit > prune_exit ? backup_exit : prune_exit )) | ||
+ | |||
+ | if [ ${global_exit} -eq 0 ]; then | ||
+ | info " | ||
+ | elif [ ${global_exit} -eq 1 ]; then | ||
+ | info " | ||
+ | else | ||
+ | info " | ||
+ | fi | ||
+ | |||
+ | exit ${global_exit} | ||
+ | </ | ||
===== Crontab - rsync und borg ===== | ===== Crontab - rsync und borg ===== | ||