Эти инструменты предназначены для более или менее этого варианта использования:
Как проверить и проверить все файлы в файловой системе
Я хотел бы запустить sha1sum или md5sum для всех моих файлов рекурсивно, сохранить результаты в файл (или пару файлов), а затем снова иметь возможность сканировать файлы, чтобы проверить целостность файлов.
Такие инструменты, как sha1sum / md5sum, не допускают рекурсивный подход, и я также хотел бы распределить нагрузку, чтобы использовать более одного ядра процессора.
Я пока не чувствую себя в безопасности, помещая свои файлы в BTRFS, и, кроме того, BTRFS еще не работает должным образом на raid5 / 6, поэтому я ищу "быстрый" способ проверить все мои файлы и проверить их, когда захочу. Таким образом, я бы по крайней мере узнал, не помешало ли какое-либо из моих файлов молчаливое повреждение данных.
Существуют ли какие-либо инструменты, предназначенные для этой цели (да, я знаю о SnapRAID)
2 ответа на вопрос
Или вы можете написать что-нибудь самостоятельно;) Я написал этот скрипт на Python, объединяя фрагменты других людей из Интернета. Это может быть отправной точкой.
#! / USR / бен / питон импорт ОС импорт хешлиб из joblib импорт параллельный, отложенный импорт JSON BASE_DIR = "/ home / p / music" NUM_PROC = 2 OUT_FILE = "hashes.json" # список файлов для обработки file_list = [] для root, dir, файлы в os.walk (BASE_DIR): для имени в файлах: file_list.append (os.path.join (root, name)) # - вычисление md5sum для одного файла def hashOne (f): BLOCKSIZE = 65536 hasher = hashlib.md5 () с открытым (f, 'rb') как afile: печать F buf = afile.read (BLOCKSIZE) пока len (buf)> 0: hasher.update (BUF) buf = afile.read (BLOCKSIZE) return hasher.hexdigest () # параллельный расчет md5sum md5 = Parallel (n_jobs = NUM_PROC) (отложено (hashOne) (f) для f в file_list) # создать хэш file_names -> md5sum out_hash = {} для меня в диапазоне (len (file_list)): out_hash [file_list [i]] = md5 [i] # записать хеш "имя файла -> md5sum" на диск на будущее dump = json.dumps (out_hash) с открытым (OUT_FILE, "wb") в качестве файла: file.write (дамп)
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4