Мне нужна программа, которая генерирует события, когда файл перемещается, удаляется или изменяются его расширенные атрибуты. Я использую 32-битный рабочий стол Ubuntu Karmic Koala.

inotify является стандартным решением для таких проблем, но inotify не может установить рекурсивное наблюдение, поэтому единственная опция - эквивалент find в файловой системе и добавление наблюдения inotify на каждом узле. Вот что делает, например, inotifywatch . Это не будет работать для меня, потому что моя файловая система содержит 1 миллион файлов, и установка часов для них занимает вечность.

fanotify мог бы работать, за исключением того, что для этого мне пришлось бы патчить ядро (сейчас я использую 2.6.31-20), а поддержка патчей для ядра Linux выходит за рамки моего времени.

Раньше я использовал rfsdelta (модуль ядра которого похож на rlocate), но он просто не компилируется в 2.6.31, потому что он использует устаревшие API-интерфейсы инфраструктуры безопасности Linux.

Я подозреваю, что антивирусное ПО по требованию в Linux может использовать другую технику, о которой я не знаю.

1 ответ1

0

Если у вас нет слишком интенсивного трафика на структуре, которую вы хотите отслеживать, вас может заинтересовать iwatch, который позаботится о рекурсивном размещении слушателей.

http://iwatch.sourceforge.net/index.html

Осторожно, так как, если события файловой системы очень близки И пытаются создать глубокую структуру (например: a/b/c/d/e/f), вы можете не выбрать все события из-за условий гонки.

Смотрите здесь для получения дополнительной информации:

http://old.nabble.com/Bug-494397%3A-iwatch%3A-New-subdirectories-in-recursive-mode-won%27t-be-recognized-p27145632.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .