0

我在我网站的一个页面上放置了一个 Cron 作业。我使用的命令是:

30 */1 * * */twitter/index.php

我希望此页面从凌晨 12:30(凌晨 1:30、凌晨 2:30 等)开始每小时刷新一次。我已经设置了我的电子邮件,以便我可以收到错误,我得到的错误是

/bin/sh: 30: command not found

我的主机是“JustHost”(它确实支持 cPanel 中的 Cron 作业)

该页面在:
www.DOMAINNAME.com/twitter/index.php

谢谢。

4

3 回答 3

1

/twitter/index.phptwitter搜索系统根目录中命名的目录。它不太可能在那里。它可能是您域的根目录,但它不是您网站文件系统目录的根目录。

相反,它可能应该是这样的: /home/youraccountnumber/yourdomainname/twitter/index.php.

至少在我的 CPanel 中也支持 cron 作业。当我创建一个新的 cron 时,该部分/home/myaccountnumber已被填写。:)

CPanel 还告诉我:

Sample cron commands:
/usr/local/bin/php /home/*myaccount*/domains/domain.com/public_html/script.php
/usr/local/bin/curl --silent http://www.domain.com/cron.php > /dev/null
/usr/local/bin/wget -O /dev/null http://www.domain.com/cron.php

因此,如果您没有此信息,请联系您的主机以了解要使用的确切路径。他们可能有关于该主题的文档。

于 2013-07-12T19:15:35.610 回答
1

如果这个命令:

30 */1 * * */twitter/index.php

给你这个错误:

/bin/sh: 30: command not found

然后您尝试将其作为 shell 命令执行。

要设置cron命令,您必须将其提供给crontab命令。恕我直言,最好的方法是$HOME/.crontab使用格式正确的 crontab 条目创建一个文件(可能是 ),然后执行:

% crontab $HOME/.crontab

换句话说,不要执行您的 crontab 文件,将其提供给crontab命令。

另请注意,字段之间必须有空格。前 5 个字段指定命令何时运行;其余的是命令本身。第 5 个字段和剩余字段之间没有空格。此外,*/1更简单地写为 just *。所以这:

30 * * * * /twitter/index.php

/twitter/index.php如果您想在每小时后 30 分钟运行,将是放入 crontab 的正确行。

这假设index.php是一个可执行文件位于twitter文件系统根目录下的目录中,这是可能的,但有点奇怪。如果它在其他地方,您应该指定要执行的命令的完整路径。Cron 作业在有限的环境中运行;特别是,它们可能与$PATH您在交互式 shell 中的不同。

于 2013-07-12T20:44:52.840 回答
0

您应该执行的命令是从根目录到您要运行的特定 php 文件所在文件夹的完整路径。大多数 CPanel 将在其他地方进行计时设置,并为您创建 cron 表达式。只需将文件的路径放在命令字段中即可。

于 2013-07-12T19:19:04.720 回答