2012-09-18 759 views
1

我在我的红帽服务器上做了一个shell脚本,需要每分钟运行一次。我的脚本位于/media。我已编辑的crontab像这样:每分钟执行一次shell脚本的crontab

* * * * * /media/statusshellscript.sh 

我的剧本肯定是在上面的位置,我知道,5星意味着每分钟运行一次。

哦..和我的脚本definintely作品!因为当我做./statusshellscript时,它工作正常。无论如何,这是我的脚本,它基本上只是运行我制作的php脚本,这使得生活更轻松。

#!/bin/bash 
# Script to execute the PHP Script 

cd ~ 
cd /media/PHPServerTest 
php -f index.php 

Crontab目前没有做任何事情。不知道接下来要尝试什么?

另外..权限不应该是一个问题,因为我已经完成chmod 777 statusshellscript

+1

会不会每分钟都是'*/1 * * * *'? –

+0

...究竟发生了什么? –

+4

@Let_Me_Be为什么不是'*/1 */1 */1 */1 */1'呢? –

回答

1

如果未运行,虽然的cronjob命令其工作得很好,那么就不可能有原因

1)你永远不会使你的文件可执行,你可以在我的使用解析命令

sudo chmod +x filename 

2)你的路径是不正确的,寻找绝对路径,你可以使用命令

realpath(filename) 

如果真实路径尚未安装它会提一下你的命令是如何通过检查这些点应该做工精细安装它

+0

我试过了'sudo chmod + x filename',没有任何变化。无法得到'realpath()'的工作,但我做了'pwd',并得到了我放在crontab中的相同路径。 – rednaxela

+0

如果'。/ filename'有效,'chmod + x filename'不应该被需要,除非发生了新的事情。快速的'ls -l文件名'会告诉OP哪些位被设置。我仍然认为这是由于'PATH'没有在crontab中正确设置。 – HonkyTonk

+0

@rednaxela你可以sudo realpath(文件名),通过使用chmod + x文件名你的文件应该是绿色的,如果它不是之前.... –

0

crontab的PATH与shell中的不一样。

确保您在crontab中定义了一个PATH,其中包含脚本所需的所有内容。

此外,请确保该脚本以指向所需外壳的有效#!标记开头。

或者,在脚本中使用所有命令的完整路径。

0

正如其他人所说,我打赌会是一个错误配置的PATH。尝试把这个到您的路径:

“* * * * * /media/statusshellscript.sh”

去检查输出文件,看路径是运行脚本时。而不是在crontab中定义你的PATH,只需在你的脚本中定义它。

+0

我不能评论为代表缺乏代表,但试着用你的明确家庭替代〜/home/ Harry

+0

或者实际上删除了“cd〜”,因为它没用 – Harry

相关问题