Cron作业没有运行bash脚本

时间:2013-01-11 07:04:21

标签: bash crontab

我有一个ruby脚本,我希望每隔10分钟执行一次我以前工作过,但是我丢失了我的脚本而且我正在尝试重写它并且无法让它工作。 cron设置在它工作时保持不变,但这就是我所拥有的。

rvm_bin_path=/home/usr/.rvm/bin
GEM_HOME=/home/usr/.rvm/gems/ruby-1.9.3-p194
SHELL=/bin/bash
IRBRC=/home/usr/.rvm/rubies/ruby-1.9.3-p194/.irbrc
MY_RUBY_HOME=/home/usr/.rvm/rubies/ruby-1.9.3-p194
__array_start=0
rvm_path=/home/usr/.rvm
escape_flag=1
rvm_prefix=/home/usr
PATH=/home/usr/.rvm/gems/ruby-1.9.3-p194/bin:/home/usr/.rvm/gems/ruby-1.9.3-p194@global/bin:/home/usr/.rvm/rubies/ruby-1.9.3-p$
PWD=/etc
LANG=en_CA.UTF-8
_second=1
rvm_version=1.14.1 (stable)
_first=0
GEM_PATH=/home/usr/.rvm/gems/ruby-1.9.3-p194:/home/usr/.rvm/gems/ruby-1.9.3-p194@global
RUBY_VERSION=ruby-1.9.3-p194
_=/usr/bin/env

*/10    *       *       *       *       bash -li -c /home/usr/MeetCal-bot/run-bot.sh

我正在运行cron作为su,这就是为什么我需要添加所有这些环境变量,以确保它具有运行ruby所需的一切。我以前使用过所有相同的信息,所以我认为我没有遗漏任何东西

我拥有的bash脚本是这样的:

#!/bin/bash
ruby /home/usr/bot/bot.rb >> /home/usr/bot/output.txt

当作业运行时,它会生成output.txt,除了它是空的,我希望有一些输出,也许是红宝石错误信息。

我为该目录做了chmod 777 *作为最后的手段,尝试修复任何权限问题,但这没有帮助。

如果我以我的本地用户身份运行ruby脚本,它运行正常而没有任何错误,但我似乎无法弄清楚它为什么以我的用户身份运行,而不是su。

1 个答案:

答案 0 :(得分:3)

我会遗漏-i-c,因为这些都不是必需的。只是做

*/10 * * * * bash -l /home/usr/MeetCal-bot/run-bot.sh

开始。

在您的脚本中,插入which ruby >>/home/usr/bot/output.txt以查看是否发现红宝石。要查看任何错误消息,请将2>&1添加到您的ruby调用

#!/bin/bash

which ruby >>/home/usr/bot/output.txt
ruby /home/usr/bot/bot.rb >>/home/usr/bot/output.txt 2>&1