如果inotifywait不可用,如何查看arrivng文件?

当其他机器通过FTP发送文件时,我有一个目录被写入。 我想在文件到达的时候注意一些事情,如果文件名包含一个特定的子string(如“jpg”),将文件移动到其他目录(只有在文件完成到达之后,而不是之前)

我想把它放在许多不同种类的Linux机器上。 一个这样的盒子有Linux内核2.4.22。 有可能有更旧的。 我还在检查。

在旧的机器上,我看到: inotifywait: command not found

我也看到: The inotify API is available in Linux 2.6.13 and later

而这个: bash: watch: command not found

在POSIX sh或bash或C中的想法可以工作。 Perl和Python可能无法在任何地方运行。 我没有安装软件包的权限。

我很早以前就写了这个Perl程序,如果你能理解的话,可以让你开始。 它使用内核中的inotify特性。

http://www.win2ix.ca/2013/05/31/606/

你必须从同步改变代码来做你需要的任何东西,但是大部分都是在那里。

我知道你有一个Perl的问题,但我想把这个给你,以防万一。

如果有帮助的话,下面是一个关于如何用C实现的演示

http://man7.org/tlpi/code/online/diff/inotify/demo_inotify.c.html