Cronjob 和 PHP 一起工作?

Cronjob and PHP working together?

我写了一个 PHP 脚本,将 CSV 文件推送到数据库中。我想每分钟自动执行一次。我知道有一种方法可以通过 Linux 上的 cron,但我对 bash 一无所知,并且认为 cron 不能给我的 PHP 文件回调,所以我可以显示进度供用户查看计时器间隔的栏。我该怎么办?

要添加一个 cron 并使其每分钟 运行,请键入 crontab -e 并添加以下行

* * * * * command you need executing

示例:

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

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

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

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

您可以使用 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