【问题标题】:Crontab is not working... Tried all possible solutionsCrontab 不工作...尝试了所有可能的解决方案
【发布时间】:2015-12-01 05:29:07
【问题描述】:

我正在尝试从无法运行的 php 脚本运行自动化任务。出于测试目的,我创建了 test.php,但仍然没有任何效果。

这些是我在流程中执行的行

crontab -e

这用

打开 nano
#.............hint text were here
#.............hint text were here
* * * * * /usr/local/bin/php -f test.php

然后我重新启动了 crontab

sudo service cron restart

确认 cron 正在使用

pgrep cron

并得到了结果。还有

/usr/local/bin/php test.php

在终端也给了我Hello World

Test.php

!#/usr/local/bin/php
<?php

echo "Hello World";

?>

cronjob也是通过执行来确认的

crontab -l

也尝试设置权限

chmod +x test.php
chmod 755 test.php
chmod 600 test.php

寻找支持来实现它。谢谢。

【问题讨论】:

  • 那么为什么你认为 cron 不工作?尝试将输出重定向到一个文件,看看是否会有Hello World 条目。编辑 cron 使其看起来像这样 * * * * * /usr/local/bin/php -f test.php &gt; /tmp/log.log 2&gt;&amp;1 并在一分钟后检查 /tmp/log.log 文件。
  • /bin/sh: 1: usr/local/bin/php: 未找到
  • 但我的哪里 php 显示 usr/local/bin/php
  • 知道了。谢谢。简单使用php并开始获取输出。
  • 您能否将其发布为答案。

标签: php cron


【解决方案1】:

很有可能您的 crontab 正在工作,但您只是看不到输出,因为默认情况下 cron mailsstandarderror 输出到 cron 作业的所有者。因此,您可以将它们重定向到一个文件并手动检出。 您可以通过编辑 crontab 条目来做到这一点,使其看起来像这样:

* * * * * /usr/local/bin/php -f test.php > /tmp/log.log 2>&1

然后您可以在一分钟内检查它以确保您的工作确实有效。 我希望这会有所帮助。

编辑

正如问题的 cmets 所证明的那样,log.log 文件中记录了一个错误 /bin/sh: 1: usr/local/bin/php: not found,仅使用 php 即可修复该错误

【讨论】:

  • * 14 * * * /usr/local/bin/php -f test.php > /tmp/new.csv 2>&1 每天下午 2 点我需要生成一个 csv 文件。这个命令正确吗?
  • 不,这将在第 14 小时每分钟运行一次。您需要指定 0 而不是第一个星号,以使 cron 恰好在 14:00 运行
  • 0 14 * * * /usr/local/bin/php -f test.php > /tmp/new.csv 2>&1 这是正确的
【解决方案2】:

尝试执行以下操作

*/1 * * * * [username] /usr/local/bin/php -f test.php

e.g. */1 * * * * root /usr/local/bin/php -f test.php

【讨论】:

  • /bin/sh: 1: ubuntu: 未找到
最近更新 更多