我有一个目录,当其他机器通过 FTP 发送文件时,它会被写入。我想放置一些东西来通知文件何时到达,如果它们的文件名包含特定的子字符串(如“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 可能不是我想要运行它的所有地方都可用。我没有安装软件包的权限。
答案1
很久以前我写过这个 Perl 程序,如果你理解它,它可以帮助你入门。它使用了内核中的 inotify 功能。
http://www.win2ix.ca/2013/05/31/606/
您必须将代码从同步更改为执行您需要的任何操作,但它基本上都在那里。
我知道您在使用 Perl 时遇到了问题,但是为了以防万一,我还是想把这个给您。
如果有帮助的话,这里有一个关于如何使用 C 实现的演示
http://man7.org/tlpi/code/online/diff/inotify/demo_inotify.c.html