11

我是 Linux 和脚本环境的初学者。我的要求是这样的:

  1. 从 asp.net 应用程序中,将生成一个文件并将其复制到 Linux 服务器计算机上的预定义文件夹中。(我假设这可以通过使用 samba 服务器的远程文件共享来完成)

  2. Linux 机器中应该有一个服务或脚本或任何东西来持续跟踪文件是否可用。

  3. 一旦有新文件可用,只需解析文件,提取一些输入变量并根据这些参数执行 shell 脚本。

我的问题在于第 2 点。--> 如何编写一个服务或脚本来连续执行并监控特定文件夹中的文件是否可用?

我搜索了很多,进入了很多链接,我很困惑什么是最简单的方法。因为我不想在这里花费大量编码,因为脚本要进一步执行,而 asp.net 应用程序更重要,这应该是两者之间的连接器。

4

2 回答 2

21

你正在寻找类似的东西inotify

[cnicutar@ariel ~]$ inotifywait -m -e create ~/somedir/
Setting up watches.
Watches established.
/home/cnicutar/somedir/ CREATE somefile

例如,您可以在循环中执行此操作:

inotifywait -m -e create ~/somedir/ | while read line
do
    echo $line
done
于 2013-09-09T05:51:44.043 回答
2

inotify是您问题的完美解决方案。它可用作可在 shell 中使用的系统命令,或可用作可在 C/C++ 程序中使用的系统调用。有关详细信息,请参阅此问题的公认答案:Inotify - 如何使用它?- linux

更新:您需要inotify-tools在命令行上使用。上述问题的答案仅描述了 C/C++ 系统调用。这是 inotify-tools 的链接。它也可以作为打包发行版提供,因此请搜索您最喜欢的安装存储库(yum/ apt-get/rpm等):https ://github.com/rvoicilas/inotify-tools/wiki

于 2013-09-09T05:51:07.223 回答