【问题标题】:Schedule a simple php file on Cronjob on Godaddy在 Godaddy 上的 Cronjob 上安排一个简单的 php 文件
【发布时间】:2020-11-05 12:10:54
【问题描述】:

我正在尝试从下午 6 点开始每 15 分钟运行一次 PHP 文件。我已经这样设置了 cronjob:

*/15 18 * * * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php

有人可以确认这个脚本是否会在下午 6 点运行,之后每 15 分钟运行一次吗?

服务器处于 MST 标准时间。所以我设置了下午 6 点。我希望 script.php 从 IST 上午 6:00 运行到下午 7:00 IST。所以我设置了 6 PM MST。

在 Godaddy 中,这个过程没有发生。如果 cronjob 运行成功,有没有办法检查日志?

谢谢!

【问题讨论】:

  • 这只会运行 4 次,每天 18:00、18:15、18:30 和 18:45。这就是你所追求的吗? Crontab Guru.
  • 请记住,这将从服务器本地时区的下午 6 点开始运行。这可能与您自己的时区不匹配。
  • 哦,我想从下午 6 点开始跑步,每天每 15 分钟跑步一次
  • @Phil:是的。服务器时间为 MST。下午 6 点,所以 IST 早上 6:30。
  • 我希望它每天早上 6:00 IST 到晚上 7:00 IST 运行。每 15 分钟一班。

标签: php cron cron-task


【解决方案1】:

这个从 18:00 运行到一天结束...在 11 月第 4 天的 18 到 23 的每个小时的每 15 分钟运行一次。

*/15 18-23 4 11 * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php

然后你从今晚 0:00 开始制作一个新的……在 11 月 5 日到 31 日的每个月的每 15 分钟。

*/15 * 5-31 11 * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php

然后你在 12 月的每 15 分钟再做一个。

*/15 * * 12 * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php

在 12 月,您将它永远变成一个……用“*”删除“12”

【讨论】:

  • 每天每 15 分钟运行一次。
  • 我希望它每天早上 6:00 到晚上 7:00 IST 运行。每 15 分钟一班。由于服务器是 MST,所以我设置了 18:00 小时
  • 因此,如果我需要每分钟运行一次,直到 IST 晚上 7 点,那么我必须这样做: */15 18 * * * /usr/local/bin/php -q /home/ddruva/ public_html/site_data/script.php */15 19 * * * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php */15 20 * * * /usr/local/bin/ php -q /home/ddruva/public_html/site_data/script.php
  • */15 21 * * * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php */15 22 * * * /usr/local/bin /php -q /home/ddruva/public_html/site_data/script.php */15 23 * * * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php */15 00 * * * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php 像这样。
  • 您可以一次将它们全部放入 crontab 中。他们将一个接一个地运行。它们不冲突。
【解决方案2】:

服务器处于 MST 标准时间...我希望 script.php 从 IST 上午 6:00 运行到下午 7:00 IST。

好的,所以...

  • 06:00 IST 是 17:30 MST(前一天)
  • 19:00 IST 是 06:30 MST(同一天)

这带来了两个问题

  1. 它跨越了午夜边界,并且
  2. 偏移的 30 分钟部分使得创建在正确时间开始/停止的重复 15 分钟模式非常困难。

简单的选择是要求您的托管服务提供商配置您的服务器的时区,或者尝试使用CRON_TZ 环境变量(如果可用)(可能不使用 Godaddy)。

CRON_TZ=Asia/Kolkata

*/15 6-18 * * * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php

否则,你会得到这样的东西(丑陋)

# 5.30pm and 5.45pm
30,45 17 * * * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php

# Every 15 minutes from midnight till 6am and from 6pm till midnight
*/15 0-5,18-23 * * * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php

# 6am and 6.15am
0,15 6 * * * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php

使用这种方法,当您的服务器在标准时间和夏令时之间切换时,您可能会遇到问题,老实说,我真的没有答案。

【讨论】:

  • 什么是 0-5?所以我把这三个都放了,它会起作用的。
  • 午夜(含)至早上 6 点(不含)。它基本上只是说,“是 0 到 5 之间的小时(即 0、1、2、3、4 或 5)”
  • */15 0-5,18-23 * * * /usr/local/bin/php -q /home/ddruva/public_html/site_data/script.php - 这个取0,正确的每 15 分钟 5 次,但 18-23 需要每小时一次
  • 这实际上是不可能的。你是怎么得出这个结论的?
  • 我在两个不同的服务器上测试过。
猜你喜欢
  • 2012-12-25
  • 2013-10-16
  • 1970-01-01
  • 1970-01-01
  • 2018-08-14
  • 2015-09-02
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
相关资源
最近更新 更多