В честь "Всемирного дня бэкапа" решил частично проверить восстановление той части резервного копирования, что описана у меня сколько-нибудь подробно здесь (на Дзене, в той же статье короткие воспоминания о бэкапах в 80-е годы). Скрипты копирования такие:
@start "split into BD-RE slices" %comspec% /k py .\bd_split.py %~nx1
#! python3.13
import sys
BUF_SIZE = 1024 * 1024
FS_SIZE = 2048 * 512 # кратно BUF_SIZE, значит можно использовать сравнение count == BD_DISK_SIZE
BD_DISK_SIZE = 25025314816 - FS_SIZE
file_name = sys.argv[1]
source = r"K:\backup\2311\{0}".format(file_name)
dest_head = r"D:\kvk\YandexDisk\Acronis\{0}".format(file_name)
with open(source, "rb") as input:
part = 1
while True:
count = 0
with open(dest_head + ".{0:02d}".format(part), "wb") as output:
bytestring = input.read(BUF_SIZE)
while bytestring:
count += output.write(bytestring)
if count == BD_DISK_SIZE:
part += 1
break
elif count > BD_DISK_SIZE:
raise Exception("Превышен максимальный размер диска для части {0}...".format(part))
bytestring = input.read(BUF_SIZE)
else:
break
Поскольку облако не специализированное, подписываю GnuPG подписью получившиеся кусочки для последующего возможного контроля целостности.
Сегодня в процессе проверки подключил внешний жёсткий диск с бэкапами, для самой маленькой резервной копии из недавних посчитал SHA256, восстановил её же из облака вместе с подписями, проверил их, собрал эту инкрементную резервную копию из кусочков, проверил SHA256. Совпали. Последний раз проверял по такой схеме наверно более 10 лет назад, ну и сегодня "на всякий случай" :)
А вообще у меня бэкапы проверяются периодически (какие автоматически после каждого резервного копирования, какие вручную еженедельно), а восстановление из копии при изменениях в "железе" и обновлении софта обычно.