【问题标题】:CronJob not working at midnight but its working if i set it at every 5 minCronJob 在午夜不工作,但如果我每 5 分钟设置一次,它就可以工作
【发布时间】:2015-08-05 16:51:41
【问题描述】:

我已经创建了 cronjob,但是如果我在每天午夜设置一次,它就无法工作。但是,如果我每 5 分钟设置一次,那么它就可以工作了。我不明白什么问题?

这里附上midnight cron的截图:

我尝试通过添加我的邮件 ID 来调试它,但如果我将其设置为午夜,我将收不到任何邮件。

【问题讨论】:

  • 只是一个想法尝试00 00 * * *
  • 什么是“不工作”?是没有执行还是出错了?
  • 没有执行,即使我添加了我的邮件 ID,但我没有收到任何邮件。
  • Executing php with crontab 的可能副本
  • @Alister 不,这是不同的事情,我非常了解 cron 工作,但这次我遇到了这个问题,我的命令行很完美,如果我每 5 分钟设置一次 cron,我的 php 脚本运行完美。但它没有在@午夜运行。

标签: php mysql cron


【解决方案1】:

Cronjobs 适用于他们的环境,而不是您的环境。所以它找不到php二进制文件。用

查找php路径
which php

并将您的 cronjobs 的“php”更改为打印路径。

【讨论】:

  • 没有一条路是完美的,因为如果我每天每 5 分钟设置一次,它就会起作用。但是当我设置@午夜时它没有执行
  • 您是否尝试过 00:01 可能在 00:00 系统中发生了其他事情... 1 分钟后是否可以接受?
【解决方案2】:

你的 cronjob 行应该是这样的:

00 00 * * * /fullpath/to/your/script.php

(00 00 表示午夜--0 分和 0 小时-- *s 表示每个月的每一天。)

Syntax: 
  mm hh dd mt wd  command

  mm minute 0-59
  hh hour 0-23
  dd day of month 1-31
  mt month 1-12
  wd day of week 0-7 (Sunday = 0 or 7)
  command: what you want to run
  all numeric values can be replaced by * which means all

更详细:

Minutes [0-59]
|   Hours [0-23]
|   |   Days [1-31]
|   |   |   Months [1-12]
|   |   |   |   Days of the Week [Numeric, 0-6]
|   |   |   |   |
*   *   *   *   * home/path/to/command/the_command.sh

【讨论】:

  • 我不能选择 00。如果你选择午夜 12:00,它只会出现 0。
  • 你在哪里租用你的服务器?
【解决方案3】:

每天午夜运行的 Cron 像

00 00 * * * /usr/local/bin/php /home/john/myscript.php

/usr/local/bin/php 是 php 路径。第二个/home/john/myscript.php 是您的脚本路径。

有很多方法listed here 你可以在cron中运行PHP。

如果它不能解决您的问题,请告诉我!

【讨论】:

  • 我不能选择 00。如果你选择午夜 12:00,它只会出现 0。
  • 好的,我建议 1. 您应该在命令提示符下运行/usr/local/bin/php /home/john/myscript.php,然后每天使用一次,但使用当前时间的5 min 来测试它是否正常工作或不是。
  • 你的意思是每5分钟一次?
  • 我的意思是,如果您的当前时间是下午 3:25,那么每天下午 3:30 一次。所以你可以测试。还要检查 php 文件的权限。
  • 是的,我做到了,它运行了。我每 5 分钟做一次,然后我在 5 分钟后每天做一次,就像你说的和它的运行一样。但是@午夜它没有运行...... :(
猜你喜欢
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 2020-09-29
  • 2016-04-02
  • 2022-01-19
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多