Рекурсивные уведомления файловой системы (inotify) для Ubuntu Karmic Koala

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

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

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

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

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

1 ответ

Если у вас нет слишком интенсивного трафика в структуре, которую вы хотите отслеживать, вас может заинтересовать 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

Другие вопросы по тегам