我想每分钟运行一次cronjob来检测特定目录中最后一分钟更改的所有文件(大约300.000 inode)并将此文件列表导出到csv。
是否可以运行优化命令来执行此操作?我无法在此目录中运行带有排序标志的“查找”,因为它很大,运行所有文件可能需要1分钟以上。
我可以做任何命令吗?或者在服务器的后台运行任何特定的程序,记录每个已更改的文件?如果有一个使用PHP的命令来执行此操作我很好,我可以创建一个cron来执行PHP脚本,没问题。
答案 0 :(得分:2)
有一个名为incron的Linux实用程序,可以像普通的cron一样使用,但是它不是基于时间的事件,而是从inotify开始工作,并从文件事件中触发。
您可以在此处找到Ubuntu手册页:http://manpages.ubuntu.com/manpages/intrepid/man5/incrontab.5.html
我个人不必将它用于任何过于复杂的事情,但它大致如下:
安装它:
sudo apt-get install incron
打开编辑器添加条目:
incrontab -e
这样的东西:
/var/www/myfolder IN_MODIFY curl https://www.example.com/api/file-updated/$#
第一部分是要观看的文件或文件夹。第二部分是事件。第三部分是命令。
我认为 $#
是相关文件的占位符。