我有一个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。
答案 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