在目录中创建新文件时在Linux中运行Crontab

时间:2018-08-11 06:06:36

标签: php linux ubuntu cron ubuntu-16.04

我在ubuntu 16.04中设置了一个crontab,以通过PHP脚本从/var/www/html/import/IMPORT-DATA.CSV获取数据。

*/5 * * * * php /var/www/html/cron/import-csv.php

它工作正常,并且在获取数据后,我的PHP脚本将删除文件(/var/www/html/import/IMPORT-DATA.CSV)。

我想在Linux(crontab或其他工具)中设置一个脚本,如果将PHP script文件上传到目录IMPORT-DATA.CSV /var/www/html/import/ >

2 个答案:

答案 0 :(得分:0)

一种可以分发任务的方法是3种不同的脚本并将它们链接到cron中。

*/5 * * * * php /var/www/html/cron/import-csv.php && /var/www/html/cron/YOUR_PERFORM_SOME_OTHER_TASK_PHP_SCRIPT && /var/www/html/cron/YOUR_DELETE-CSV-SCRIPT.php

&&将确保下一个脚本仅在前一个脚本运行时运行  成功运行。

答案 1 :(得分:0)

我可以想到几种方法:

  1. 了解是否可以将您的FTP服务器配置为触发脚本。 (例如,pureftpd的上载脚本功能https://linux.die.net/man/8/pure-uploadscript并不是所有的FTP服务器软件都可以做到这一点。)
  2. 也许使用inotify设置inotify-tools.观察者(您也可以使用PHP创建自己的观察者(inotify extension),但这可能会抵消任何性能提升,因为您拥有实例不断运行。)

还有第三种选择::如果您只是想避免调用PHP只是为了查看文件不存在,可以在调用您的bash文件之前先进行链接PHP脚本。 cron调用仍然每5分钟运行一次,但仅在文件存在的情况下才调用PHP。 (请注意,我尚未对此进行完全测试,但相当有信心。)

SHELL=/bin/bash
*/5 * * * * test -e /var/www/html/import/IMPORT-DATA.CSV && php /var/www/html/cron/import-csv.php