У меня есть папка с ~ 10 000 подпапок.
Может ли любой linux API или инструмент отслеживать любые изменения в любой папке ниже, например / SharedRoot, или мне нужно настроить inotify для каждой папки?(т.е. я проигрываю, если хочу сделать это для 10k + папок).Наверное, да, так как я уже видел примеры этого неэффективного метода, например http://twistedmatrix.com/trac/browser/trunk/twisted/internet/inotify.py?rev=28866#L345
Моя проблема:
Мне нужно сохранять папки отсортированными по времени с последним активным "проектом" вверх.
При изменении файла каждая папка над этим файлом должна обновлять свою последнюю измененную метку времени, чтобы соответствовать файлу.Задержки в порядке.Открыв файл (обычно MS Excel) и закрыв его снова, дата его файла может прыгать вверх, а затем снова вниз.По этой причине мне нужно подождать, пока файл не будет закрыт, затем поставить в очередь папку этого файла для проверки, и только спустя некоторое время я пойду и найду самый новый файл в его папке, так как дата файла запускающего файла можетуже быть задним числом к исходной отметке времени в Excel или аналогичных программах.Кроме того, в случае использования / создания нескольких файлов из одной и той же папки имеет смысл буферизовать метки времени родителей этих папок, чтобы хотя бы свести кучу обновлений в одно отложенное обновление.
Я ищурешение Linux.У меня есть некоторый код, который можно запустить на сервере Windows, большинство функций очереди здесь: http://github.com/sesam/FolderdateFollowsFiles/blob/master/FolderdateFollowsFiles/Follower.vb
Доступный API: s
Относительно inotify на окнах, ReadDirectoryChangesW, может просматривать папкуи все его поддерево;см. bWatchSubtree на http://msdn.microsoft.com/en-us/library/aa365465(VS.85).aspx
Samba?
Возможно ли исправление источника samba, но, возможно, уже есть доступные хуки?Другие возможности, например, на стороне клиента (различные версии Windows) и слежка за действиями с файлами для рекурсивного обновления папок?