open:it:backup
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
open:it:backup [2024/08/07 10:18] – [Scripte] Kai | open:it:backup [2024/10/16 20:07] (aktuell) – [Schlüssel tauschen] Kai | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
Hier werden zwei unterschiedliche Konzepte diskutiert. \\ | Hier werden zwei unterschiedliche Konzepte diskutiert. \\ | ||
BorgBackup ist eine einfache OSS Lösung um zum Beispiel eine Remote-Storagebox (hier von Hetzner) als Speichermedium zu nutzen. Man muss sich jedoch auch bewusst sein, dass durch Borg jede Datei genau einmal gespeichert wird. Sollte eine Datei z.B. durch einen Festplattenfehler beschädigt sein, ist diese in allen Backups beschädigt. Deshalb gehört es zum Best Practice sehr wichtige Daten in mehr als einem Repository zu speichern! \\ | BorgBackup ist eine einfache OSS Lösung um zum Beispiel eine Remote-Storagebox (hier von Hetzner) als Speichermedium zu nutzen. Man muss sich jedoch auch bewusst sein, dass durch Borg jede Datei genau einmal gespeichert wird. Sollte eine Datei z.B. durch einen Festplattenfehler beschädigt sein, ist diese in allen Backups beschädigt. Deshalb gehört es zum Best Practice sehr wichtige Daten in mehr als einem Repository zu speichern! \\ | ||
- | Neben Borg wird ein mit eigenen Scripten erstelltes Backup vorgestellt, | + | Neben Borg wird ein mit eigenen Scripten erstelltes Backup vorgestellt, |
===== BorgBackup ===== | ===== BorgBackup ===== | ||
Zeile 23: | Zeile 23: | ||
sudo apt install borgbackup | sudo apt install borgbackup | ||
- | Key generieren (sofern nicht bereits vorhanden) und auf Storage-Box übertragen, | + | ==== Schlüssel tauschen ==== |
+ | Key generieren (sofern nicht bereits vorhanden) und auf Storage-Box übertragen, | ||
ssh-keygen -t rsa -b 4096 | ssh-keygen -t rsa -b 4096 | ||
Zeile 45: | Zeile 46: | ||
ssh -p23 u123456@u123456.your-storagebox.de mkdir -p backups/ | ssh -p23 u123456@u123456.your-storagebox.de mkdir -p backups/ | ||
- | Backup-Ordner auf der Storage-Box initialisieren | + | Backup-Ordner auf der Storage-Box initialisieren. Passwort |
borg init --encryption=repokey ssh:// | borg init --encryption=repokey ssh:// | ||
Zeile 68: | Zeile 69: | ||
Liste Dateien eines Backups in eine Text-Datei schreiben | Liste Dateien eines Backups in eine Text-Datei schreiben | ||
borg list ssh:// | borg list ssh:// | ||
+ | |||
+ | Optionen: nur Pfad und Dateiname, sortiert | ||
+ | borg list --short ssh:// | ||
==== Daten wiederherstellen ==== | ==== Daten wiederherstellen ==== | ||
Zeile 100: | Zeile 104: | ||
# | # | ||
## Setzten von Umgebungsvariablen | ## Setzten von Umgebungsvariablen | ||
- | ## falls nicht der Standard SSH Key verwendet wird können Sie hier den Pfad zu Ihrem private Key angeben | + | ## Pfad zu Ihrem private Key, falls nicht der Standard SSH Key verwendet wird |
export BORG_RSH=' | export BORG_RSH=' | ||
- | ## Damit das Passwort | + | ## Passwort |
- | export BORG_PASSPHRASE=" | + | ## Andernfalls würde |
+ | export BORG_PASSPHRASE=" | ||
+ | ## This has to be set when the repository has been created by user and the script is called by cron | ||
+ | export BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes | ||
| | ||
## Setzten von Variablen | ## Setzten von Variablen | ||
Zeile 109: | Zeile 116: | ||
export BACKUP_USER=' | export BACKUP_USER=' | ||
export REPOSITORY_DIR=' | export REPOSITORY_DIR=' | ||
- | ## Hier Struktur für den Hetzner-Serrver | + | ## Hier Struktur für den Hetzner-Server |
export REPOSITORY=" | export REPOSITORY=" | ||
| | ||
Zeile 118: | Zeile 125: | ||
echo "###### | echo "###### | ||
| | ||
- | ## An dieser Stelle können verschiedene Aufgaben vor der Übertragung der Dateien ausgeführt werden, wie z.B. | + | ## An dieser Stelle können verschiedene Aufgaben vor der Übertragung der Dateien ausgeführt werden, |
+ | ## wie z.B. | ||
## - Liste der installierten Software erstellen | ## - Liste der installierten Software erstellen | ||
## - Datenbank Dump erstellen | ## - Datenbank Dump erstellen | ||
Zeile 124: | Zeile 132: | ||
## Dateien ins Repository übertragen | ## Dateien ins Repository übertragen | ||
## Gesichert werden hier beispielsweise die Ordner root, etc, var/www und home | ## Gesichert werden hier beispielsweise die Ordner root, etc, var/www und home | ||
- | ## Ausserdem finden Sie hier gleich noch eine Liste Excludes, | + | ## Ausserdem finden Sie hier gleich noch eine Liste Excludes, |
+ | ## somit per default ausgeschlossen werden. | ||
| | ||
echo " | echo " | ||
Zeile 153: | Zeile 162: | ||
0 0 * * * root / | 0 0 * * * root / | ||
- | Hier Start täglich um 0:00 Uhr | + | Hier Start täglich um 0:00 Uhr.\\ |
- | + | **Voraussetzungen**: | |
- | Voraussetzung: das ausführende System muss zu der angegebenen Zeit in Betrieb sein. Der Job wird nicht bei einem späteren Einschalten nachgeholt! | + | * das ausführende System muss zu der angegebenen Zeit in Betrieb sein. Der Job wird nicht bei einem späteren Einschalten nachgeholt! |
+ | * Wenn das Script durch root ausgeführt werden soll, für die Sicherung von Systemdateien vermutlich erforderlich, | ||
=== Anacronjob === | === Anacronjob === | ||
Zeile 216: | Zeile 226: | ||
Ersetzen: SOURCE, < | Ersetzen: SOURCE, < | ||
Leerzeichen am Ende der SOURCE! \\ | Leerzeichen am Ende der SOURCE! \\ | ||
+ | === Inhalt gepackter Dateien anzeigen === | ||
+ | tar -tvf backup_gepackt.tar.gz | ||
+ | |||
+ | Inhaltsverzeichnis in Datei schreiben | ||
+ | tar -tvf backup_gepackt.tar.gz > content.txt | ||
+ | |||
+ | === Dateien entpacken === | ||
Entpacken (in aktuelles Verzeichnis): | Entpacken (in aktuelles Verzeichnis): | ||
tar -xf backup_gepackt.tar.gz | tar -xf backup_gepackt.tar.gz | ||
Zeile 230: | Zeile 247: | ||
Das System sichert regelmäßig((Zyklus definiert durch / | Das System sichert regelmäßig((Zyklus definiert durch / | ||
<WRAP important> | <WRAP important> | ||
- | Der Speicherbedarf wächst durch dieses System kontinuierlich(( | + | Der Speicherbedarf wächst durch dieses System kontinuierlich((in dem Rahmen, in dem es Änderungen am Datenbestand gab)). \\ |
Ältere Dateien müssen daher regelmäßig manuell gelöcht oder verschoben werden. \\ | Ältere Dateien müssen daher regelmäßig manuell gelöcht oder verschoben werden. \\ | ||
In keinem Fall sollte ein Backup auf der System-Partition gesichert werden, da dieses, sollte der Speicherplatz restlos verbraucht sein, ggf. unbrauchbar oder unausführbar werden könnte. \\ | In keinem Fall sollte ein Backup auf der System-Partition gesichert werden, da dieses, sollte der Speicherplatz restlos verbraucht sein, ggf. unbrauchbar oder unausführbar werden könnte. \\ | ||
Zeile 330: | Zeile 347: | ||
Auch hier ist die Automation über einen Cronjob möglich, siehe [[#Backup ausführen|Backup ausführen]]. \\ | Auch hier ist die Automation über einen Cronjob möglich, siehe [[#Backup ausführen|Backup ausführen]]. \\ | ||
- | ~~DISCUSSION~~ | + |
open/it/backup.1723018682.txt.gz · Zuletzt geändert: 2024/08/07 10:18 von Kai