Ошибки inotifytools
Я использую inotifytools для рекурсивного мониторинга каталога. когда я использую следующую команду
inotifywait ./test -m
после команды, если я создаю директор под ./test
предполагая ./test/test2
, Тогда, если я сделаю что-то под test2
например, удалить файл или добавить файл, очень странно, что не произошло никакого события.
Кажется, что нет часов на test2
,
Это ошибка или я просто неправильно использую?
2 ответа
man 1 inotifywait
, вы получите следующий вывод:
-r, --recursive
Смотреть все подкаталоги любых каталогов, переданных в качестве аргументов. Часы будут рекурсивно настроены на неограниченную глубину. Символические ссылки не пройдены. Недавно созданные подкаталоги также будут просмотрены.
Предупреждение: если вы используете эту опцию во время просмотра корневого каталога большого дерева, может пройти довольно много времени, пока не будут установлены все наблюдения inotify, и в это время события не будут получены. Кроме того, поскольку для каждого подкаталога будут установлены одни часы inotify, возможно, будет достигнуто максимальное количество часов inotify на пользователя. Максимум по умолчанию - 8192; его можно увеличить, написав в /proc/sys/fs/inotify/max_user_watches.
По умолчанию, inotifywait
не будет контролировать подкаталоги, так что вам нужно -r, --recursive
вариант, чтобы заставить это. Таким образом, команда, которая вам нужна, будет выглядеть так:
inotifywait -rm test
Часы inotify просто не рекурсивны. (То есть вам понадобится по одному на каталог, если вы хотите получить уведомление на глубоком уровне.)