Рекурсивные уведомления файловой системы (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), вы можете не выбирать все события из-за условий гонки.
Смотрите здесь для получения дополнительной информации: