2015-07-19 132 views
0

我想运行一些crontab任务,并不是所有的人都在执行。这是我的crontab -eCrontab没有运行脚本到php

@hourly /root/scripts/update.sh 
@hourly /root/scripts/twitter/update.sh 

的第一个任务工作的确切内容,第二个没有。两者都有chmod 777

两者之间唯一的区别是后者.SH有这个在它:

#! /bin/bash 
php -f updateTwitter.php 

所以我想知道是否有与crontab中调用脚本的问题,即然后调用PHP文件?

如果我手动运行脚本(./update.sh),它的工作原理。我检查了crontab日志,我可以看到正在执行的进程。

我正在运行CentOS6。

+0

看起来好像在文件的开头缺少shebang“!/ bin/sh”。为什么不直接在crontab中执行php命令(你可能需要一个绝对路径到php)? – MrTux

+0

我更新了我正在使用的shebang的问题,忘记添加它。我曾尝试告诉crontab直接使用php并运行php文件,虽然同样的事情发生--crontab记录进程而不执行它。 – maffo

回答

0

的crontab

MAILTO:[email protected] 
@hourly cd /root/scripts/twitter; update.sh 

在update.sh

#!/bin/bash 
/usr/bin/php updateTwitter.php 

假设updateTwitter.php在/根/脚本/叽叽喳喳

+0

我更新了我的crontab,使其像你的一样,我也更新了.sh以像你的。尽管如此,也是如此。我添加了'echo'开始>> log.txt到.sh文件以查看crontab是否甚至启动了.sh文件。它不是,没有日志产生。所以它似乎甚至没有尝试启动.sh文件。 – maffo

0

这似乎工作:

/usr/bin/php -f /root/scripts/twitter/update.php

我加入了PHP文件的完整路径在.SH 我如果crontab从另一个位置运行的SH文件纳闷,这意味着它无法找到一个本地文件update.php。通过指定路径,我说的是运行这个版本,而不是可能在你运行的目录中。