Linux:更改操作系统源代码或自动启动脚本

时间:2011-07-04 00:58:56

标签: linux bash

这正是我想要做的事情:有一个脚本,在检测到新文件已被放入预定义目录时,运行一个小文件名扫描&移动算法。

简单示例:我选择监控/ home / myname / Downloads。说该文件夹的状态已更改,someClass.java刚刚添加。我的算法决定将它发送到/ workspace并执行它。

编写算法很简单。我问的是如何实现这种监控。 我看到2个选项: - 找到Linux自己的文件操作脚本并在那里添加我的代码 - 有一个正常的bash脚本,以某种方式得到通知并在文件夹中发生事件时运行

还是我完全离开了?

2 个答案:

答案 0 :(得分:4)

扩展Ignacio建议使用incron:Linux提供inotify(7)机制,允许程序观察文件和目录进行修改。 (这对于KDE和GNOME explorer.exe克隆来说特别好 - 允许目录列表在添加或删除新文件时立即更新,而不会对目录内容进行busy-wait不断的重新轮询。)

直接使用inotify_add_watch(2)是繁琐的编程。我很高兴找到incron(再次感谢Ignacio),这听起来像是一个完美的可重用工具,可以使用声明语法轻松地为每个人使用inotify(7)

答案 1 :(得分:1)

正如@ignocio所说,incron会奏效。但是,如果你刚开始,这里有一些更常见的东西。

查看cron。它将允许您以设定的时间间隔运行脚本。对于这种情况不太好,但你可以每分钟,每小时,每天,每月,每周等运行一次,等等。

无论哪种方式,在脚本中,执行ls来获取相应目录中的所有文件。将它们放在一个数组中,循环遍历它们,然后根据需要进行处理。