# Hilfe zur Backup Strategie



## Worrel (1. Mai 2022)

Hallo.

Ich habe eine recht umfangreiche Musik Mediathek auf Rechner A, von der ich Backups erstellen will.

Aktuell hatte ich das Problem, daß ~50 Dateien davon unlesbare Stellen hatten, so daß die Abspielprogramme da ausgestiegen sind. Insgesamt habe ich dort  iirc ~30.000 Dateien.
Ich hatte auch schon mal das Problem (danke iTunes), daß die Datei noch komplett lesbar und abspielbar war, aber am Anfang ein Knacken und in der Datei kein Coverbild mehr war.

Es gibt also die theoretischen Fälle:
A. Datei ganz
B. Datei für das System lesbar, aber kaputt mit Status "geändert"
C. Datei für das System lesbar, aber kaputt mit Status "nicht geändert"
D. Datei nur teilweise lesbar; Lesefehler verhindert Kopie

Nun will ich also von dieser Mediathek regelmäßig Backups erstellen, um immer eine korrekte, ganze Datei irgendwo zur Verfügung zu haben.
Dazu habe ich mir folgendes Backup Handling überlegt:

1. Beim Erstellen eines neu gerippten Albums wird das entsprechend getaggt und mit Cover versehen
2. Ich erstelle von dem gerade auf Richtigkeit überprüften (1 x Abspielen) Ordner eine Datei mit Hashcodes der darin enthaltenen Dateien
3. zum Backup Zeitpunkt wird ein Backup des Mediathek Ordners auf Rechner B erstellt
4. Ich überprüfe die Hashcodes in dem Backup Verzeichnis auf B
5. Ich spiele die überprüften Dateien auf Rechner B in die dortige Mediathek, die dank der Überprüfung eine 1:1 Kopie der Mediathek auf A sein sollte.
(6. Inkrementelle Sicherung auf ein NAS)

---
Problem: ich rippe mitunter schon mal 20 neue CDs bis zum nächsten Backup

dh: Ich müsste nachhalten, welche CDs ich aktuell gerippt habe und für Schritt 4 in 20 Ordner reingehen und dort die Hashcodes prüfen
Besser: Ich hätte einen Vorgang, der die Hashcode Dateien ausliest und selbständig abarbeitet.

Frage: gibt es Backup Programme mit derartigen Funktionen?

Oder hat jemand eine bessere Strategie für mich?


Weiteres Problem:
Ich könnte zwar vor dem Backup in Schritt 3 eine neue Hashcodes für alle Dateien in der Mediathek erstellen - aber dann würden die Fälle B & C MIT Fehler neu gehasht.❌


----------



## Worrel (4. Mai 2022)

Hat jemand eine Anmerkungen? oder eine bessere Strategie zum Thema Backup?


----------



## Loosa (4. Mai 2022)

Worrel schrieb:


> Hat jemand eine Anmerkungen? oder eine bessere Strategie zum Thema Backup?



Ich finde das Setup etwas Overkill? 
Außerdem ist eine einfache 1:1 Kopie nie 100% sicher. Die bekommst du nur mit doppelten Langzeitarchiven in zwei getrennten Lagerstätten.

Ich spiegel meine Sachen einfach mit FreeFileSync (und aktivem RealtimeSync) auf's NAS. Manche Ordner einmal beim Hochfahren, andere werden konstant überwacht. Das ist mein Live Backup. Wenn du Angst vor schleichender Korruption hast, könntest du es so aufsetzen, dass Musikstücke nur neu zum Archiv hinzugefügt werden. Sachen wie Playlists aber spiegeln. ¯\_(ツ)_/¯

Für Daten, die ich unbedingt gesichert wissen will, habe ich einen MDisc-Brenner. Für einmal beschreibbare Blurays mit 1.000 Jahren Lebensdauer. Relative kleine 25-100 GB, aber für mehr bist du dann im Profibereich und LTOs. Wo schon das Bandlaufwerk €1.500 kostet. Hatte ich in der alten Arbeit, aber privat? 

Von daher, wenn du Langzeitsicherung nicht dabei hast, ist rumkopieren zwischen zwei Rechnern auch nur 'ne Krücke. Lass die Hash-Codes stimmen, aber dann brennt die Bude ab. 

Alternativvorschlag: bring dir Python bei. 
Eine sehr einfache, moderne Programmiersprache, fast schon Skriptsprache, die nahezu überall genutzt wird, wo es um abarbeiten von Daten geht. Vom Film bis zur Forschung. Kann somit sogar beruflich nützlich sein. ^^

