`entr`: Как узнать идентификатор обновления? неприятности? &, почему -r не работает с -d? - PullRequest
1 голос
/ 05 июня 2019

У меня есть скрипт, который регулярно добавляется в файл журнала.Когда я использую entr (обнаружен здесь ) для отслеживания этого файла журнала, а затем прикасаюсь к журналу, все работает нормально, но когда сценарий добавляется в файл, entr завершается ошибкой.Это может быть связано с тем, что в моем fstab установлен noatime, но это останавливает только обновление времени доступа, а не времени модификации, поэтому это меня смущает.

Я проверил и, хотя atime не обновляется, ctime (ls -lc) определенно есть.Может ли entr действительно зависеть от времени?Я использую noatime, потому что у меня есть SSD.И что же мне делать?Я просто наткнулся на lazytime .Решит ли это проблему?

Поскольку мониторинг файла журнала не работал, я попытался entr -cdr в каталоге файлов, которые обновляются (создается новый файл), одновременно с журналом (журнал находится в другом каталоге).entr распознает, когда содержимое каталога изменяется, но -r не работает.Процесс entr просто заканчивается, говоря «entr: каталог изменен».

Любая идея, как это исправить или я должен просто вернуться к inotify, будет принята.

Edit : я написал его с помощью inotify сейчас, и событие, о котором сообщается при записи файла журнала, достаточно разумно "MODIFY".

1 Ответ

0 голосов
/ 11 июня 2019

Оказывается, что entr не отвечает на события IN_MODIFY, а только на эти (в Linux):

IN_CLOSE_WRITE|IN_DELETE_SELF|IN_MOVE_SELF|IN_CREATE

Кроме того, IN_ATTRIB, но только при изменении номеров файлового режима или номеров узлов.

В BSD / OSX это:

NOTE_DELETE|NOTE_WRITE|NOTE_RENAME|NOTE_TRUNCATE|NOTE_ATTRIB

Кроме того, опция -r не действует в контексте опции -d.Он работает только тогда, когда entr отслеживает файлы.

См. Комментарии разработчика .Также, больше информации на входе

...