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/02 09:26] – [Scripte] k@i | open:it:backup [2025/05/13 09:28] (aktuell) – k@i | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Backup ====== | ====== Backup ====== | ||
| - | Hier werden zwei unterschiedliche Konzepte | + | Hier werden zwei unterschiedliche Konzepte |
| - | BorgBackup ist eine OSS Lösung, die sehr gut funktioniert und zum Beispiel eine Remote-Storagebox (hier von Hetzner) als Speichermedium nutzen | + | BorgBackup ist eine einfache |
| - | Neben Borg wird ein mit eigenen Scripten erstelltes Backup vorgestellt, | + | Neben Borg wird ein mit eigenen Scripten erstelltes Backup vorgestellt, |
| ===== BorgBackup ===== | ===== BorgBackup ===== | ||
| - | [[https:// | + | ++++ Quellen: | |
| - | Die Deduplizierung sorgt bei Borg Backups für einen sehr effizienten Speicherverbrauch und hohe Geschwindigkeit. \\ | + | |
| - | + | ||
| - | Quellen & Tutorials: | + | |
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | ++++ | ||
| + | [[https:// | ||
| + | Die Deduplizierung sorgt bei Borg Backups für einen sehr effizienten Speicherverbrauch und hohe Geschwindigkeit. \\ | ||
| + | |||
| Bei diesem Beispiel wurde ein externe Storage-Box von Hetzner eingesetzt (your-storagebox.de). Der User u123456 muss entsprechend Vorgaben der Storage-Box angepasst werden. \\ | Bei diesem Beispiel wurde ein externe Storage-Box von Hetzner eingesetzt (your-storagebox.de). Der User u123456 muss entsprechend Vorgaben der Storage-Box angepasst werden. \\ | ||
| Soll das Backup auf einem lokalen Laufwerk oder Verzeichnis gesichert werden, ist der Pfad: | Soll das Backup auf einem lokalen Laufwerk oder Verzeichnis gesichert werden, ist der Pfad: | ||
| Zeile 22: | 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 44: | 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 67: | 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 77: | Zeile 82: | ||
| borg extract ssh:// | borg extract ssh:// | ||
| - | ==== Backups löschen ==== | + | ==== Backups |
| - | Backups | + | Backups |
| borg list ssh:// | borg list ssh:// | ||
| Zeile 86: | Zeile 91: | ||
| Alle Backups zu einem Server/PC löschen (hier mctest) | Alle Backups zu einem Server/PC löschen (hier mctest) | ||
| borg delete ssh:// | borg delete ssh:// | ||
| + | |||
| + | ==== Backups auomatisiert löschen ==== | ||
| + | Damit der Speicherplatz mit der Zeit nicht verbraucht wird, sollten regelmäßig, | ||
| + | |||
| + | borg prune --dry-run -v --list --keep-within=1d --keep-daily=7 --keep-weekly=4 --keep-monthly=12 ssh:// | ||
| + | |||
| + | Dieser Befehl (mit --dry-run) zeigt die Backups/ | ||
| + | Bedingungen in diesem Beispiel: 7 aus den letzten Tagen, 4 der letzten Wochen und 12 der letzten Monate. \\ | ||
| + | Das System identifiziert dies automatisch. \\ | ||
| + | |||
| + | Pfad und Zugangsdaten anpassen. \\ | ||
| + | O.a. Code führt nur einen Trockenlauf aus. \\ | ||
| + | Scharfschaltung: | ||
| + | |||
| + | Freigeben des nicht mehr benötigten Speicherplatzes: | ||
| + | borg compact ssh:// | ||
| + | |||
| ==== Backup automatisieren ==== | ==== Backup automatisieren ==== | ||
| Zeile 99: | Zeile 121: | ||
| # | # | ||
| ## 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 108: | Zeile 133: | ||
| 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 117: | Zeile 142: | ||
| 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 123: | Zeile 149: | ||
| ## 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 143: | Zeile 170: | ||
| echo "###### | echo "###### | ||
| - | Ausführbar machen | + | === Cronjob einrichten === |
| + | Datei Ausführbar machen | ||
| sudo chmod u+x / | sudo chmod u+x / | ||
| - | Testen | + | ggf. Testen |
| sudo / | sudo / | ||
| - | |||
| Einfügen in crontab | Einfügen in crontab | ||
| sudo nano / | sudo nano / | ||
| 0 0 * * * root / | 0 0 * * * root / | ||
| - | Hier Start täglich um 0:00 Uhr | + | Hier Start täglich um 0:00 Uhr.\\ |
| + | **Voraussetzungen**: | ||
| + | * 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 === | ||
| + | Läuft ein System | ||
| + | Zur Verfügung stehen die Zyklen: | ||
| + | * täglich >> Ordner / | ||
| + | * wöchentlich >> Ordner / | ||
| + | * monatlich >> Ordner / | ||
| + | Die ausführbahren Scripte müssen in den entsprechenden Ordnern liegen. | ||
| ===== Selbst programmiertes, | ===== Selbst programmiertes, | ||
| - | Siehe auch: https:// | + | ++++ Quellen: | |
| + | * https:// | ||
| + | ++++ | ||
| Die vorgestellten Scripte sichern regelmäßig und automatisiert ausgewählte Dateien in gepackten Datein. \\ | Die vorgestellten Scripte sichern regelmäßig und automatisiert ausgewählte Dateien in gepackten Datein. \\ | ||
| Zeile 204: | Zeile 243: | ||
| 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 218: | Zeile 264: | ||
| 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 273: | Zeile 319: | ||
| umount " | umount " | ||
| exit | exit | ||
| - | |||
| ==== Backup ausführen ==== | ==== Backup ausführen ==== | ||
| Zeile 298: | Zeile 343: | ||
| Voraussetzung: | Voraussetzung: | ||
| - | Läuft der PC nicht dauerhaft, | + | Andernfalls |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| ==== Daten von Remote-System holen ==== | ==== Daten von Remote-System holen ==== | ||
| Zeile 321: | Zeile 364: | ||
| 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.1722583560.txt.gz · Zuletzt geändert: von k@i
