【问题标题】:Cronjob and PHP working together?Cronjob 和 PHP 一起工作?
【发布时间】:2015-05-21 11:22:30
【问题描述】:

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

【问题讨论】:

  • 什么用户?如果您想每分钟在服务器上自动执行此操作,谁会查看它,为什么?
  • 它就像一些管理员的预览,以查看工作中发生了什么以及当前更新了哪个表

标签: php bash cron cron-task


【解决方案1】:

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

* * * * * command you need executing

示例:

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

【讨论】:

    【解决方案2】:

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

    还请记住,cronjobs 不支持所有 $_SERVER 变量,例如“DOCUMENT_ROOT”和“HTTP_HOST”,因此请尽量避免使用它们,或使用解决方法。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • OKEY 不错!非常感谢,但还有一个问题。我的提供商确实支持每小时一次的 cronjobs。我可以将 bash 文件放入根目录以便加载吗?或者是否存在其他一些应用程序/想法来做我的事情?我的提供商是 Strato/DE,我使用的是 windows,所以很难尝试 cronjobs
      • 您是否可以使用 SSH 访问服务器?如果您可以执行 bash 文件,您可以像这样使用:http://www.cyberciti.biz/faq/linux-unix-sleep-bash-scripting/ 或创建一个 php 文件,该文件在每个循环上休眠 1 分钟并执行 1 小时
      猜你喜欢
      • 2013-05-09
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      相关资源
      最近更新 更多