Durch Ordner rauschen und Hashtags abgleichen, wäre da supersimpel. Das ist Einsteigerlevel und für Hashes gibt es mit Sicherheit fertige Code-Vorlagen.
Ich könnte mal meine Notizen / Projekte nachgucken. Bei einem Thema ging es darum 100.000 Personalakten zu laden, durchsuchen, filtern, bearbeiten und speichern.


/edit, yep. Beispiel für einen Hash-Abgleich, inklusive Download des gesamten Skripts.

```
def check_hash(fname: Path, hashfile: Path) -> Hashstatus:
    """Check MD5 of passed file against downloaded NCBI hash file.

    :param fname:  Path, path to local hash file
    :param hashfile:  Path, path to NCBI hash file
    """
    filehash = ""
    passed = False  # Flag - set to True if the hash matches

    # Generate MD5 hash
    localhash = create_hash(fname)

    # Get hash from file
    filehash = extract_hash(hashfile, fname.name)

    # Check for match
    if filehash == localhash:
        passed = True

    return Hashstatus(passed, localhash, filehash)
```
Befehle wie check_hash werden von Bibliotheken geliefert, die man simpel angeben kann (import hashlib).


----------



## Worrel (4. Mai 2022)

Loosa schrieb:


> Ich finde das Setup etwas Overkill?


Da ich sowohl simplen "Coververlust" als auch "Datei ist lesbar, spielt aber die Musik nicht ab" schon mal hatte: Nein.

Zudem hatte ich eben diese 55 kaputten Dateien - da ist das absolut kein Overkill, sondern auch Kontrolle, ob das mit dem neuen SATA Controller Treiber jetzt gefixt ist.


Loosa schrieb:


> Außerdem ist eine einfache 1:1 Kopie nie 100% sicher. Die bekommst du nur mit doppelten Langzeitarchiven in zwei getrennten Lagerstätten.


"Es ist schon recht unwahrscheinlich, daß die Datei auf BEIDEN Rechnern gleichzeitig kaputt geht" reicht mir eigentlich. Aber dafür müßte man eben dafür sorgen, daß nicht eine ganze Datei durch eine kaputte überschrieben wird.


Loosa schrieb:


> Ich spiegel meine Sachen einfach mit FreeFileSync


und zack - könntest du mit einer unabspielbaren, aber lesbaren Datei eine ganze Datei überschrieben haben.❌

Ich will halt 2 Sachen:
eine 1:1 Kopie der geprüften(!) Dateien von Rechner A auf Rechner B
und die geprüften(!) Daten aufs NAS (das hat aber nur 4 TB und die Mediadaten sind schon 1,5TB groß ...)


----------



## MrFob (4. Mai 2022)

Ich versteh ehrlich gesagt nicht ganz, wie du mit einem ganz normalen Synch eine gepruefte Datei mit einer unlesbaren ueberschreiben kannst. Ein normaler Synch ueberschreibt doch nichts, was schon vorher kopiert wurde sondern kopiert nur die neu dazugekommenen Sachen dazu.

mMn wuerde RoboCopy + der von @Loosa im edit vorgeschlagene MD5 abgleich locker reichen um ein sicheres verifiziertes Backup zu erstellen.


----------



## Worrel (5. Mai 2022)

MrFob schrieb:


> Ich versteh ehrlich gesagt nicht ganz, wie du mit einem ganz normalen Synch eine gepruefte Datei mit einer unlesbaren ueberschreiben kannst. Ein normaler Synch ueberschreibt doch nichts, was schon vorher kopiert wurde sondern kopiert nur die neu dazugekommenen Sachen dazu.
> 
> mMn wuerde RoboCopy + der von @Loosa im edit vorgeschlagene MD5 abgleich locker reichen um ein sicheres verifiziertes Backup zu erstellen.


Von der reinen Wortbedeutung her wäre eine Sync(hronisation) das 1:1 Spiegeln eines Verzeichnisses.
Das, was du meinst, ist ein inkrementelles Backup.

