Как эффективно отслеживать изменения в каталоге на Linux?

Я работаю с Magento, и есть функция, которая объединяет CSS и Javascript в один большой файл.

Независимо от плюсов и минусов этого, существует следующая проблема:

Окончательный файл кэшируется на нескольких уровнях, которые включают, но не ограничиваются:

  • Amazon CloudFront
  • Прокси-серверы
  • Клиенты кеш браузера

Magento использует сумму MD5 объединенных имен файлов css для генерации нового имени файла для объединенного файла css. Чтобы каждая страница с отдельным набором файлов css получала соответствующий объединенный файл css.

Чтобы обойти проблему кеширования, я также включил в этот хэш отметки времени изменения файла, чтобы новый хеш генерировался каждый раз css изменен.

Таким образом, все преимущества оценки кэширования без повторной валидации, но если что-то изменится, это станет видимым мгновенно, потому что изменилась ссылка на ресурс.

Пока все хорошо:

Единственная проблема в том, что имена файлов используются для генерации has, это только те, на которые обычно напрямую ссылаются в блоке HTML-Head, и не включают импорт css внутри этих файлов .

Итак изменения в файлах, которые импортируются внутри файлов css, не приводят к получению нового хэша.

Нет, я действительно не хочу рекурсивно анализировать весь импорт и сканировать их или что-то в этом роде.

Я скорее думал о решении на основе каталогов. Есть ли что-нибудь для эффективного отслеживания «последнего изменения внутри каталога» на основе файловой системы?

Мы используем ext4.

Или, может быть, есть другой способ, возможно, с помощью команды find, который выполняет всю работу на основе на индексах inode?

Что-то в этом роде?

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

Проблема в том, что каталог css довольно велик.

Может ли кто-нибудь указать мне правильное направление?

7
задан kingjeffrey 8 July 2014 в 21:23
поделиться