`entr`:如何更新ID? noatime麻烦? &,为什么-r无法与-d一起使用?

时间:2019-06-05 05:08:26

标签: inotify ctime

我有一个定期添加到日志文件的脚本。当我使用entr(已发现here)监视该日志文件,然后触摸该日志时,一切正常,但是当脚本追加到文件时,entr失败。这可能是因为我在fstab中设置了noatime-但这仅停止更新访问时间而不是修改时间,因此这使我感到困惑。

我已经检查过,并且当atime没有更新时,ctime(ls -lc)肯定是。 entr真的取决于时间吗?我使用noatime是因为我有一个SSD。所以我该怎么做?我只是偶然发现了lazytime。这样可以解决问题吗?

由于监视日志文件不起作用,因此我在与日志同时更新(创建日志的文件位于另一个目录中)的文件目录上尝试了entr -cdrentr识别目录内容何时更改,但是-r不起作用。 entr过程刚刚结束,说“ entr:目录已更改”。

任何解决该问题的方法,或者我是否应该回到inotify的想法,都将不胜感激。

编辑:我现在已经用inotify编写了它,并且写入日志文件时报告的事件显然是“修改”。

1 个答案:

答案 0 :(得分:0)

事实证明,entr不响应IN_MODIFY事件,而仅响应这些事件(在Linux中):

IN_CLOSE_WRITE|IN_DELETE_SELF|IN_MOVE_SELF|IN_CREATE

也是IN_ATTRIB,但仅当文件模式或inode编号更改时。

在BSD / OSX中,它是:

NOTE_DELETE|NOTE_WRITE|NOTE_RENAME|NOTE_TRUNCATE|NOTE_ATTRIB

此外,选项-r-d选项的上下文中无效。仅在entr正在监视文件时有效。

请参阅开发者的comments。另外,请输入more info