bup-damage - losowo niszcz bloki pliku
bup damage [-n count] [-s maxsize] [--percent pct] [-S seed] [--equal] <filenames...>
Użyj uszkodzenia bup, aby celowo zniszczyć bloki w pliku .pack lub .idx (z .bup/objects/pack), aby przetestować funkcje odzyskiwania bup-fsck(1) lub innych programów.
TEN PROGRAM JEST NIEZWYKLE NIEBEZPIECZNY I MOŻE ZNISZCZYĆ TWOJE DANE
uszkodzenia bup są przydatne przede wszystkim do automatycznych lub ręcznych testów narzędzi do odzyskiwania danych, aby upewnić się, że narzędzia rzeczywiście działają.
liczbę oddzielnych bloków do uszkodzenia w każdym pliku (domyślnie 10). Zauważ, że w tym samym bloku naprawczym bup-fsck(1) może znaleźć się więcej niż jeden uszkodzony segment, więc możesz nie uszkodzić tylu bloków naprawczych, ilu się spodziewasz. Jeśli stanowi to problem, użyj opcji --equal.
maksymalny rozmiar w bajtach każdego uszkodzonego bloku (domyślnie 1, chyba że podano --percent). Zauważ, że ze względu na sposób działania bup-fsck(1) blok wielobajtowy może spaść na granicę między dwoma blokami odzyskiwania, uszkadzając w ten sposób dwa oddzielne bloki odzyskiwania. W przypadku małych plików uszkodzony blok może być większy niż blok odzyskiwania. Jeśli te problemy mogą stanowić problem, powinieneś użyć domyślnego rozmiaru uszkodzenia wynoszącego jeden bajt.
maksymalny rozmiar, w procentach oryginalnego pliku, każdego uszkodzonego bloku. Jeśli podano zarówno --size, jak i --percent, maksymalny rozmiar bloku jest minimalnym z dwóch ograniczeń. Możesz tego użyć, aby upewnić się, że dany blok nigdy nie uszkodzi więcej niż jednego lub dwóch bloków odzyskiwania git-fsck(1).
zasiej generator liczb losowych podaną wartością. Jeśli użyjesz tej opcji, twoje testy będą powtarzalne, ponieważ przesunięcia, rozmiary i zawartość uszkodzonych bloków będą za każdym razem takie same. Domyślnie losowe liczby są za każdym razem inne (więc możesz przeprowadzać testy w pętli i wielokrotnie testować z różnymi obrażeniami za każdym razem).
zamiast wybierać losowe przesunięcia dla każdego uszkodzonego bloku, rozmieść bloki równomiernie w całym pliku, zaczynając od przesunięcia 0. Jeśli wybierzesz również prawidłowy maksymalny rozmiar bloku, może to zagwarantować, że dany uszkodzony blok nigdy nie uszkodzi więcej niż jednego git-fsck( 1) blok odzyskiwania. (Jest to również gwarantowane, jeśli użyjesz -s 1.)
# 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)
Część pakietu bu(1).
Avery Pennarun