bup-damage - Blöcke einer Datei nach dem Zufallsprinzip zerstören
bup damage [-n count] [-s maxsize] [--percent pct] [-S seed] [--equal] <filenames...>
Verwenden Sie Bup Damage, um Blöcke in einer .pack- oder .idx-Datei (aus .bup/objects/pack) absichtlich zu zerstören, um die Wiederherstellungsfunktionen von bup-fsck(1) oder anderen Programmen zu testen.
DIESES PROGRAMM IST EXTREM GEFÄHRLICH UND ZERSTÖRT IHRE DATEN
Bup Damage ist in erster Linie für automatisierte oder manuelle Tests von Datenwiederherstellungstools nützlich, um sich zu vergewissern, dass die Tools tatsächlich funktionieren.
die Anzahl der einzelnen zu beschädigenden Blöcke in jeder Datei (Standard 10). Beachten Sie, dass es möglich ist, dass mehr als ein beschädigtes Segment in denselben bup-fsck(1)-Wiederherstellungsblock fällt, sodass Sie möglicherweise nicht so viele Wiederherstellungsblöcke beschädigen, wie Sie erwarten. Wenn dies ein Problem darstellt, verwenden Sie --equal.
die maximale Größe jedes beschädigten Blocks in Bytes (Standard 1, sofern nicht --percent angegeben ist). Beachten Sie, dass aufgrund der Funktionsweise von bup-fsck(1) ein Multibyte-Block auf die Grenze zwischen zwei Wiederherstellungsblöcken fallen und somit zwei separate Wiederherstellungsblöcke beschädigen könnte. Bei kleinen Dateien ist es auch möglich, dass ein beschädigter Block größer als ein Wiederherstellungsblock ist. Wenn diese Probleme ein Problem darstellen könnten, sollten Sie die Standardschadensgröße von einem Byte verwenden.
die maximale Größe jedes beschädigten Blocks in Prozent der Originaldatei. Wenn sowohl --size als auch --percent angegeben sind, ist die maximale Blockgröße das Minimum der beiden Einschränkungen. Damit können Sie sicherstellen, dass ein bestimmter Block niemals mehr als einen oder zwei git-fsck(1)-Wiederherstellungsblöcke beschädigt.
Setzen Sie den Zufallszahlengenerator mit dem angegebenen Wert. Wenn Sie diese Option verwenden, sind Ihre Tests wiederholbar, da die Offsets, Größen und Inhalte der beschädigten Blöcke jedes Mal gleich sind. Standardmäßig sind die Zufallszahlen jedes Mal unterschiedlich (Sie können also Tests in einer Schleife ausführen und jedes Mal wiederholt mit unterschiedlichem Schaden testen).
Anstatt zufällige Offsets für jeden beschädigten Block zu wählen, verteilen Sie die Blöcke gleichmäßig in der Datei, beginnend bei Offset 0. Wenn Sie auch eine korrekte maximale Blockgröße wählen, kann dies garantieren, dass ein gegebener Schadensblock niemals mehr als einen git-fsck( beschädigt. 1) Wiederherstellungsblock. (Dies ist auch garantiert, wenn Sie -s 1 verwenden.)
# make a backup in case things go horribly wrong
cp -pPR ~/.bup/objects/pack ~/bup-packs.bak
# generate recovery blocks for all packs
bup fsck -g
# deliberately damage the packs
bup damage -n 10 -s 1 -S 0 ~/.bup/objects/pack/*.{pack,idx}
# recover from the damage
bup fsck -rbup-fsck(1), par2(1)
Teil der bup(1)-Suite.
Avery Pennarun