Crontab 任务不能运行?高手请教

sh/bash/dash/ksh/zsh等Shell脚本
回复
Grant-Chen
帖子: 2
注册时间: 2011-10-26 11:38

Crontab 任务不能运行?高手请教

#1

帖子 Grant-Chen » 2011-10-26 11:48

我的ubuntu版本是11.04

我建立一个cron任务
grant@ubuntu:~$ crontab -l


# Begin Whenever generated tasks for: test
* * * * * /bin/bash -l -c 'cd /home/grant/project/test && script/rails runner -e production '\''Test.do_job'\'''

# End Whenever generated tasks for: test

这个命令/bin/bash -l -c 'cd /home/grant/project/test && script/rails runner -e production '\''Test.do_job'\'''

单独可以跑的。但是用cron跑的话出现如下错误

Oct 26 11:47:01 ubuntu CRON[5521]: (grant) CMD (/bin/bash -l -c 'cd /home/grant/project/test && script/rails runner -e production '\''Test.do_job'\''')
Oct 26 11:47:01 ubuntu CRON[5519]: (CRON) error (grandchild #5521 failed with exit status 127)
Oct 26 11:47:01 ubuntu CRON[5519]: (CRON) info (No MTA installed, discarding output)

高手请教,怎么解决
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: Crontab 任务不能运行?高手请教

#2

帖子 eexpress » 2011-10-26 12:28

&& ? 改; 试试。
script/rails runner 这啥语法?

最简单的,你整体做一个bash脚步。
如果里面的任何语句,涉及到环境变量,都是要另外指定的。cron和bash环境不同。
cron里面也可以额外指定环境变量。如PATH SHELL等几个。
● 鸣学
Grant-Chen
帖子: 2
注册时间: 2011-10-26 11:38

Re: Crontab 任务不能运行?高手请教

#3

帖子 Grant-Chen » 2011-10-26 13:54

问题解决了。
改成这样就可以了。
* * * * * /bin/bash -l -c 'cd /home/grant/project/test && /usr/local/bin/rails runner -e production '\''Test.do_job'\'''

原因是rails命令应该用全路径
回复