Wenn sich auf Rechner A eine Datei ändert, dann ist das mitunter ja gewollt (zB: ich habe das Cover in einer besseren Version gefunden oder hatte beim Taggen "Bomehian Rapsodie" geschrieben und jetzt ausgebessert.
DIESE Änderung WILL ich ja ins Backup schreiben. Aber eben eine von mir NICHT "autorisierte" Änderung eben NICHT.
Daher meine Idee mit den unmittelbar nach meiner Änderung aufgefrischten Hashtag Dateien, die dann Nach dem Backup in einen temporären Ordner auf Rechner B überprüft werden. Sind dann dort nur Dateien gelandet, die mit meinen Hashtags übereinstimmen: ✔️

Die Frage ist eben: Wo und wann mache ich wie die Überprüfung und gibt es Verbesserungen beim Hin- und her kopieren?
Wäre es zB sinnvoll, von Rechner A direkt aufs NAS zu kopieren und dann von der NAS auf Rechner B die Kopie zu erstellen?
Kann ein Synology NAS (DJ220 oder so) die Hashwerte überprüfen?

Robocopy war ein DOS befehl, oder?


----------



## Loosa (5. Mai 2022)

Worrel schrieb:


> und zack - könntest du mit einer unabspielbaren, aber lesbaren Datei eine ganze Datei überschrieben haben.❌


Dafür kannst du bei FileSync ja Regeln aufstellen. In dem Fall "nur neue Dateien kopieren". Dann wird nichts überschrieben, nur weil sich eine Datei durch corruption geändert hat. 
Genausogut kannst du nach .mp3, .FLAC, ... filtern um die nur hinzuzufügen, anderes aber zu spiegeln. Diese Standardoptionen von solchen Tools decken meinen Bedarf ab. Deswegen kenne ich keine anderen. 

/edit: bei gewollten Änderungen, und von dir geprüfter Funktionalität, halt dann eine andere Regel auf ausgewählte Ordner ausführen. Da musst du natürlich selbst die Sicherung anwerfen/autorisieren. Aber "Hashtags auffrischen" müsstest du ja auch per Hand festlegen.



Worrel schrieb:


> eine 1:1 Kopie der geprüften(!) Dateien von Rechner A auf Rechner B


Das scheint ein recht spezieller Fall zu sein, jedenfalls kenne ich keine Backuplösungen die so arbeiten.
Wenn du nichts findest und es unbedingt brauchst -> selber machen.
Lustig, dass ich hier gestern nach einem Jahr mal wieder in Python reingeguckt hatte - und partout heute ein Py-Script in der Arbeit anpassen durfte.


----------



## Worrel (6. Mai 2022)

Loosa schrieb:


> Dafür kannst du bei FileSync ja Regeln aufstellen. In dem Fall "nur neue Dateien kopieren". Dann wird nichts überschrieben, nur weil sich eine Datei durch corruption geändert hat.


Ja, aber dann hätte ich möglicherweise eine korrupte Datei in meiner ersten Backupstufe.❌


Loosa schrieb:


> Genausogut kannst du nach .mp3, .FLAC, ... filtern um die nur hinzuzufügen, anderes aber zu spiegeln.


Das macht für mich keinen Sinn, ich will ja ALLE sichern.


Loosa schrieb:


> /edit: bei gewollten Änderungen, und von dir geprüfter Funktionalität, halt dann eine andere Regel auf ausgewählte Ordner ausführen. Da musst du natürlich selbst die Sicherung anwerfen/autorisieren. Aber "Hashtags auffrischen" müsstest du ja auch per Hand festlegen.


Das Problem ist, daß ich ja den GANZEN Mediathek Ordner mit allen Dateien als Input habe. Und da sind dann nicht mal nur 10 Dateien beim nächsten Backup dabei, sondern hunderte. Die will ich ja nicht alle manuell durchklappern, welches davon denn jetzt eine "unautorisierte" Änderung sein könnte.


Loosa schrieb:


> Das scheint ein recht spezieller Fall zu sein, jedenfalls kenne ich keine Backuplösungen die so arbeiten.


Deswegen ja meine Fragen und dieser Thread - vielleicht denke ich da ja irgendwo um die Ecke.

zB: Brauche ich wirklich die 1:1 Kopie auf Rechner B? 
=> Dauerhaft wohl nicht, zum Abspielen ist Rechner A da.
=> Wenn sich nun aber rausstellt, daß Rechner A einen Festplattendefekt hat, weil ich jetzt _trotz SATA Controller Treiber Update _immer noch neue(!) kaputte Dateien habe, dann wird Rechner A zur Reparatur eingeschickt und ich würde dann Rechner B temporär(!) zum Musik hören nutzen.


Loosa schrieb:


> Wenn du nichts findest und es unbedingt brauchst -> selber machen.
> Lustig, dass ich hier gestern nach einem Jahr mal wieder in Python reingeguckt hatte - und partout heute ein Py-Script in der Arbeit anpassen durfte.


Grats 

---
Kann FreeFileSync  eigentlich auch inkrementell kopieren, wenn ich Dateien in dem Zielordner verändere?
Sprich:
läuft das explizit über einen "Dateien im Verzeichnis Vergleich" oder kann man dabei auch auf Rechner A festhalten, welche Dateien schon kopiert wurden?


----------



## Worrel (7. Mai 2022)

So, jetzt wird's lustig:

Ich hab zum Test gestern mal nur den Musik Ordner mit Freefile sync von Rechner A in einen anderen Ordner auf Rechner A kopiert.
Danach Freefile Sync nochmal mit demselben Auftrag und Dateien Inhaltsvergleich laufen lassen.

Ergebnis:
A:
Er findet ~ 2 Handvoll Dateien in der Quelle, die im Ziel nicht vorhanden sind
=> Ok, das sind Dateien, die er gefunden hat, (die  kaputt sind, aber) die ordnungsgemäße Dateiinfos haben und nicht auf den Dateiinhalt überprüft wurden, weil es keine Vergleichs Datei im Zielorder gibt.✔️
Beim Spiegelungsversuch werden diese nicht kopiert, da sie nicht gelesen werden können✔️

B:
Es gibt 2 Dateien, die 
- in der Quelle NICHT lesbar sind (VCL; Win Explorer Copy & Paste)
- in der Quelle nur bis Stelle X abspielen
- im Zielordner VORHANDEN SIND❓
- im Zielordner problemlos abspielbar sind❗

Das Lustige daran: Mindestens eine der beiden Dateien war definitiv VOR dem ersten Freefile Sync Auftrag schon kaputt, weil mir daran aufgefallen ist, daß es bei diesem Album mehr Probleme gibt, als ich bisher in meiner "Error" Liste hatte.

seriously: WTF?!


----------



## Chemenu (7. Mai 2022)

Welches Dateisystem verwendest du da eigentlich, NTFS? Ich würde dem Rechner gar keine Dateien mehr anvertrauen wenn der SATA Controller so viele Lese-/Schreibfehler generiert.


----------



## Worrel (7. Mai 2022)

Chemenu schrieb:


> Welches Dateisystem verwendest du da eigentlich, NTFS? Ich würde dem Rechner gar keine Dateien mehr anvertrauen wenn der SATA Controller so viele Lese-/Schreibfehler generiert.


NTFS.
Windows 11
Und ob der SATA Controller daran schuld war, ist ja noch die Frage.
Allerdings hatte der eben einen Treiber von 2006(!), der natürlich noch kein Windows 11 kennen kann ...

Jetzt hab ich auch mal den Samsung Magician installiert, der direkt noch ein Firmware Update gefunden hat ...

Die meisten Dateien hab ich ja noch in der 1:1 Kopie der Mediathek auf Rechner B (dafür ist das dann ja doch gut)

Daß das so kein Dauerzustand sein kann, ist klar. Allerdings könnte das eben theoretisch bei >30.000 Dateien schon mal vorkommen, daß im Laufe der Jahre ~50 davon kaputt gehen. Laut Datei info war eine der kaputten in 2014 das letzte Mal geändert worden... 
... allerdings hatte ich die erste letztes Jahr auf Rechner A kopiert. Da sollte die Datei also zumindest lesbar angekommen sein.

Ich werd jetzt mal schauen, was der Magician dazu noch zu sagen hat und sobald jetzt nach Firmware Update IMMER NOCH was passiert, schick ich das Ding ein.


----------



## Chemenu (7. Mai 2022)

Du könntest die Dateien auf einem btfrs Volume ablegen. Das btrfs Scrubbing auf einem RAID1 Mirror checkt sämtliche Daten auf beiden Disks gegen Checksummen und repariert beschädigte Blöcke. Dann musst Du halt trotzdem noch sicherstellen, dass die Dateien korrekt auf dem Volume ankommen.


----------



## Worrel (8. Mai 2022)

Nun, es soll schon auf einem Win11 Rechner laufen. Und ich denke, dafür wäre NTFS doch noch am sinnvollsten.
Die Frage ist nur, wie ich das am sichersten von "in die Mediathek auf Rechner A rein speichern" bis hin zur Kopie ins Backup bekommen.

Auch, wenn die SSD beim gründlichen Check von Samsungs "Magician" Software schon doppelt so lange brauchen wird wie im UI behauptet, weil > 5% der ersten Datenträgerhälfte "Bad" Sektoren sind, bleibt ja die potentielle Gefahr genauso bestehen.
Auch eine neue SSD kann zu Scherib- und Lesefehlern führen.

Und daher wollte ich mir endlich(!) mal eine sinnvolle Backup Strategie überlegen.


----------

