运维 centos crontab 不能运行 ruby script/runner ***.rb 脚本

popotiger · 2014年07月04日 · 最后由 popotiger 回复于 2014年07月10日 · 4350 次阅读

shell:(task.sh)

#!/usr/bin/env bash
source /home/zzwm/.rvm/environments/ruby-1.9.2-p320
[ ! -d /mnt/b/log/zzwm/operation ] && mkdir -p /mnt/b/log/zzwm/operation
cd /data/projects/zzwm/opdg
sleep 2
RAILS_ENV=production ruby script/runner operation.rb >> /mnt/b/log/operation.log 2>&1

/etc/crontab:

*/1 * * * * root /data/projects/shell/task.sh

/var/log/cron:

Jul  4 13:34:01 srv3 CROND[2229]: (root) CMD (/data/projects/shell/task.sh)
Jul  4 13:34:01 srv3 CROND[2228]: (root) MAIL (mailed 106 bytes of output but got status 0x004b#012)

1、手动运行bash /data/projects/shell/task.sh 没有问题。 2、我还有一个定时任务是在相同的目录下执行 rake 命令就没有问题。 求大神帮忙解决。

*/1 * * * * root /data/projects/shell/task.sh &> /tmp/task.log

看下日志

*/1 * * * * bash /data/projects/shell/task.sh &> /tmp/task.log

应该是这样吧

3 楼 已删除
4 楼 已删除
5 楼 已删除

#2 楼 @liujianhei tmp/task.log 没有输出任何信息

#6 楼 @popotiger 第 2 条回复是我错了,root 那一列是对的。我一般用的是 crontab -e 添加的任务,没有直接在/etc/crontab 里面添加。你试着怎么把 log 打出来排查下

#7 楼 @liujianhei 没有 log,我把两个命令合并到一个脚本就没有问题,我猜测会不会是因为两个脚本都会到同一个目录设置 rvm,影响到了一个。

目前的解决办法是,合并到一个脚本。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号