【问题标题】:Amazon Web Services - cronjob not running every minuteAmazon Web Services - cronjob 并非每分钟都运行
【发布时间】:2015-05-08 00:22:42
【问题描述】:

我在 AWS ec2 上定义了一个 cronjob(因此它使用 crontab)。我做了crontab -e 并将这一行添加到其中:

*/1 * * * * /usr/bin/php /path/to/file/file.php

我用 vim 保存了它,上面写着crontab: installing new crontab。我还使用 chmod 对文件 755 授予了权限,并将正确的 shebang (#!/usr/bin/php -q) 放在 file.php 的顶部。该脚本应该每分钟更新一个数据库,但我根本没有看到数据库得到更新。我做错了什么?

【问题讨论】:

  • 做过任何基本的调试,比如检查脚本是否运行?例如而不是检查数据库,让文件更改其他内容,例如创建一个临时文件,结束一封电子邮件等...以确认它正在执行。如果发生这种情况,那么开始深入研究脚本并在它爆炸的阶段进行调试。并且由于您正在执行/usr/bin/php scritp,因此 755 权限和 #! shebang 是多余的。该方法执行的php脚本只需要授予读取权限即可。
  • @MarcB 感谢您的建议,我会尝试深入了解
  • @heinst 对于 Marc 的评论,我建议您输出到日志文件,例如时间戳(这也验证脚本是否每分钟运行 0 并写入其他可能有用的运行时脚本信息(即在进行数据库更改之前,在进行数据库更改之后等是否连接到数据库,以便您可以查看脚本是否正在执行您认为正在执行的操作。是否可以发布至少部分 PHP脚本减去任何用户凭据。例如,如果您在此处包含部分代码,则只需使用户名 = 用户和密码 = 通过。
  • 并非所有操作系统都支持每 2 分钟 /2 分钟或每 10 分钟 /10 之类的重复模式。更糟糕的是,一些操作系统会接受时间规范但会拒绝运行。请改用*。它已经意味着每一分钟。

标签: amazon-web-services amazon-ec2 crontab


【解决方案1】:

记录示例: */1 * * * * >> /var/log//your_cron.log 2>&1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2011-06-21
    • 1970-01-01
    • 2018-05-28
    • 2014-11-02
    相关资源
    最近更新 更多