<p>处理/处理随机创建的文件的一个好方法是使用
<code>incron</code>而不是{<cd2>}。(注意:由于incron使用的是Linux内核
<a href="http://inotify.aiken.cz/?section=inotify&page=why&lang=en" rel="nofollow noreferrer">inotify</a>syscalls,此解决方案仅适用于Linux。)</p>
<p>而<code>cron</code>基于日期和时间运行作业,<code>incron</code>则基于
监视目录中的更改。例如,可以将incron配置为运行
每次创建或修改新文件时的作业。在</p>
<p>在Ubuntu上,这个包名为<code>incron</code>。我不确定RedHat,但我相信这是正确的包:<a href="http://rpmfind.net//linux/RPM/dag/redhat/el5/i386/incron-0.5.9-1.el5.rf.i386.html" rel="nofollow noreferrer">http://rpmfind.net//linux/RPM/dag/redhat/el5/i386/incron-0.5.9-1.el5.rf.i386.html</a>。在</p>
<p>一旦安装了incron软件包,请阅读</p>
<pre><code>man 5 incrontab
</code></pre>
<p>有关如何设置incrontab配置文件的信息。您的<code>incron_config</code>文件可能如下所示:</p>
^{pr2}$
<p>然后在incrond守护进程中注册这个配置,您可以运行</p>
<pre><code>incrontab /path/to/incron_config
</code></pre>
<p>就这些了。现在,每当在/var/ss01、/var/ss02、/var/ss03或/var/ss04中创建文件时,命令</p>
<pre><code>/path/to/processing/script.py $#
</code></pre>
<p>运行,并将$#替换为新创建的文件的名称。在</p>
<p>这样就不需要存储/比较散列,文件只会被处理一次——在创建之后立即处理。在</p>
<p>只需确保处理脚本不会写入受监视目录的顶层。
如果是这样,incrond将注意到新文件的创建,并启动脚本.py再次,让你进入一个无限循环。在</p>
<p>incrond监视单个目录,而不递归地监视子目录。所以您可以指示tshark写入/var/ss01/tobeprocessed,使用incron进行监视
/var/ss01/to已处理,并将您的脚本.py例如,写入/var/ss01。在</p>
<p>还有一个python接口用于inotify,称为<a href="http://trac.dbzteam.org/pyinotify" rel="nofollow noreferrer">pyinotify</a>。与incron不同,pyinotify可以递归地监视子目录。但是,在您的情况下,我认为递归监视特性没有用处或必要。在</p>