Cronjob和PHP一起工作?

时间:2015-03-18 15:28:04

标签: php bash cron cron-task

我编写了一个将CSV文件推送到数据库的PHP脚本。我想每分钟自动完成这项工作。我知道在Linux上通过cron有一种方法,但我对bash一无所知,并认为cron不能给我的PHP文件回调,所以我可以为用户显示进度条以查看定时器间隔。我该怎么办?

3 个答案:

答案 0 :(得分:0)

添加一个cron并让它每分钟运行一次,输入crontab -e并添加以下行

* * * * * command you need executing

示例:

* * * * * ls -l /home/ > /usr/local/users.txt
* * * * * df -h > /tmp/filesystem_usage.txt
* * * * * service httpd restart

答案 1 :(得分:0)

看一下这个首发:http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/

另外请记住,cronjobs不支持所有$ _SERVER变量,如'DOCUMENT_ROOT'和'HTTP_HOST',因此请尽量避免使用它们,或使用变通方法。

一些“回调”可能性: - 让你的脚本触发另一个脚本 - 将cron的输出重定向到另一个bash脚本 - ......

答案 2 :(得分:0)

您可以使用crontab -e输入作业。如果您的默认编辑器是vi,我建议使用export EDITOR=nano将其更改为nano,因为它很容易用于初学者。

crontab文件的每一行代表一个作业。前5个令牌分别是:分钟,小时,月份,月份,星期几,最后一个是命令所以在你的情况下,前5个令牌将是* * * * *这意味着每隔几分钟运行这个工作是'00'。

您可以使用以下命令直接调用您的php文件:php /var/www/cron.php &或使用浏览器wget -O /dev/null http://example.com/cron.php如果您使用的是第一个,则不能使用某些$ _SERVER变量,但如果您使用第二个,则它就像一个真正的浏览器。

在您的情况下,您可以这样使用:

* * * * * wget -O /dev/null http://example.com/cron.php