bup-damage - случайным образом уничтожать блоки файла
bup damage [-n count] [-s maxsize] [--percent pct] [-S seed] [--equal] <filenames...>
Используйте повреждение bup для преднамеренного уничтожения блоков в файле .pack или .idx (из .bup/objects/pack) для проверки функций восстановления bup-fsck(1) или других программ.
ЭТА ПРОГРАММА ЧРЕЗВЫЧАЙНО ОПАСНА И УНИЧТОЖИТ ВАШИ ДАННЫЕ
bup damage в первую очередь полезен для автоматизированных или ручных тестов инструментов восстановления данных, чтобы убедиться, что инструменты действительно работают.
количество отдельных блоков для повреждения в каждом файле (по умолчанию 10). Обратите внимание, что в один и тот же блок восстановления bup-fsck(1) может попасть более одного поврежденного сегмента, поэтому вы можете не повредить столько блоков восстановления, сколько ожидаете. Если это проблема, используйте --equal.
максимальный размер в байтах каждого поврежденного блока (по умолчанию 1, если не указан --percent). Обратите внимание, что из-за того, как работает bup-fsck(1), многобайтовый блок может попасть на границу между двумя блоками восстановления и, таким образом, повредить два отдельных блока восстановления. В небольших файлах поврежденный блок также может быть больше, чем блок восстановления. Если эти проблемы могут быть проблемой, следует использовать размер повреждения по умолчанию, равный одному байту.
максимальный размер каждого поврежденного блока в процентах от исходного файла. Если указаны и --size, и --percent, максимальный размер блока является минимальным из двух ограничений. Вы можете использовать это, чтобы гарантировать, что данный блок никогда не повредит более одного или двух блоков восстановления git-fsck(1).
заполнить генератор случайных чисел заданным значением. Если вы используете эту опцию, ваши тесты будут повторяемыми, поскольку смещения, размеры и содержимое поврежденных блоков каждый раз будут одинаковыми. По умолчанию случайные числа каждый раз разные (так что вы можете запускать тесты в цикле и каждый раз повторно тестировать с разными повреждениями).
вместо того, чтобы выбирать случайные смещения для каждого поврежденного блока, размещайте блоки равномерно по всему файлу, начиная со смещения 0. Если вы также выберете правильный максимальный размер блока, это может гарантировать, что любой заданный блок повреждения никогда не повреждает более одного git-fsck( 1) блок восстановления. (Это также гарантируется, если вы используете -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 -r
bup-fsck(1), par2(1)
Часть набора bup(1).
Эйвери Пеннарун apenwarr@gmail.com.