Forum: Projekte & Code Backup script


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Flo G. (flolix)


Angehängte Dateien:

Lesenswert?

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

von Kevin M. (arduinolover)


Lesenswert?

# 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
von ... (Gast)


Lesenswert?

Ich benutze restic seit längerem und find es klasse

von Flo G. (flolix)


Lesenswert?

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..

von Flo G. (flolix)


Lesenswert?

... 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..

von Markus W. (dl8mby)


Lesenswert?

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
von Kevin M. (arduinolover)


Lesenswert?

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.

von -gb- (Gast)


Lesenswert?

zfs send
Und
zfs recv

von (prx) A. K. (prx)


Lesenswert?

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.

von Kevin M. (arduinolover)


Lesenswert?

-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
von Peter Pan (Gast)


Lesenswert?

https://www.duplicati.com/

Wozu das Rad neu erfinden?

von Flo G. (flolix)


Lesenswert?

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.

von Sven S. (boldie)


Lesenswert?

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.

von tar (Gast)


Lesenswert?

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 ~/

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.