我已在我网站的某个页面上放置了一个Cron作业。我使用的命令是:
30 */1 * * */twitter/index.php
我希望此页面每小时从上午12:30(凌晨1:30,凌晨2:30等)开始刷新。我已经设置了我的电子邮件,以便我可以收到错误,而且我得到的错误是
/bin/sh: 30: command not found
我的主机是“JustHost”(它确实支持cPanel中的Cron Jobs)
页面开启:
www.DOMAINNAME.com/twitter/index.php
感谢。
答案 0 :(得分:1)
/twitter/index.php
搜索系统根目录中名为twitter
的目录。它不太可能存在。它可能是您域的根,但它不是您网站的文件系统目录的根。
相反,它应该是这样的:
/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
因此,如果您没有此信息,请与您的主机联系,以了解要使用的确切路径。他们可能有关于这个主题的文件。
答案 1 :(得分:1)
如果这个命令:
30 */1 * * */twitter/index.php
给你这个错误:
/bin/sh: 30: command not found
然后你试图将它作为shell命令执行。
要设置cron
命令,您必须将其提供给crontab
命令。执行此操作的最佳方法是IMHO,即使用格式正确的crontab条目创建文件(可能为$HOME/.crontab
),然后执行:
% crontab $HOME/.crontab
换句话说,不要执行crontab文件,将其提供给crontab
命令。
另请注意,字段之间必须有空格。前5个字段指定命令运行的时间;剩下的就是命令本身。您在第5个字段和其余字段之间没有空格。此外,*/1
更简单地写为*
。所以这个:
30 * * * * /twitter/index.php
如果您希望在每小时后30分钟运行/twitter/index.php
,那么将是放入crontab的正确行。
这假定index.php
是一个可执行文件,位于文件系统根目录下的twitter
目录中,这可能有点奇怪。如果它在其他地方,则应指定要执行的命令的完整路径。 Cron的工作环境有限;特别是,它们在交互式shell中可能没有相同的$PATH
。
答案 2 :(得分:0)
您应该执行的命令是从root到包含您要运行的特定php文件的文件夹的完整路径。大多数CPanels都会在其他地方设置时序设置,并为您创建cron表达式。只需将路径放在命令字段中即可。