Inotify / iwatch не может видеть, когда одновременно создаются другие файлы

Мне нужен сценарий, который может проверять файлы, когда они загружаются / создаются на сервере.

Я написал сценарий, который проверяет, но я хотел бы, чтобы он запускался при возникновении события создания бывает. Я пробовал это с iwatch, затем с inotify, но у меня возникла проблема: если одновременно копируется больше файлов, inotify / iwatch запускается только один или два раза, но не столько раз, сколько создается файлов. а:; выполните inotifywait --format '% f:% e' -e create / path / to / watch; done

И на другом терминале, но на том же сервере, конечно, я вхожу в каталог с большим количеством файлов, и inotify только несколько раз уведомляет меня на другом терминале, но не всегда, как должно.

Может кто-нибудь мне подскажет, что может вызвать такое?

Заранее спасибо.

0
задан 11 January 2016 в 11:33
2 ответа

Мне удалось выяснить, в чем проблема. Inotify / Iwatch мог видеть и передавать моему сценарию эти файлы, соответствующие заданным событиям, но когда сценарий начинал их обрабатывать, Inotify не сохранял файлы до завершения сценария, а передавал их через них.

Итак, я сделал примитивный кеш. Сначала мой сценарий записывает файлы в текстовый файл в виде списка, а тем временем передает этот текстовый файл другому процессу (модулю моего сценария) для их обработки. И делает это с помощью '&', чтобы основной сценарий не ждал, пока модуль пройдёт по списку.

0
ответ дан 5 December 2019 в 10:59

Есть отличный инструмент под названием lsyncd. Это для синхронизации, но я также использовал его для изменения разрешений для загруженного файла. Взгляните на , пример .

Вы можете использовать его или просмотреть код, он использует inotify.

BR

0
ответ дан 5 December 2019 в 10:59

Теги

Похожие вопросы