【问题标题】:Cron job not working in RaspberryCron 作业在 Raspberry 中不起作用
【发布时间】:2017-07-07 04:14:39
【问题描述】:

我想在我的 Raspberry 中添加一个 cron 作业,以每五分钟执行一次任务。 所以我在终端做:

crontab -e

然后在文件中添加:

*/1 * * * * /usr/bin/php myscript path.

脚本非常简单。只是试试它是否有效:

 <?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = date("l jS \of F Y h:i:s A") . "<br>";;
fwrite($myfile, $txt);
fclose($myfile);
?>

问题是日期没有更新,所以 cron 作业不起作用。知道这个问题吗?

更新

这是我得到的,当我执行 crobtab -e 时

    GNU nano 2.2.6        File: /tmp/crontab.3IXg0z/crontab                       

# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
* * * * * /usr/bin/php /full/path/myscript.php

【问题讨论】:

  • 你确定它不起作用吗?检查您帐户的邮件。 cron 将输出/作业日志通过电子邮件发送到 account.plus .../php myscript path 意味着您的 php 代码文件称为 myscript,并且您将 path 作为命令行参数传递。
  • 您能否在crontab tag wiki 上完成调试步骤并报告您的发现?
  • 脚本有777权限,作为文件。我添加的完整行是: */5 * * * * /usr/bin/php /var/www/mydomain.com/public_html/test.php

标签: php linux cron raspberry-pi


【解决方案1】:

首先,确保脚本是可执行的:

chmod +x /path/to/some/script.php

其次,确保你的脚本在第一行有一个合适的#!(或“shebang”):

#!/usr/bin/php

然后确保您的 cron 作业配置正确。 cron 的格式通常为m h dom mon dow command

sudo crontab -e

*/5 * * * * /path/to/some/script.php

【讨论】:

  • 我已经设置了可执行文件。如果在终端中执行此命令,它将运行 script.php:/usr/bin/php /path/test.php。我认为在crontab -e中,你必须插入机器的php路径
  • 脚本第一行有#!/usr/bin/php吗?如果是,则无需致电/usr/bin/php
【解决方案2】:

如果您想每 5 分钟运行一次脚本,则应添加此条目。

*/5 * * * * /usr/bin/php /full/path/to/php/script.php

【讨论】:

  • 这就是我写的:*/5 * * * * /usr/bin/php /var/www/mydomain.com/public_html/test.php,但什么也没发生!
【解决方案3】:

确保您在 crontab 上正确设置了 PATH 变量,以便它可以找到您的文件。

您可以简单地将以下行放在crontab 的顶部

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/path/to/newfile.txt

试试看

* * * * * touch /tmp/hello

执行以下操作以重定向结果

*/5 * * * * /usr/bin/php /full/path/to/php/script.php > /tmp/out.txt

确保您的脚本在命令行上运行。

/usr/bin/php /full/path/to/php/script.php

使用 -f 选项执行脚本:

*/5 * * * * /usr/bin/php -f /full/path/to/php/script.php

Tail 日志文件以查看其每 5 分钟执行一次

tail -f /var/log/cron

【讨论】:

  • 我修改了问题,你可以看看我的文件。
  • 你的脚本是否在 shell /usr/bin/php /full/path/myscript.php 上执行?
  • 是的,这条线很好用,但不能用 crobtab :(
  • 让我们试试 hello world 程序,看看它是如何运行的 &lt;?php Print "Hello, World!\n"; ?&gt; 并将其放入您的 crontab * * * * * /usr/bin/php /tmp/helloworld.php &gt;&gt; /tmp/helloworld.out
  • 也试试这个*/5 * * * * php /full/path/myscript.php 不要使用/usr/bin/php 并把#!/usr/bin/env php 放在你的脚本中,听起来很奇怪,但我以前在perl 中看到过这个问题
猜你喜欢
  • 2015-02-23
  • 2016-07-21
  • 1970-01-01
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
相关资源
最近更新 更多