【问题标题】:cron job on webserver网络服务器上的 cron 作业
【发布时间】:2012-12-12 20:22:01
【问题描述】:

最近几天我研究了 cron 作业。首先我想告诉你我的问题。 我想每分钟在我的网络服务器上运行一个 php 脚本而不加载页面。这个 php 脚本通过 yql 插入一些数据。我读到 cron 只是在使用 unix/linux。我的服务器在 unix 上运行(等待它)。我现在可以让我的脚本在服务器端睡觉时运行(关闭计算机)吗?我明白了吗?如果是的话,我还必须知道路径在我的日程安排中的命令部分的样子,因为每个示例的内容都类似于“* */1 * * * /usr/bin/wget http://www.example.com/cron.php”,但是为什么路径中有 /usr/bin/wget(这意味着,这个 cron 仅从我的计算机系统而不是从网络服务器运行)以及如何将我的日程安排放在服务器上以及更好的位置。我的服务器有根 public_html 我的 index.php 在里面。请给我一个时间表示例以及如何触发我的名为“to_fire.php”的 php 数据,该数据通过 mysql 将数据放在我的数据库中。

我希望你们中的一些人知道我所说的亲身经历究竟是什么意思。我对这个命令部分以及如何让它只从网络服务器而不是我的计算机系统运行感到困惑。

谢谢

【问题讨论】:

  • 在你的服务器上设置 cron 为*/1 * * * * cd /path/to/script; php some_script.php

标签: php cron


【解决方案1】:
  1. wget 是一个用于访问 Web URL 的 unix 命令。 curl 是另一个类似工作的命令。正如 Gigawatt 所提到的,您也可以使用 php path\to\script.php 运行。都没有太大区别

  2. * */1 * * *是设置cron定时。

  3. /usr/bin/wget 是您服务器上wget 所在的位置

  4. 是的,一旦设置了 cron,您就可以不用管它。只要服务器还活着,cron 就会按计划运行。您甚至可以设置 cron 向您发送电子邮件,但这不适用于您的情况,因为每分钟运行时间太短。

  5. 每分钟运行 cron 似乎并不常见。如果您正在执行诸如实时更新之类的操作,请考虑其他解决方案。

  6. Cron 可以在 cPanel 上设置。

  7. 您需要将您的 cron 脚本配置为仅接受来自同一服务器的请求,以避免其他人访问此 URL。

一些 cron 资源

在 cPanel http://drupal.org/node/369267 中配置 cron 作业

使用 cron http://wiki.lunarpages.com/Backup_Databases_using_a_cron备份数据库

使用 cron 命令 http://drupal.org/node/23714 配置 cron 作业

使用 PHP http://net.tutsplus.com/tutorials/php/managing-cron-jobs-with-php-2/ 管理 Cron 作业

【讨论】:

  • 谢谢你们。现在我只需要知道如何进入根服务器并在里面输入我的日程安排。我不擅长 Unix/Linux。其他资源告诉我连接到 Web 服务器的 shell 帐户?你知道在那里获取我的日程安排 (crontab) 的简单方法吗?
  • @user1791283,最简单的方法是在cPanel中设置它,就像提到的第一个资源一样。 linux不需要很了解,只需要知道脚本怎么写,然后在cpanel中调度即可。