Guten Abend, ich habe hier ein kleines Backup Script geschrieben, das mir jetzt schon eine Weile gute Dienste geleistet hat. Es läuft unter bash, setzt auf tar und seinem incremental backup feature. Die Idee war, etwas leicht durchschaubares, leicht an die eigenen Bedürfnisse anpassbares zu haben. Es besteht aus einem backup und einem restore script. restore habe ich tatsächlich noch nicht wirklich eingesetzt - wer das ganze produktiv einsetzten will, sollte vielleicht ein bisschen mit ein paar Testdateien spielen. Zu schade, das es in der Schublade versauert. Vielleicht kann es jemand brauchen. Wenn jemand Fragen hat, gerne her damit. Und Bugs, die ganz sicher existieren, auch gerne an mich! Schöne Grüße, Flo
# right now, tar stores all directories even if the files inside are unchanged and not stored! # that is shitty, because it wastes a lot of space.. havent find a workaround right now.. Wie wäre es mit rsync oder borg?
:
Bearbeitet durch User
Kevin M. schrieb: > # right now, tar stores all directories even if the files inside are > unchanged and not stored! > # that is shitty, because it wastes a lot of space.. havent find a > workaround right now.. Tatsächlich, diesen Kommentar habe ich geschrieben.. ist schon ein paar Jahre her. Es fällt mir gar nicht so leicht zu glauben, daß das wirklich so ist. Wobei man dazusagen muss, daß der Platzverbrauch für einen Directory-Eintrag nicht so hoch ist. Die nicht veränderten Dateien werden ja nicht gespeichert..
... schrieb: > Ich benutze restic seit längerem und find es klasse Danke, kannte ich nicht! Sieht vielversprechend aus! Kevin M. schrieb: > Wie wäre es mit rsync rsync erstellt halt einen kompletten gespiegelten Verzeichnisbaum. Das wollte ich nicht. Sondern eine Backupdatei, die komprimiert ist und die ich dann abheften kann..
Dem kann ich mich nur anschließen
>Ich benutze restic seit längerem und find es klasse
Als root:
mount /dev/sdX /mnt/sdX # Externe Disk mounten
mkdir -p /mnt/sdcX/BCKZBOOK # Archive-Bereich auf ext.
Disk festlegen
restic -p /dev/shm/p.txt -r /mnt/sdc/BCKZBOOK init # Bereich mit
restict initialisieren
restic -p /dev/shm/p.txt -r /mnt/sdc/BCKZBOOK --verbose backup
/home/mw/Bilder # Backup erstellen
Das File /dev/shm/p.txt hält temporär des Backup Passwort, damit es
verschlüsselt wird.
Nach erfolgtem Backup ein check aufs Archive
restic -p /dev/shm/p.txt -r /mnt/sdc/BCKZBOOK --verbose check
Und eine Liste mit den Snapshots als Fiel um später zu wissen, wann man
was gebackupt hat!
restic -p /dev/shm/p.txt -r /mnt/sdc/BCKZBOOK snapshots >
restic_bck_mwzb17_snapshots_ssd2_20210614.txt
Fertig
Wenn man mal ein Backup abgebrochen hat, kann man den kaputen Inhalt
mit dem u.g. Kommando bereinigen.
restic -p /dev/shm/p.txt -r /mnt/sdc/BCKZBOOK --verbose prune
repository 31258ccd opened successfully, password is correct
loading indexes...
loading all snapshots...
finding data that is still in use for 279 snapshots
[0:56] 100.00% 279 / 279 snapshots
searching used packs...
collecting packs for deletion and repacking
will remove pack 5b8e2452 as it is unused and not indexed
...
Für restict muss eine go Installation vorhanden sein.
Wie man die Backups wieder zurückholt (ganz oder Dateiweise) ist
eine man page Fleißarbeit ;-)
Markus
:
Bearbeitet durch User
Borg komprimiert und dedupliziert die Daten automatisch. Bei Bedarf kann man das Backup auch verschlüsseln. Außerdem kümmert es sich automatisch im das löschen alter Archive. Das lässt sich vermutlich sogar Recht leicht in deinem Skript einbauen. Man hat halt nicht eine Datei sondern einen Ordner mit den Archiven und bisschen was drum Rum, aber ob man jetzt einen Ordner oder eine Datei speichert ist ja eigentlich egal.
Flo G. schrieb: > Es fällt mir gar nicht so leicht zu glauben, daß das wirklich so ist. > Wobei man dazusagen muss, daß der Platzverbrauch für einen > Directory-Eintrag nicht so hoch ist. Wenn du bei einem inkrementellen Backup alles nacheinander zurückspielst, hast du anschließend auch Files wieder an Bord, die längst gelöscht waren. Um das zu vermeiden, kannst du bei jeder Directory eine Liste der zu diesem Zeitpunkt vorhandenen Inhalte mitführen und beim Restore überzählige Files und Dirs von Disk löschen.
-gb- schrieb: > zfs send > Und > zfs recv Ich bin zwar auch ein Fan von ZFS aber ich würde vermuten, dass dass nicht so viele im Privatbereich nutzen :D
:
Bearbeitet durch User
Peter Pan schrieb: > Wozu das Rad neu erfinden? Ist nicht wirklich in Rad, eher ein Gehstock: ist einfach, braucht nur Tar und sonst nichts. Für mich persönlich ist wichtig, daß es unkompliziert und möglichst wenig Magie unter der Haube hat. Einfach damit ich auch nach Jahren die Funktionsweise sofort nachvollziehen kann. Aber ich habe gar nichts gegen die genannten Backuptools. Da sind einige wirklich sehr brauchbare dabei. Hätte ich die gekannt, dann hätte ich vermutlich davon eins benutzt.
Um noch ein Tool in die Sammlung zu geben: Burp https://burp.grke.org Hat einen Client und eine Server-Komponente und kann dadurch auf Backups isolieren, also bei richtiger Konfiguration kommt der Client an einmal erstellte Backups nicht mehr ran. Hab damit gute Erfahrungen gemacht, wenn man ohnehin eine NAS hat. Weiterer Pluspunkt: Geht für Linux wie auch Windows als Client.
Flo G. schrieb: > Ist nicht wirklich in Rad, eher ein Gehstock: ist einfach, braucht nur > Tar und sonst nichts. Für mich persönlich ist wichtig, daß es > unkompliziert und möglichst wenig Magie unter der Haube hat. Einfach > damit ich auch nach Jahren die Funktionsweise sofort nachvollziehen > kann. Ich nutze auch sehr gerne tar, meine Scripte sind noch kürzer
1 | #!/bin/bash
|
2 | echo
|
3 | echo ' ***** ERST-Datensicherung auf /media/xxxxx/bak1 *****' |
4 | echo ' ***** Paierkorb geleert ? *****' |
5 | echo
|
6 | rm -R /home/xxxxx/.cache |
7 | rm -R /home/xxxxx/.thumbnails |
8 | rm -R /home/xxxxx/.local/share/Trash |
9 | cd /media/xxxxx/bak1/
|
10 | jetzt=$(date +%y%m%d-%H%M) |
11 | sudo tar -g filelist -cvpjf backup-$jetzt.tar.bzip2 ~/ |
und (ohne meine VMs, die werden von einem anderes Script gesichert)
1 | #!/bin/bash
|
2 | echo
|
3 | echo ' ***** FOLGE-Datensicherung auf /media/xxxxx/bak1 *****' |
4 | echo ' ***** keine virtuellen Maschinen *.vdi *****' |
5 | echo ' ***** Paierkorb geleert ? *****' |
6 | echo
|
7 | rm -R /home/xxxxx/.cache |
8 | rm -R /home/xxxxx/.thumbnails |
9 | rm -R /home/xxxxx/.local/share/Trash |
10 | cd /media/xxxxx/bak1/
|
11 | jetzt=$(date +%y%m%d-%H%M) |
12 | sudo tar --exclude=*.vdi -g filelist -cvpjf backup-$jetzt.tar.bzip2 ~/ |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.