Как можно отслеживать, какая часть большого файла изменилась

#linux #large-files #inotify

#linux #большие файлы #inotify

Вопрос:

Существует ли решение для Linux kernel-3.0 (или более поздней версии), которое позволяет получать уведомления, похожие на inotify описание определенного сегмента файла, который был изменен?

Был fschange патч до ядра-2.6.21. Есть ли какое-либо актуальное решение? fanotify Может ли recent обеспечить функциональность?

Ответ №1:

Насколько я знаю, нет, но есть способ взломать функциональность, используя уведомление об изменении файла в качестве индикатора для чтения формата файловой системы на диске и изучения таблиц распределения блоков внутренней файловой системы, чтобы узнать, что изменилось.

Это сложно сделать, страдает от условий гонки и, вероятно, плохая идея, но если вы должны и кодирование fschange поверх версии 3.0 для вас не вариант, возможно, это правильный путь.

Комментарии:

1. Разве «таблицы распределения блоков внутренней файловой системы» не отличаются от файловой системы к файловой системе?

2. Да, это так. решение должно быть закодировано для каждой файловой системы.

3. Перенос fschange, по-видимому, требует меньших усилий.

Ответ №2:

IMO … забудьте об использовании inotify, если «the pretty» не имеет значения. Кроме этого, вы можете настроить cronjob с помощью скрипта, выполняющего diff, или используя FIND с опцией MTIME.